پرش به محتوا

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

۵۳۸ بایت اضافه‌شده ،  ‏۱۰ فوریهٔ ۲۰۲۲
بدون خلاصۀ ویرایش
(sync from sandbox, add aria role and label to container)
بدون خلاصۀ ویرایش
خط ۱: خط ۱:
-- برای فارسی‌سازی بهتر، بعضی از قسمت‌های این پودمان تغییر کرده‌است. لطفاً هنگام به‌روزرسانی به توضیحات پودمان توجه کنید.
-- This module implements {{documentation}}.
-- This module implements {{documentation}}.


خط ۳۲: خط ۳۳:
expectType = expectType or 'string'
expectType = expectType or 'string'
if type(msg) ~= expectType then
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
error('پیام: خطای نوع در متن cfg.' .. cfgKey .. ' (' .. expectType .. ' انتظار می‌رفت، ' .. type(msg) .. ' بدست آمد)', 2)
end
end
if not valArray then
if not valArray then
خط ۴۰: خط ۴۱:
local function getMessageVal(match)
local function getMessageVal(match)
match = tonumber(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
-- برای فارسی‌سازی بهتر، ساختار خطای نمایشی خط زیر تغییر کرده‌است
return valArray[match] or error('پیام: هیچ مقداری برای کلید $' .. match .. ' در متن cfg.' .. cfgKey .. ' یافت نشد', 4)
end
end


return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
return ugsub(msg, '$([1-9۱-۹][0-9۰-۹]*)', getMessageVal)
end
end


خط ۹۶: خط ۹۸:
valueFunc = function (key, value)
valueFunc = function (key, value)
if type(value) == 'string' then
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
value = mw.ustring.match(value, '^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
if key == 'heading' or value ~= '' then
return value
return value
خط ۱۱۶: خط ۱۱۸:


function p.nonexistent(frame)
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
if mw.title.getCurrentTitle().subpageText == 'آزمایشی' then
return frame:expandTemplate{title = 'module test cases notice'}
return frame:expandTemplate{title = 'هشدار صفحه آزمایشی پودمان'}
else
else
return p.main(frame)
return p.main(frame)
خط ۱۳۹: خط ۱۴۱:
-- 'documentation-container'
-- 'documentation-container'
:addClass(message('container'))
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:newline()
:tag('div')
:tag('div')
خط ۳۱۴: خط ۳۱۳:
if templateTitle.exists and sandboxTitle.exists then
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
'ویژه:مقایسهٔ صفحات',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
)
خط ۴۶۲: خط ۴۶۱:
env = env or p.getEnvironment(args)
env = env or p.getEnvironment(args)
local links
local links
local content = args.content
local content = args.content or args['محتوا']
if not content or args[1] then
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
-- No need to include the links if the documentation is on the template page itself.
خط ۴۹۱: خط ۴۹۰:
-- 'history-link-display' --> 'history'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'purge-link-display' --> 'purge'
-- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'docpage-preload' --> 'Template:Documentation/preload'
خط ۵۱۶: خط ۵۱۶:
local preload = args.preload
local preload = args.preload
if not preload then
if not preload then
if subjectSpace == 828 then -- Module namespace
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
preload = message('module-preload')
else
else
خط ۶۳۰: خط ۶۳۲:
:tag('span')
:tag('span')
:addClass(data.headingClass)
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:cssText(data.headingStyleText)
:wikitext(data.heading)
:wikitext(data.heading)
خط ۶۵۵: خط ۶۵۶:
env = env or p.getEnvironment(args)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local docTitle = env.docTitle
local content = args.content
local content = args.content or args['محتوا']
if not content and docTitle and docTitle.exists then
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
خط ۶۶۹: خط ۶۷۰:
env = env or p.getEnvironment(args)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
if not (args.content or args['محتوا']) and docTitle and docTitle.exists then
return docTitle.prefixedText
return docTitle.prefixedText
else
else
خط ۷۲۴: خط ۷۲۵:
-- "Editors can experiment in this template's sandbox and testcases pages."
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
if not (args.content or args['محتوا']) and not args[1] then
-- "Please add categories to the /doc subpage."
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- Don't show this message with inline docs or with an explicitly specified doc page,
خط ۹۴۳: خط ۹۴۴:
end
end
local subpagesLink = makeWikilink(
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
'ویژه:نمایه پیشوندی/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
message('subpages-link-display', {pagetype})
)
)