Module:Documentation: Difference between revisions

Jump to navigation Jump to search
m>Mr. Stradivarius
allow for nil values of makeDocPageBlurb
m>Mr. Stradivarius
add a templateTitle object to the env functions, and reformat the experimentBlurb function to make it fit on the page
Line 203: Line 203:
return mw.site.namespaces[env.title.namespace].subject.id
return mw.site.namespaces[env.title.namespace].subject.id
end
end
 
function envFuncs.docspace()
function envFuncs.docspace()
-- The name of the documentation namespace.
-- The name of the documentation namespace.
Line 215: Line 215:
end
end
end
end
 
function envFuncs.templatePage()
function envFuncs.templatePage()
-- The template page with no namespace or interwiki prefixes.
-- The template page with no namespace or interwiki prefixes.
Line 225: Line 225:
return title.text
return title.text
end
end
end
function envFuncs.templateTitle()
-- The template (or module, etc.) title object.
local title = env.title
local subpage = title.subpageText
local ret
if subpage == message('sandboxSubpage', 'string') or subpage == message('testcasesSubpage', 'string') then
ret = title.basePageTitle
else
ret = title
end
if not ret then
error(message('titleArgError', 'string', {titleArg}))
end
return ret
end
end


Line 633: Line 649:
local templatePage = env.templatePage
local templatePage = env.templatePage
-- Get title objects.
-- Get title objects.
local templateSuccess, templateTitle = env:grab('templateTitle')
if not templateSuccess then
return err(templateTitle)
end
local sandboxSuccess, sandboxTitle = env:grab('sandboxTitle')
local sandboxSuccess, sandboxTitle = env:grab('sandboxTitle')
if not sandboxSuccess then
if not sandboxSuccess then
Line 644: Line 664:
local sandboxLinks, testcasesLinks
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
if sandboxTitle.exists then
local sandboxLink = makeWikilink(sandboxTitle.prefixedText, message('sandboxLinkDisplay', 'string'))
local sandboxPage = sandboxTitle.prefixedText
local sandboxEditLink = makeUrlLink(sandboxTitle:fullUrl{action = 'edit'}, message('sandboxEditLinkDisplay', 'string'))
local sandboxDisplay = message('sandboxLinkDisplay', 'string')
local compareLink = makeUrlLink(mw.title.new('Special:ComparePages'):fullUrl{page1 = templatePage, page2 = sandbox}, message('compareLinkDisplay', 'string'))
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandboxEditLinkDisplay', 'string')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = mw.uri.fullUrl('Special:ComparePages', {page1 = templateTitle.prefixedText, page2 = sandboxPage})
compareUrl = tostring(compareUrl)
local compareDisplay = message('compareLinkDisplay', 'string')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
else
local sandboxPreload = subjectSpace == 828 and message('moduleSandboxPreload', 'string') or message('templateSandboxPreload', 'string')
local sandboxPreload
local sandboxCreateLink = makeUrlLink(sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}, message('sandboxCreateLinkDisplay', 'string'))
if subjectSpace == 828 then
sandboxPreload = message('moduleSandboxPreload', 'string')
else
sandboxPreload = message('templateSandboxPreload', 'string')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandboxCreateLinkDisplay', 'string')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirrorEditSummary', 'string', {makeWikilink(templatePage)})
local mirrorSummary = message('mirrorEditSummary', 'string', {makeWikilink(templatePage)})
local mirrorLink = makeUrlLink(sandboxTitle:fullUrl{action = 'edit', preload = templatePage, summary = mirrorSummary}, message('mirrorLinkDisplay', 'string'))
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templatePage, summary = mirrorSummary}
local mirrorDisplay = message('mirrorLinkDisplay', 'string')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandboxLinkDisplay', 'string') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
sandboxLinks = message('sandboxLinkDisplay', 'string') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
end
if testcasesTitle.exists then
if testcasesTitle.exists then
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, message('testcasesLinkDisplay', 'string'))
local testcasesPage = testcasesTitle.prefixedText
local testcasesEditLink = makeUrlLink(testcasesTitle:fullUrl{action = 'edit'}, message('testcasesEditLinkDisplay', 'string'))
local testcasesDisplay = message('testcasesLinkDisplay', 'string')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcasesEditLinkDisplay', 'string')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
else
else
local testcasesPreload = subjectSpace == 828 and message('moduleTestcasesPreload', 'string') or message('templateTestcasesPreload', 'string')
local testcasesPreload
local testcasesCreateLink = makeUrlLink(testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}, message('testcasesCreateLinkDisplay', 'string'))
if subjectSpace == 828 then
testcasesPreload = message('moduleTestcasesPreload', 'string')
else
testcasesPreload = message('templateTestcasesPreload', 'string')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcasesCreateLinkDisplay', 'string')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcasesLinkDisplay', 'string') .. ' ' .. makeToolbar(testcasesCreateLink)
testcasesLinks = message('testcasesLinkDisplay', 'string') .. ' ' .. makeToolbar(testcasesCreateLink)
end
end
return message(subjectSpace == 828 and 'experimentBlurbModule' or 'experimentBlurbTemplate', 'string', {sandboxLinks, testcasesLinks})
local messageName
if subjectSpace == 828 then
messageName = 'experimentBlurbModule'
else
messageName = 'experimentBlurbTemplate'
end
return message(messageName, 'string', {sandboxLinks, testcasesLinks})
end
end