Module:Documentation: Difference between revisions

Jump to navigation Jump to search
m>Mr. Stradivarius
internationalise the protection template code
m>Mr. Stradivarius
finish i18n for the startBox function
Line 33: Line 33:
cfg.protectionTemplate = 'pp-template' -- The name of the template that displays the protection icon (a padlock on enwiki).
cfg.protectionTemplate = 'pp-template' -- The name of the template that displays the protection icon (a padlock on enwiki).
cfg.protectionTemplateArgs = {docusage = 'yes'} -- Any arguments to send to the protection template.
cfg.protectionTemplateArgs = {docusage = 'yes'} -- Any arguments to send to the protection template.
cfg.docSubpage = 'doc' -- The name of the subpage typically used for documentation pages.
cfg.startBoxLinkclasses = 'mw-editsection plainlinks' -- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg.startBoxLinkId = 'doc_editlinks' -- The HTML "id" attribute for the links in the start box.
cfg.fileDocpagePreload = 'Template:Documentation/preload-filespace' -- A preload file for documentation page in the file namespace.
cfg.docpagePreload = 'Template:Documentation/preload-filespace' -- A preload file for template documentation pages in all namespaces.


-- Display settings
-- Display settings
-- The following settings configure the values displayed by the module.
-- The following settings configure the values displayed by the module.


cfg.sandboxLinkDisplay = 'sandbox'
cfg.viewLinkDisplay = 'view' -- The text to display for "view" links.
cfg.editLinkDisplay = 'edit' -- The text to display for "edit" links.
cfg.historyLinkDisplay = 'history' -- The text to display for "history" links.
cfg.purgeLinkDisplay = 'purge' -- The text to display for "purge" links.
cfg.createLinkDisplay = 'create' -- The text to display for "create" links.
cfg.sandboxLinkDisplay = 'sandbox' -- The text to display for "sandbox" links.
cfg.documentationIconWikitext = '[[File:Template-info.png|50px|link=|alt=Documentation icon]]' -- The wikitext for the icon shown at the top of the template.
cfg.templateNamespaceHeading = 'Template documentation' -- The heading shown in the template namespace.
cfg.moduleNamespaceHeading = 'Module documentation' -- The heading shown in the module namespace.
cfg.fileNamespaceHeading = 'Summary' -- The heading shown in the file namespace.
cfg.otherNamespacesHeading = 'Documentation' -- The heading shown in other namespaces.


----------------------------------------------------------------------------
----------------------------------------------------------------------------
Line 191: Line 206:
local namespace = docspace or currentTitle.nsText
local namespace = docspace or currentTitle.nsText
local pagename = templatePage or currentTitle.text
local pagename = templatePage or currentTitle.text
docpage = namespace .. ':' .. pagename .. '/doc'
docpage = namespace .. ':' .. pagename .. '/' .. cfg.docSubpage
end
end
local docTitle = mw.title.new(docpage)
local docTitle = mw.title.new(docpage)
Line 227: Line 242:
hspan.wikitext(heading)
hspan.wikitext(heading)
elseif subjectSpace == 10 then -- Template namespace
elseif subjectSpace == 10 then -- Template namespace
hspan.wikitext('[[File:Template-info.png|50px|link=|alt=Documentation icon]] Template documentation')
hspan.wikitext(cfg.documentationIconWikitext .. ' ' .. cfg.templateNamespaceHeading)
elseif subjectSpace == 828 then -- Module namespace
elseif subjectSpace == 828 then -- Module namespace
hspan.wikitext('[[File:Template-info.png|50px|link=|alt=Documentation icon]] Module documentation')
hspan.wikitext(cfg.documentationIconWikitext .. ' ' .. cfg.moduleNamespaceHeading)
elseif subjectSpace == 6 then -- File namespace
elseif subjectSpace == 6 then -- File namespace
hspan.wikitext('Summary')
hspan.wikitext(cfg.fileNamespaceHeading)
else
else
hspan.wikitext('Documentation')
hspan.wikitext(cfg.otherNamespaceHeading)
end
end


