Module:Documentation: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(make 'string' the default message type in the message function to avoid having 'string' all over the place) |
(use hyphens for message names rather than camelCase, in line with MediaWiki) |
||
Line 29: | Line 29: | ||
-- message are substituted with values from the table keys [1], [2] etc. |
-- message are substituted with values from the table keys [1], [2] etc. |
||
-- For example, if the message cfg.fooMessage had the value 'Foo $2 bar $1.', |
-- For example, if the message cfg.fooMessage had the value 'Foo $2 bar $1.', |
||
-- message(' |
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." |
||
--]] |
--]] |
||
local msg = cfg[cfgKey] |
local msg = cfg[cfgKey] |
||
Line 127: | Line 127: | ||
-- so that we don't have to worry about unclosed tags. |
-- so that we don't have to worry about unclosed tags. |
||
.tag('div') |
.tag('div') |
||
.attr('id', message(' |
.attr('id', message('main-div-id')) |
||
.addClass(message(' |
.addClass(message('main-div-classes')) |
||
.newline() |
.newline() |
||
.wikitext(p._startBox(args, env)) |
.wikitext(p._startBox(args, env)) |
||
Line 196: | Line 196: | ||
title = mw.title.new(titleArg) |
title = mw.title.new(titleArg) |
||
if not title then |
if not title then |
||
error(message(' |
error(message('title-arg-error', {titleArg})) |
||
end |
end |
||
else |
else |
||
Line 208: | Line 208: | ||
local title = env.title |
local title = env.title |
||
local subpage = title.subpageText |
local subpage = title.subpageText |
||
if subpage == message(' |
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then |
||
return title.basePageTitle |
return title.basePageTitle |
||
else |
else |
||
Line 223: | Line 223: | ||
docpage = docname |
docpage = docname |
||
else |
else |
||
docpage = env.docpageRoot .. '/' .. message(' |
docpage = env.docpageRoot .. '/' .. message('doc-subpage') |
||
end |
end |
||
return mw.title.new(docpage) |
return mw.title.new(docpage) |
||
Line 230: | Line 230: | ||
function envFuncs.sandboxTitle() |
function envFuncs.sandboxTitle() |
||
-- Title object for the /sandbox subpage. |
-- Title object for the /sandbox subpage. |
||
return mw.title.new(env.docpageRoot .. '/' .. message(' |
return mw.title.new(env.docpageRoot .. '/' .. message('sandbox-subpage')) |
||
end |
end |
||
function envFuncs.testcasesTitle() |
function envFuncs.testcasesTitle() |
||
-- Title object for the /testcases subpage. |
-- Title object for the /testcases subpage. |
||
return mw.title.new(env.docpageRoot .. '/' .. message(' |
return mw.title.new(env.docpageRoot .. '/' .. message('testcases-subpage')) |
||
end |
end |
||
function envFuncs.printTitle() |
function envFuncs.printTitle() |
||
-- Title object for the /Print subpage. |
-- Title object for the /Print subpage. |
||
return env.templateTitle:subPageTitle(message(' |
return env.templateTitle:subPageTitle(message('print-subpage')) |
||
end |
end |
||
Line 297: | Line 297: | ||
local omargs = {} -- Args for {{ombox}}. |
local omargs = {} -- Args for {{ombox}}. |
||
-- Get the image wikitext. |
-- Get the image wikitext. |
||
omargs.image = message(' |
omargs.image = message('sandbox-notice-image') |
||
-- Get the text. We start with the opening blurb, which is something like |
-- Get the text. We start with the opening blurb, which is something like |
||
-- "This is the template sandbox for [[Template:Foo]] (diff)." |
-- "This is the template sandbox for [[Template:Foo]] (diff)." |
||
Line 307: | Line 307: | ||
if isPreviewing or not compareUrl then |
if isPreviewing or not compareUrl then |
||
-- 'This is the [[Wikipedia:Template test cases|template sandbox]] page for $1.' |
-- 'This is the [[Wikipedia:Template test cases|template sandbox]] page for $1.' |
||
text = text .. message(' |
text = text .. message('sandbox-notice-blurb', {templateLink}) |
||
else |
else |
||
-- 'This is the [[Wikipedia:Template test cases|template sandbox]] page for $1 ($2).' |
-- 'This is the [[Wikipedia:Template test cases|template sandbox]] page for $1 ($2).' |
||
local compareDisplay = message(' |
local compareDisplay = message('sandbox-notice-compare-link-display') |
||
local compareLink = makeUrlLink(compareUrl, compareDisplay) |
local compareLink = makeUrlLink(compareUrl, compareDisplay) |
||
text = text .. message(' |
text = text .. message('sandbox-notice-diff-blurb', {templateLink, compareLink}) |
||
end |
end |
||
-- Get the test cases page blurb if the page exists. |
-- Get the test cases page blurb if the page exists. |
||
local testcasesTitle = env.testcasesTitle |
local testcasesTitle = env.testcasesTitle |
||
if testcasesTitle and testcasesTitle.exists then |
if testcasesTitle and testcasesTitle.exists then |
||
local testcasesLinkDisplay = message(' |
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') |
||
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) |
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) |
||
text = text .. '<br />' .. message(' |
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) |
||
end |
end |
||
-- Add the page to [[Category:Template sandboxes]]. |
-- Add the page to [[Category:Template sandboxes]]. |
||
text = text .. makeCategoryLink(message(' |
text = text .. makeCategoryLink(message('sandbox-category')) |
||
omargs.text = text |
omargs.text = text |
||
return messageBox.main('ombox', omargs) |
return messageBox.main('ombox', omargs) |
||
Line 329: | Line 329: | ||
function p.protectionTemplate(env) |
function p.protectionTemplate(env) |
||
local title = env.title |
local title = env.title |
||
local protectionTemplate = message(' |
local protectionTemplate = message('protection-template') |
||
if not (protectionTemplate and title.namespace == 10) then |
if not (protectionTemplate and title.namespace == 10) then |
||
-- Don't display the protection template if we are not in the template namespace. |
-- Don't display the protection template if we are not in the template namespace. |
||
Line 347: | Line 347: | ||
if getProtectionLevel('move', prefixedTitle) == 'sysop' or getProtectionLevel('edit', prefixedTitle) then |
if getProtectionLevel('move', prefixedTitle) == 'sysop' or getProtectionLevel('edit', prefixedTitle) then |
||
-- The page is full-move protected, or full, template, or semi-protected. |
-- The page is full-move protected, or full, template, or semi-protected. |
||
return frame:expandTemplate{title = protectionTemplate, args = message(' |
return frame:expandTemplate{title = protectionTemplate, args = message('protection-template-args', nil, 'table')} |
||
end |
end |
||
return nil |
return nil |
||
Line 390: | Line 390: | ||
data.docTitle = docTitle |
data.docTitle = docTitle |
||
-- View, display, edit, and purge links if /doc exists. |
-- View, display, edit, and purge links if /doc exists. |
||
data.viewLinkDisplay = message(' |
data.viewLinkDisplay = message('view-link-display') |
||
data.editLinkDisplay = message(' |
data.editLinkDisplay = message('edit-link-display') |
||
data.historyLinkDisplay = message(' |
data.historyLinkDisplay = message('history-link-display') |
||
data.purgeLinkDisplay = message(' |
data.purgeLinkDisplay = message('purge-link-display') |
||
-- Create link if /doc doesn't exist. |
-- Create link if /doc doesn't exist. |
||
local preload = args.preload |
local preload = args.preload |
||
if not preload then |
if not preload then |
||
if env.subjectSpace == 6 then -- File namespace |
if env.subjectSpace == 6 then -- File namespace |
||
preload = message(' |
preload = message('file-docpage-preload') |
||
else |
else |
||
preload = message(' |
preload = message('docpage-preload') |
||
end |
end |
||
end |
end |
||
data.preload = preload |
data.preload = preload |
||
data.createLinkDisplay = message(' |
data.createLinkDisplay = message('create-link-display') |
||
return data |
return data |
||
end |
end |
||
Line 445: | Line 445: | ||
data.heading = heading |
data.heading = heading |
||
elseif subjectSpace == 10 then -- Template namespace |
elseif subjectSpace == 10 then -- Template namespace |
||
data.heading = message(' |
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') |
||
elseif subjectSpace == 828 then -- Module namespace |
elseif subjectSpace == 828 then -- Module namespace |
||
data.heading = message(' |
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') |
||
elseif subjectSpace == 6 then -- File namespace |
elseif subjectSpace == 6 then -- File namespace |
||
data.heading = message(' |
data.heading = message('file-namespace-heading') |
||
else |
else |
||
data.heading = message(' |
data.heading = message('other-namespaces-heading') |
||
end |
end |
||
Line 468: | Line 468: | ||
-- [view][edit][history][purge] or [create] links. |
-- [view][edit][history][purge] or [create] links. |
||
if links then |
if links then |
||
data.linksClass = message(' |
data.linksClass = message('start-box-linkclasses') |
||
data.linksId = message(' |
data.linksId = message('start-box-link-id') |
||
data.links = links |
data.links = links |
||
end |
end |
||
Line 549: | Line 549: | ||
-- Assemble the arguments for {{fmbox}}. |
-- Assemble the arguments for {{fmbox}}. |
||
local fmargs = {} |
local fmargs = {} |
||
fmargs.id = message(' |
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data' |
||
fmargs.image = message(' |
fmargs.image = message('fmbox-image-none') -- Sets 'none' |
||
fmargs.style = message(' |
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4' |
||
fmargs.textstyle = message(' |
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;' |
||
-- Assemble the fmbox text field. |
-- Assemble the fmbox text field. |
||
Line 597: | Line 597: | ||
local ret |
local ret |
||
if printTitle.exists then |
if printTitle.exists then |
||
local printLink = makeWikilink(printTitle.prefixedText, message(' |
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display')) |
||
ret = message(' |
ret = message('print-blurb', {printLink}) |
||
local displayPrintCategory = message(' |
local displayPrintCategory = message('display-print-category', nil, 'boolean') |
||
if displayPrintCategory then |
if displayPrintCategory then |
||
ret = ret .. makeCategoryLink(message(' |
ret = ret .. makeCategoryLink(message('print-category')) |
||
end |
end |
||
end |
end |
||
Line 617: | Line 617: | ||
local pagetype |
local pagetype |
||
if subjectSpace == 10 then |
if subjectSpace == 10 then |
||
pagetype = message(' |
pagetype = message('template-pagetype') |
||
elseif subjectSpace == 828 then |
elseif subjectSpace == 828 then |
||
pagetype = message(' |
pagetype = message('module-pagetype') |
||
else |
else |
||
pagetype = message(' |
pagetype = message('default-pagetype') |
||
end |
end |
||
return makeWikilink( |
return makeWikilink( |
||
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', |
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', |
||
message(' |
message('subpages-link-display', {pagetype}) |
||
) |
) |
||
end |
end |
||
Line 636: | Line 636: | ||
end |
end |
||
-- Make the blurb. |
-- Make the blurb. |
||
local docPathLink = makeWikilink(docTitle.prefixedText, message(' |
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) |
||
return message(' |
return message('add-categories-blurb', {docPathLink}) |
||
end |
end |
||
Line 652: | Line 652: | ||
local docLink = makeWikilink(docTitle.prefixedText) |
local docLink = makeWikilink(docTitle.prefixedText) |
||
local editUrl = docTitle:fullUrl{action = 'edit'} |
local editUrl = docTitle:fullUrl{action = 'edit'} |
||
local editDisplay = message(' |
local editDisplay = message('edit-link-display') |
||
local editLink = makeUrlLink(editUrl, editDisplay) |
local editLink = makeUrlLink(editUrl, editDisplay) |
||
local historyUrl = docTitle:fullUrl{action = 'history'} |
local historyUrl = docTitle:fullUrl{action = 'history'} |
||
local historyDisplay = message(' |
local historyDisplay = message('history-link-display') |
||
local historyLink = makeUrlLink(historyUrl, historyDisplay) |
local historyLink = makeUrlLink(historyUrl, historyDisplay) |
||
ret = message(' |
ret = message('transcluded-from-blurb', {docLink}) |
||
.. ' ' |
.. ' ' |
||
.. makeToolbar(editLink, historyLink) |
.. makeToolbar(editLink, historyLink) |
||
Line 663: | Line 663: | ||
elseif env.subjectSpace == 828 then |
elseif env.subjectSpace == 828 then |
||
-- /doc does not exist; ask to create it. |
-- /doc does not exist; ask to create it. |
||
local createUrl = docTitle:fullUrl{action = 'edit', preload = message(' |
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} |
||
local createDisplay = message(' |
local createDisplay = message('create-link-display') |
||
local createLink = makeUrlLink(createUrl, createDisplay) |
local createLink = makeUrlLink(createUrl, createDisplay) |
||
ret = message(' |
ret = message('create-module-doc-blurb', {createLink}) |
||
.. '<br />' |
.. '<br />' |
||
end |
end |
||
Line 687: | Line 687: | ||
if sandboxTitle.exists then |
if sandboxTitle.exists then |
||
local sandboxPage = sandboxTitle.prefixedText |
local sandboxPage = sandboxTitle.prefixedText |
||
local sandboxDisplay = message(' |
local sandboxDisplay = message('sandbox-link-display') |
||
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) |
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) |
||
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} |
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} |
||
local sandboxEditDisplay = message(' |
local sandboxEditDisplay = message('sandbox-edit-link-display') |
||
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) |
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) |
||
local compareUrl = env.compareUrl |
local compareUrl = env.compareUrl |
||
local compareLink |
local compareLink |
||
if compareUrl then |
if compareUrl then |
||
local compareDisplay = message(' |
local compareDisplay = message('compare-link-display') |
||
compareLink = makeUrlLink(compareUrl, compareDisplay) |
compareLink = makeUrlLink(compareUrl, compareDisplay) |
||
end |
end |
||
Line 702: | Line 702: | ||
local sandboxPreload |
local sandboxPreload |
||
if subjectSpace == 828 then |
if subjectSpace == 828 then |
||
sandboxPreload = message(' |
sandboxPreload = message('module-sandbox-preload') |
||
else |
else |
||
sandboxPreload = message(' |
sandboxPreload = message('template-sandbox-preload') |
||
end |
end |
||
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} |
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} |
||
local sandboxCreateDisplay = message(' |
local sandboxCreateDisplay = message('sandbox-create-link-display') |
||
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) |
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) |
||
local mirrorSummary = message(' |
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) |
||
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templatePage, summary = mirrorSummary} |
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templatePage, summary = mirrorSummary} |
||
local mirrorDisplay = message(' |
local mirrorDisplay = message('mirror-link-display') |
||
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) |
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) |
||
sandboxLinks = message(' |
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) |
||
end |
end |
||
if testcasesTitle.exists then |
if testcasesTitle.exists then |
||
local testcasesPage = testcasesTitle.prefixedText |
local testcasesPage = testcasesTitle.prefixedText |
||
local testcasesDisplay = message(' |
local testcasesDisplay = message('testcases-link-display') |
||
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) |
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) |
||
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} |
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} |
||
local testcasesEditDisplay = message(' |
local testcasesEditDisplay = message('testcases-edit-link-display') |
||
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) |
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) |
||
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) |
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) |
||
Line 726: | Line 726: | ||
local testcasesPreload |
local testcasesPreload |
||
if subjectSpace == 828 then |
if subjectSpace == 828 then |
||
testcasesPreload = message(' |
testcasesPreload = message('module-testcases-preload') |
||
else |
else |
||
testcasesPreload = message(' |
testcasesPreload = message('template-testcases-preload') |
||
end |
end |
||
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} |
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} |
||
local testcasesCreateDisplay = message(' |
local testcasesCreateDisplay = message('testcases-create-link-display') |
||
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) |
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) |
||
testcasesLinks = message(' |
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) |
||
end |
end |
||
local messageName |
local messageName |
||
Line 753: | Line 753: | ||
local ret = '' |
local ret = '' |
||
local subpage = title.subpageText |
local subpage = title.subpageText |
||
if message(' |
if message('display-strange-usage-category', nil, 'boolean') and (subpage == message('doc-subpage') or subpage == message('testcases-subpage')) then |
||
local sort = (title.namespace == 0 and message(' |
local sort = (title.namespace == 0 and message('strange-usage-category-mainspace-sort') or '') .. title.prefixedText -- Sort on namespace. |
||
ret = ret .. makeCategoryLink(message(' |
ret = ret .. makeCategoryLink(message('strange-usage-category'), sort) |
||
end |
end |
||
return ret |
return ret |