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

۲۹۵ بایت حذف‌شده ،  ‏۲۵ دسامبر ۲۰۱۹
جز
۱ نسخه واردشده
جز پودمان:Hatnote» را محافظت کرد: الگوهای حساس ([ویرایش=تنها کاربران تأییدشدهٔ پایدار و مدیران] (بی‌پایان) [انتقال=تنها کاربران تأییدشدهٔ پایدار و مدیران] (بی‌پایان)))
جز (۱ نسخه واردشده)
خط ۳: خط ۳:
--                                                                            --
--                                                                            --
-- This module produces hatnote links and links to related articles. It      --
-- This module produces hatnote links and links to related articles. It      --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- implements the {{hatnote}} and {{format hatnote link}} meta-templates, and --
-- helper functions for other Lua hatnote modules.                           --
-- includes helper functions for other Lua hatnote modules.                   --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------


خط ۳۴: خط ۳۴:
-- function will not work if the link is enclosed in double brackets. Colons
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
-- trimming, set the removeColon parameter to true.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
خط ۷۵: خط ۷۵:
end
end


function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
function p.makeWikitextError(msg, helpLink, addTrackingCategory)
-- Formats an error message to be returned to wikitext. If
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- addTrackingCategory is not false after being returned from
خط ۸۳: خط ۸۳:
checkType('makeWikitextError', 2, helpLink, 'string', true)
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
local title = mw.title.getCurrentTitle()
-- Make the help link text.
-- Make the help link text.
local helpText
local helpText
خط ۱۰۹: خط ۱۰۹:
category
category
)
)
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (ابهام‌زدایی)".
checkType('ابهام‌زدایی', 1, page, 'string')
checkType('ابهام‌زدایی', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'ابهام‌زدایی'
return string.format('%s (%s)', page, disambiguator)
end
end


خط ۱۳۵: خط ۱۲۶:
if not link then
if not link then
return p.makeWikitextError(
return p.makeWikitextError(
'پیوندی تعریف نشده‌است',
'هیچ پیوندی تعیین نشده است',
'الگو:قالب‌بندی پیوند#خطاها',
'الگو:Format hatnote link#خطاها',
args.category
args.category
)
)
خط ۱۴۴: خط ۱۳۵:


function p._formatLink(link, display)
function p._formatLink(link, display)
-- Find whether we need to use the colon trick or not. We need to use the
-- colon trick for categories and files, as otherwise category links
-- categorise the page and file links display the file.
checkType('_formatLink', 1, link, 'string')
checkType('_formatLink', 1, link, 'string')
checkType('_formatLink', 2, display, 'string', true)
checkType('_formatLink', 2, display, 'string', true)
-- Remove the initial colon for links where it was specified manually.
link = removeInitialColon(link)
link = removeInitialColon(link)
 
local namespace = p.findNamespaceId(link, false)
local colon
if namespace == 6 or namespace == 14 then
colon = ':'
else
colon = ''
end
-- Find whether a faux display value has been added with the {{!}} magic
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
-- word.
خط ۱۶۲: خط ۱۶۱:
local page, section = link:match('^(.-)#(.*)$')
local page, section = link:match('^(.-)#(.*)$')
if page then
if page then
display = page .. ' § ' .. section
display = page .. ' § ' .. section
end
end
end
end
خط ۱۶۸: خط ۱۶۷:
-- Assemble the link.
-- Assemble the link.
if display then
if display then
return string.format(
return string.format('[[%s%s|%s]]', colon, link, display)
'[[:%s|%s]]',
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping
display
)
else
else
return string.format('[[:%s]]', link)
return string.format('[[%s%s]]', colon, link)
end
end
end
end
خط ۱۹۰: خط ۱۸۵:
if not s then
if not s then
return p.makeWikitextError(
return p.makeWikitextError(
'هیچ متنی تعیین نشده‌است',
'هیچ متنی تعیین نشده است',
'الگو:سرنویس#خطاها',
'الگو:Hatnote#خطاها',
args.category
args.category
)
)
خط ۲۰۳: خط ۱۹۸:
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local classes = {'hatnote'}
local classes = {'hatnote', 'navigation-not-searchable'}
local extraclasses = options.extraclasses
local extraclasses = options.extraclasses
local selfref = options.selfref
local selfref = options.selfref
خط ۲۱۴: خط ۲۰۸:
end
end
return string.format(
return string.format(
'<div role="note" class="%s">%s</div>',
'<div class="%s">%s</div>',
table.concat(classes, ' '),
table.concat(classes, ' '),
s
s