Line 242: Line 257:
local lspan = sbox.tag('span') -- lspan is short for "link span".
local lspan = sbox.tag('span') -- lspan is short for "link span".
lspan
lspan
.addClass('mw-editsection plainlinks')
.addClass(cfg.startBoxLinkclasses)
.attr('id', 'doc_editlinks')
.attr('id', cfg.startBoxLinkId)
if docExist then
if docExist then
local viewLink = makeWikilink(docpage, 'view')
local viewLink = makeWikilink(docpage, cfg.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, 'edit')
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, cfg.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, 'history')
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, cfg.historyLinkDisplay)
local purgeLink = makeUrlLink(docTitle:fullUrl{action = 'purge'}, 'purge')
local purgeLink = makeUrlLink(docTitle:fullUrl{action = 'purge'}, cfg.purgeLinkDisplay)
local text = '[%s] [%s] [%s] [%s]'
local text = '[%s] [%s] [%s] [%s]'
text = text:gsub('%[', '[') -- Replace square brackets with HTML entities.
text = text:gsub('%[', '[') -- Replace square brackets with HTML entities.
Line 256: Line 271:
if not preload then
if not preload then
if subjectSpace == 6 then -- File namespace
if subjectSpace == 6 then -- File namespace
preload = 'Template:Documentation/preload-filespace'
preload = cfg.fileDocpagePreload
else
else
preload = 'Template:Documentation/preload'
preload = cfg.docpagePreload
end
end
end
end
lspan.wikitext(makeUrlLink(docTitle:fullUrl{action = 'edit', preload = preload}, 'create'))
lspan.wikitext(makeUrlLink(docTitle:fullUrl{action = 'edit', preload = preload}, cfg.createLinkDisplay))
end
end
end
end
Line 278: Line 293:
content = frame:preprocess('{{ ' .. docpage .. ' }}')
content = frame:preprocess('{{ ' .. docpage .. ' }}')
else
else
docpage = p.docspace() .. ':' .. p.templatePage() .. '/doc'
docpage = p.docspace() .. ':' .. p.templatePage() .. '/' .. cfg.docSubpage
if mw.title.new(docpage).exists then
if mw.title.new(docpage).exists then
local frame = mw.getCurrentFrame()
local frame = mw.getCurrentFrame()
Line 306: Line 321:
docpage = docname
docpage = docname
else
else
docpage = docpageRoot .. '/doc'
docpage = docpageRoot .. '/' .. cfg.docSubpage
end
end
local docTitle = mw.title.new(docpage)
local docTitle = mw.title.new(docpage)
Line 380: Line 395:
-- Show the categories text, but not if "content" fed or "docname fed" since then it is unclear where to add the categories.
-- Show the categories text, but not if "content" fed or "docname fed" since then it is unclear where to add the categories.
if not content and not docnameFed then
if not content and not docnameFed then
text = text .. 'Please add categories to the ' .. makeWikilink(docpage, '/doc') .. ' subpage.'
text = text .. 'Please add categories to the ' .. makeWikilink(docpage, '/' .. cfg.docSubpage) .. ' subpage.'
end
end
-- Show the "subpages" link.
-- Show the "subpages" link.
Line 414: Line 429:
local ret = ''
local ret = ''
local subpage = currentTitle.subpageText
local subpage = currentTitle.subpageText
if subpage == 'doc' or subpage == 'testcases' then
if subpage == cfg.docSubpage or subpage == 'testcases' then
local sort = (currentTitle.namespace == 0 and 'Main:' or '') .. currentTitle.prefixedText -- Sort on namespace.
local sort = (currentTitle.namespace == 0 and 'Main:' or '') .. currentTitle.prefixedText -- Sort on namespace.
ret = ret .. makeWikilink('Category:Wikipedia pages with strange ((documentation)) usage', sort)
ret = ret .. makeWikilink('Category:Wikipedia pages with strange ((documentation)) usage', sort)