Module:Documentation: Difference between revisions
Jump to navigation
Jump to search
m Undo revision 6465 by E.vandenberge (talk) Tag: Undo |
mNo edit summary |
||
| Line 3: | Line 3: | ||
-- Get required modules. | -- Get required modules. | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
local messageBox = require('Module:Message box') | |||
-- Get the config table. | -- Get the config table. | ||
| Line 11: | Line 12: | ||
-- Often-used functions. | -- Often-used functions. | ||
local ugsub = mw.ustring.gsub | local ugsub = mw.ustring.gsub | ||
---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ||
| Line 44: | Line 44: | ||
end | end | ||
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal) | |||
return ret | |||
end | end | ||
| Line 51: | Line 52: | ||
local function makeWikilink(page, display) | local function makeWikilink(page, display) | ||
if display then | if display then | ||
return format('[[%s|%s]]', page, display) | return mw.ustring.format('[[%s|%s]]', page, display) | ||
else | else | ||
return format('[[%s]]', page) | return mw.ustring.format('[[%s]]', page) | ||
end | end | ||
end | end | ||
| Line 67: | Line 68: | ||
local function makeUrlLink(url, display) | local function makeUrlLink(url, display) | ||
return format('[%s %s]', url, display) | return mw.ustring.format('[%s %s]', url, display) | ||
end | end | ||
| Line 81: | Line 82: | ||
ret[#ret + 1] = select(i, ...) | ret[#ret + 1] = select(i, ...) | ||
end | end | ||
return '<small style="font-style: normal;">(' .. table.concat(ret, ' | ') .. ')</small>' | |||
return | |||
end | end | ||
| Line 116: | Line 112: | ||
---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ||
-- | -- Main function | ||
---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ||
p.main = makeInvokeFunc('_main') | p.main = makeInvokeFunc('_main') | ||
| Line 133: | Line 121: | ||
-- This function defines logic flow for the module. | -- This function defines logic flow for the module. | ||
-- @args - table of arguments passed by the user | -- @args - table of arguments passed by the user | ||
-- | |||
-- Messages: | |||
-- 'main-div-id' --> 'template-documentation' | |||
-- 'main-div-classes' --> 'template-documentation iezoomfix' | |||
--]] | --]] | ||
local env = p.getEnvironment(args) | local env = p.getEnvironment(args) | ||
local root = mw.html.create() | local root = mw.html.create() | ||
root | root | ||
:wikitext(p.protectionTemplate(env)) | :wikitext(p.protectionTemplate(env)) | ||
:wikitext(p.sandboxNotice(args, env)) | :wikitext(p.sandboxNotice(args, env)) | ||
-- This div tag is from {{documentation/start box}}, but moving it here | |||
-- so that we don't have to worry about unclosed tags. | |||
:tag('div') | :tag('div') | ||
:attr('id', message('main-div-id')) | |||
:addClass(message('main-div-classes')) | |||
:attr(' | |||
: | |||
:newline() | :newline() | ||
:wikitext(p._startBox(args, env)) | |||
:wikitext(p._content(args, env)) | |||
:tag('div') | :tag('div') | ||
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box. | |||
: | |||
:newline() | :newline() | ||
:done() | :done() | ||
:done() | :done() | ||
:wikitext(p._endBox(args, env)) | |||
:wikitext(p.addTrackingCategories(env)) | :wikitext(p.addTrackingCategories(env)) | ||
return tostring(root) | |||
return | |||
end | end | ||
| Line 174: | Line 155: | ||
function p.getEnvironment(args) | function p.getEnvironment(args) | ||
--[[ | --[[ | ||
-- Returns a table with information about the environment, including title | -- Returns a table with information about the environment, including title objects and other namespace- or | ||
-- path-related data. | |||
-- @args - table of arguments passed by the user | -- @args - table of arguments passed by the user | ||
-- | -- | ||
| Line 184: | Line 165: | ||
-- env.sandboxTitle - the /sandbox subpage. | -- env.sandboxTitle - the /sandbox subpage. | ||
-- env.testcasesTitle - the /testcases subpage. | -- env.testcasesTitle - the /testcases subpage. | ||
-- env.printTitle - the print version of the template, located at the /Print subpage. | |||
-- | -- | ||
-- Data includes: | -- Data includes: | ||
| Line 237: | Line 219: | ||
local title = env.title | local title = env.title | ||
local subpage = title.subpageText | local subpage = title.subpageText | ||
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage' | if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then | ||
return mw.title.makeTitle(subjectSpace, title.baseText) | return mw.title.makeTitle(subjectSpace, title.baseText) | ||
else | else | ||
| Line 277: | Line 259: | ||
--]] | --]] | ||
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) | return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) | ||
end | |||
function envFuncs.printTitle() | |||
--[[ | |||
-- Title object for the /Print subpage. | |||
-- Messages: | |||
-- 'print-subpage' --> 'Print' | |||
--]] | |||
return env.templateTitle:subPageTitle(message('print-subpage')) | |||
end | end | ||
| Line 290: | Line 281: | ||
function envFuncs.docSpace() | function envFuncs.docSpace() | ||
-- The documentation namespace number. For most namespaces this is the | -- The documentation namespace number. For most namespaces this is the same as the | ||
-- | -- subject namespace. However, pages in the Article, File, MediaWiki or Category | ||
-- | -- namespaces must have their /doc, /sandbox and /testcases pages in talk space. | ||
local subjectSpace = env.subjectSpace | local subjectSpace = env.subjectSpace | ||
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then | if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then | ||
| Line 317: | Line 307: | ||
local sandboxTitle = env.sandboxTitle | local sandboxTitle = env.sandboxTitle | ||
if templateTitle.exists and sandboxTitle.exists then | if templateTitle.exists and sandboxTitle.exists then | ||
local compareUrl = mw.uri. | local compareUrl = mw.uri.fullUrl( | ||
'Special:ComparePages', | 'Special:ComparePages', | ||
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} | {page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} | ||
) | ) | ||
return tostring(compareUrl) | return tostring(compareUrl) | ||
| Line 333: | Line 323: | ||
-- Auxiliary templates | -- Auxiliary templates | ||
---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ||
function p.sandboxNotice(args, env) | function p.sandboxNotice(args, env) | ||
| Line 353: | Line 331: | ||
-- | -- | ||
-- Messages: | -- Messages: | ||
-- 'sandbox-notice-image' --> '[[ | -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' | ||
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' | -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' | ||
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' | -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' | ||
| Line 363: | Line 341: | ||
-- 'sandbox-notice-testcases-link-display' --> 'test cases' | -- 'sandbox-notice-testcases-link-display' --> 'test cases' | ||
-- 'sandbox-category' --> 'Template sandboxes' | -- 'sandbox-category' --> 'Template sandboxes' | ||
--]=] | --]=] | ||
local title = env.title | local title = env.title | ||
| Line 370: | Line 346: | ||
local templateTitle = env.templateTitle | local templateTitle = env.templateTitle | ||
local subjectSpace = env.subjectSpace | local subjectSpace = env.subjectSpace | ||
if not (subjectSpace and title and sandboxTitle and templateTitle | if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then | ||
return nil | return nil | ||
end | end | ||
| Line 379: | Line 354: | ||
-- 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)." | ||
local text = ' | local text = '' | ||
local pagetype | local pagetype | ||
if subjectSpace == 10 then | if subjectSpace == 10 then | ||
pagetype = message('sandbox-notice-pagetype-template') | pagetype = message('sandbox-notice-pagetype-template') | ||
elseif subjectSpace == 828 then | elseif subjectSpace == 828 then | ||
pagetype = message('sandbox-notice-pagetype-module') | pagetype = message('sandbox-notice-pagetype-module') | ||
else | else | ||
pagetype = message('sandbox-notice-pagetype-other') | pagetype = message('sandbox-notice-pagetype-other') | ||
end | end | ||
local templateLink = makeWikilink(templateTitle.prefixedText) | local templateLink = makeWikilink(templateTitle.prefixedText) | ||
| Line 416: | Line 388: | ||
end | end | ||
end | end | ||
-- Add the sandbox to the sandbox category. | -- Add the sandbox to the sandbox category. | ||
text = text .. makeCategoryLink(message('sandbox-category')) | |||
omargs.text = text | |||
local ret = '<div style="clear: both;"></div>' | |||
ret = ret .. messageBox.main('ombox', omargs) | |||
return ret | |||
end | end | ||
| Line 431: | Line 402: | ||
-- 'protection-template' --> 'pp-template' | -- 'protection-template' --> 'pp-template' | ||
-- 'protection-template-args' --> {docusage = 'yes'} | -- 'protection-template-args' --> {docusage = 'yes'} | ||
local protectionLevels = env.protectionLevels | local protectionLevels, mProtectionBanner | ||
local title = env.title | |||
protectionLevels = env.protectionLevels | |||
if not protectionLevels then | if not protectionLevels then | ||
return nil | return nil | ||
| Line 439: | Line 412: | ||
if editProt then | if editProt then | ||
-- The page is edit-protected. | -- The page is edit-protected. | ||
mProtectionBanner = require('Module:Protection banner') | |||
local reason = message('protection-reason-edit') | |||
return mProtectionBanner._main{reason, small = true} | |||
elseif moveProt and moveProt ~= 'autoconfirmed' then | elseif moveProt and moveProt ~= 'autoconfirmed' then | ||
-- The page is move-protected but not edit-protected. Exclude move | -- The page is move-protected but not edit-protected. Exclude move | ||
-- protection with the level "autoconfirmed", as this is equivalent to | -- protection with the level "autoconfirmed", as this is equivalent to | ||
-- no move protection at all. | -- no move protection at all. | ||
mProtectionBanner = require('Module:Protection banner') | |||
return mProtectionBanner._main{action = 'move', small = true} | |||
else | else | ||
return nil | return nil | ||
| Line 501: | Line 473: | ||
-- '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' | ||
| Line 515: | Line 488: | ||
end | end | ||
local data = {} | |||
data.title = title | |||
data.docTitle = docTitle | |||
-- View, display, edit, and purge links if /doc exists. | |||
data.viewLinkDisplay = message('view-link-display') | |||
data.editLinkDisplay = message('edit-link-display') | |||
data.historyLinkDisplay = message('history-link-display') | |||
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 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 | ||
| Line 524: | Line 507: | ||
end | end | ||
end | end | ||
data.preload = preload | |||
data.createLinkDisplay = message('create-link-display') | |||
return data | |||
end | end | ||
function p.renderStartBoxLinks(data) | function p.renderStartBoxLinks(data) | ||
--[[ | --[[ | ||
-- Generates the [view][edit][history][purge] or [create | -- Generates the [view][edit][history][purge] or [create] links from the data table. | ||
-- @data - a table of data generated by p.makeStartBoxLinksData | -- @data - a table of data generated by p.makeStartBoxLinksData | ||
--]] | --]] | ||
local function escapeBrackets(s) | |||
-- Escapes square brackets with HTML entities. | |||
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities. | |||
s = s:gsub('%]', ']') | |||
return s | |||
end | |||
local ret | |||
local docTitle = data.docTitle | local docTitle = data.docTitle | ||
local title = data.title | |||
local | |||
if docTitle.exists then | if docTitle.exists then | ||
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) | local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) | ||
local editLink = | local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) | ||
local historyLink = | local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) | ||
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) | |||
ret = '[%s] [%s] [%s] [%s]' | |||
ret = escapeBrackets(ret) | |||
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) | |||
else | else | ||
local createLink = makeUrlLink(docTitle: | local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) | ||
ret = '[%s]' | |||
ret = escapeBrackets(ret) | |||
ret = mw.ustring.format(ret, createLink) | |||
end | end | ||
return ret | return ret | ||
| Line 572: | Line 558: | ||
-- 'file-namespace-heading' --> 'Summary' | -- 'file-namespace-heading' --> 'Summary' | ||
-- 'other-namespaces-heading' --> 'Documentation' | -- 'other-namespaces-heading' --> 'Documentation' | ||
-- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks' | |||
-- 'start-box-link-id' --> 'doc_editlinks' | |||
-- 'testcases-create-link-display' --> 'create' | -- 'testcases-create-link-display' --> 'create' | ||
--]=] | --]=] | ||
| Line 604: | Line 592: | ||
if headingStyle then | if headingStyle then | ||
data.headingStyleText = headingStyle | data.headingStyleText = headingStyle | ||
elseif subjectSpace == 10 then | |||
-- We are in the template or template talk namespaces. | |||
data.headingFontWeight = 'bold' | |||
data.headingFontSize = '125%' | |||
else | else | ||
data.headingFontSize = '150%' | |||
data. | |||
end | end | ||
-- Data for the [view][edit][history][purge] or [create] links. | -- Data for the [view][edit][history][purge] or [create] links. | ||
if links then | if links then | ||
data.linksClass = message('start-box-linkclasses') | |||
data. | data.linksId = message('start-box-link-id') | ||
data.links = links | data.links = links | ||
end | end | ||
| Line 624: | Line 615: | ||
local sbox = mw.html.create('div') | local sbox = mw.html.create('div') | ||
sbox | sbox | ||
-- ' | :css('padding-bottom', '3px') | ||
: | :css('border-bottom', '1px solid #aaa') | ||
:css('margin-bottom', '1ex') | |||
:newline() | :newline() | ||
:tag('span') | :tag('span') | ||
:cssText(data.headingStyleText) | :cssText(data.headingStyleText) | ||
:css('font-weight', data.headingFontWeight) | |||
:css('font-size', data.headingFontSize) | |||
:wikitext(data.heading) | :wikitext(data.heading) | ||
local links = data.links | local links = data.links | ||
| Line 687: | Line 679: | ||
-- @env - environment table containing title objects, etc., generated with p.getEnvironment | -- @env - environment table containing title objects, etc., generated with p.getEnvironment | ||
-- | -- | ||
-- Messages: | |||
-- 'fmbox-id' --> 'documentation-meta-data' | |||
-- 'fmbox-style' --> 'background-color: #ecfcf4' | |||
-- 'fmbox-textstyle' --> 'font-style: italic' | |||
-- | |||
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]]. | |||
--]=] | --]=] | ||
| Line 712: | Line 710: | ||
end | end | ||
-- Assemble the | -- Assemble the arguments for {{fmbox}}. | ||
local fmargs = {} | |||
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data' | |||
fmargs.image = 'none' | |||
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4' | |||
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;' | |||
-- Assemble the fmbox text field. | |||
local text = '' | local text = '' | ||
if linkBox then | if linkBox then | ||
| Line 722: | Line 727: | ||
-- Add sandbox and testcases links. | -- Add sandbox and testcases links. | ||
-- "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 '') | ||
text = text .. '<br />' | |||
if not args.content and not args[1] then | if not args.content and not args[1] then | ||
-- "Please add categories to the /doc subpage." | -- "Please add categories to the /doc subpage." | ||
| Line 730: | Line 736: | ||
end | end | ||
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" | text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" | ||
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates. | |||
if printBlurb then | |||
text = text .. '<br />' .. printBlurb | |||
end | |||
end | end | ||
end | end | ||
fmargs.text = text | |||
return ' | return messageBox.main('fmbox', fmargs) | ||
end | end | ||
| Line 756: | Line 758: | ||
-- 'transcluded-from-blurb' --> | -- 'transcluded-from-blurb' --> | ||
-- 'The above [[Wikipedia:Template documentation|documentation]] | -- 'The above [[Wikipedia:Template documentation|documentation]] | ||
-- is [[ | -- is [[Wikipedia:Transclusion|transcluded]] from $1.' | ||
-- 'module-preload' --> 'Template:Documentation/preload-module-doc' | -- 'module-preload' --> 'Template:Documentation/preload-module-doc' | ||
-- 'create-link-display' --> 'create' | -- 'create-link-display' --> 'create' | ||
| Line 766: | Line 768: | ||
return nil | return nil | ||
end | end | ||
local ret | |||
if docTitle.exists then | if docTitle.exists then | ||
-- /doc exists; link to it. | -- /doc exists; link to it. | ||
local docLink = makeWikilink(docTitle.prefixedText) | local docLink = makeWikilink(docTitle.prefixedText) | ||
local editUrl = docTitle:fullUrl{action = 'edit'} | |||
local editDisplay = message('edit-link-display') | local editDisplay = message('edit-link-display') | ||
local editLink = | local editLink = makeUrlLink(editUrl, editDisplay) | ||
local historyUrl = docTitle:fullUrl{action = 'history'} | |||
local historyDisplay = message('history-link-display') | local historyDisplay = message('history-link-display') | ||
local historyLink = | local historyLink = makeUrlLink(historyUrl, historyDisplay) | ||
ret = message('transcluded-from-blurb', {docLink}) | |||
.. ' ' | .. ' ' | ||
.. makeToolbar(editLink, historyLink) | .. makeToolbar(editLink, historyLink) | ||
| Line 779: | Line 784: | ||
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: | local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} | ||
local createDisplay = message('create-link-display') | local createDisplay = message('create-link-display') | ||
local createLink = makeUrlLink(createUrl, createDisplay) | local createLink = makeUrlLink(createUrl, createDisplay) | ||
ret = message('create-module-doc-blurb', {createLink}) | |||
.. '<br />' | .. '<br />' | ||
end | end | ||
return ret | |||
end | end | ||
| Line 829: | Line 835: | ||
local sandboxDisplay = message('sandbox-link-display') | local sandboxDisplay = message('sandbox-link-display') | ||
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) | local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) | ||
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} | |||
local sandboxEditDisplay = message('sandbox-edit-link-display') | local sandboxEditDisplay = message('sandbox-edit-link-display') | ||
local sandboxEditLink = | local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) | ||
local compareUrl = env.compareUrl | local compareUrl = env.compareUrl | ||
local compareLink | local compareLink | ||
| Line 845: | Line 852: | ||
sandboxPreload = message('template-sandbox-preload') | sandboxPreload = message('template-sandbox-preload') | ||
end | end | ||
local sandboxCreateUrl = sandboxTitle: | local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} | ||
local sandboxCreateDisplay = message('sandbox-create-link-display') | local sandboxCreateDisplay = message('sandbox-create-link-display') | ||
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) | local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) | ||
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) | local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) | ||
local mirrorPreload = message('mirror-link-preload') | local mirrorPreload = message('mirror-link-preload') | ||
local mirrorUrl = sandboxTitle: | local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} | ||
if subjectSpace == 828 then | if subjectSpace == 828 then | ||
mirrorUrl = sandboxTitle: | mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} | ||
end | end | ||
local mirrorDisplay = message('mirror-link-display') | local mirrorDisplay = message('mirror-link-display') | ||
| Line 862: | Line 869: | ||
local testcasesDisplay = message('testcases-link-display') | local testcasesDisplay = message('testcases-link-display') | ||
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) | local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) | ||
local testcasesEditUrl = testcasesTitle: | local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} | ||
local testcasesEditDisplay = message('testcases-edit-link-display') | local testcasesEditDisplay = message('testcases-edit-link-display') | ||
local testcasesEditLink = | local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) | ||
-- for Modules, add testcases run link if exists | -- for Modules, add testcases run link if exists | ||
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then | if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then | ||
| Line 880: | Line 887: | ||
testcasesPreload = message('template-testcases-preload') | testcasesPreload = message('template-testcases-preload') | ||
end | end | ||
local testcasesCreateUrl = testcasesTitle: | local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} | ||
local testcasesCreateDisplay = message('testcases-create-link-display') | local testcasesCreateDisplay = message('testcases-create-link-display') | ||
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) | local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) | ||
| Line 941: | Line 948: | ||
) | ) | ||
return message('subpages-blurb', {subpagesLink}) | return message('subpages-blurb', {subpagesLink}) | ||
end | |||
function p.makePrintBlurb(args, env) | |||
--[=[ | |||
-- Generates the blurb displayed when there is a print version of the template available. | |||
-- @args - a table of arguments passed by the user | |||
-- @env - environment table containing title objects, etc., generated with p.getEnvironment | |||
-- | |||
-- Messages: | |||
-- 'print-link-display' --> '/Print' | |||
-- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]' | |||
-- .. ' of this template exists at $1.' | |||
-- .. ' If you make a change to this template, please update the print version as well.' | |||
-- 'display-print-category' --> true | |||
-- 'print-category' --> 'Templates with print versions' | |||
--]=] | |||
local printTitle = env.printTitle | |||
if not printTitle then | |||
return nil | |||
end | |||
local ret | |||
if printTitle.exists then | |||
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display')) | |||
ret = message('print-blurb', {printLink}) | |||
local displayPrintCategory = message('display-print-category', nil, 'boolean') | |||
if displayPrintCategory then | |||
ret = ret .. makeCategoryLink(message('print-category')) | |||
end | |||
end | |||
return ret | |||
end | end | ||
| Line 967: | Line 1,004: | ||
end | end | ||
local subpage = title.subpageText | local subpage = title.subpageText | ||
local ret = '' | |||
if message('display-strange-usage-category', nil, 'boolean') | if message('display-strange-usage-category', nil, 'boolean') | ||
and ( | and ( | ||
| Line 973: | Line 1,011: | ||
) | ) | ||
then | then | ||
ret = ret .. makeCategoryLink(message('strange-usage-category')) | |||
end | end | ||
return | return ret | ||
end | end | ||
return p | return p | ||