پودمان:Main: تفاوت میان نسخه‌ها

از ویکی حقوق
پرش به ناوبری پرش به جستجو
جز (۱ نسخه واردشده)
جز (۱ نسخه واردشده)
 
(یک نسخهٔ میانی ویرایش شده توسط یک کاربر دیگر نشان داده نشد)
خط ۲۱: خط ۲۱:
local display = args['label ' .. k] or args['l' .. k]
local display = args['label ' .. k] or args['l' .. k]
local page = display and
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
mw.ustring.format('%s|%s', mw.ustring.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
pages[#pages + 1] = page
end
end
خط ۴۳: خط ۴۳:
local currentTitle = mw.title.getCurrentTitle()
local currentTitle = mw.title.getCurrentTitle()
if #args == 0 then args = {currentTitle.text} end
if #args == 0 then args = {currentTitle.text} end
local firstPage = string.gsub(args[1], '|.*$', '')
local firstPage = mw.ustring.gsub(args[1], '|.*$', '')
-- Find the pagetype.
-- Find the pagetype.
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'مقالهٔ' or 'صفحهٔ'
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'مقالهٔ' or 'صفحهٔ'
خط ۵۴: خط ۵۴:
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
mainForm = isPlural and
mainForm = isPlural and
'The main %ss for this [[Help:Categories|category]] are %s.'
'%s‌های اصلی این [[راهنما:رده|رده]]، %s هستند.'
or
or
'The main %s for this [[Help:Categories|category]] is %s.'
'%s اصلی این [[راهنما:رده|رده]]، %s است.'
else
else
mainForm = isPlural and '%s اصلی: %s' or '%s اصلی: %s'
mainForm = isPlural and '%s اصلی: %s' or '%s اصلی: %s'
end
end
local text = string.format(mainForm, pageType, list)
local text = mw.ustring.format(mainForm, pageType, list)
-- Process the options and pass the text to the _rellink function in
-- Process the options and pass the text to the _rellink function in
-- [[Module:Hatnote]].
-- [[Module:Hatnote]].

نسخهٔ کنونی تا ‏۱ نوامبر ۲۰۲۱، ساعت ۱۰:۴۸

توضیحات این پودمان می‌تواند در پودمان:Main/توضیحات قرار گیرد.

--[[
-- This module produces a link to a main article or articles. It implements the
-- template {{main}}.
-- 
-- If the module is used in category or category talk space, it produces "The
-- main article for this category is xxx." Otherwise, it produces
-- "Main article: xxx".
--]]

local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local p = {}

function p.main(frame)
	mArguments = require('Module:Arguments')
	local args = mArguments.getArgs(frame, {parentOnly = true})
	local pages = {}
	for k, v in pairs(args) do
		if type(k) == 'number' then
			local display = args['label ' .. k] or args['l' .. k]
			local page = display and
				mw.ustring.format('%s|%s', mw.ustring.gsub(v, '|.*$', ''), display) or v
			pages[#pages + 1] = page
		end
	end
	if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then
		return mHatnote.makeWikitextError(
			'no page names specified',
			'Template:Main#Errors',
			args.category
		)
	end
	local options = {
		selfref = args.selfref
	}
	return p._main(pages, options)
end

function p._main(args, options)
	-- Get the list of pages. If no first page was specified we use the current
	-- page name.
	local currentTitle = mw.title.getCurrentTitle()
	if #args == 0 then args = {currentTitle.text} end
	local firstPage = mw.ustring.gsub(args[1], '|.*$', '')
	-- Find the pagetype.
	local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'مقالهٔ' or 'صفحهٔ'
	-- Make the formatted link text
	list = mHatlist.andList(args, true)
	-- Build the text.
	local isPlural = #args > 1
	local mainForm
	local curNs = currentTitle.namespace
	if (curNs == 14) or (curNs == 15) then --category/talk namespaces
		mainForm = isPlural and
			'%s‌های اصلی این [[راهنما:رده|رده]]، %s هستند.'
			or
			'%s اصلی این [[راهنما:رده|رده]]، %s است.'
	else
		mainForm = isPlural and '%s اصلی: %s' or '%s اصلی: %s'
	end
	local text = mw.ustring.format(mainForm, pageType, list)
	-- Process the options and pass the text to the _rellink function in
	-- [[Module:Hatnote]].
	options = options or {}
	local hnOptions = {
		selfref = options.selfref
	}
	return mHatnote._hatnote(text, hnOptions)
end

return p