Module:Documentation: Difference between revisions
From Video Credit Archive
Content deleted Content added
wikpedia>Mr. Stradivarius start conversion to a p.getEnv function rather than using globals; I've only got as far as the start box, so the module currently won't run |
wikpedia>Mr. Stradivarius finish converting existing values to use env table |
||
Line 243: | Line 243: | ||
function p._startBox(args, env) |
function p._startBox(args, env) |
||
local title = env.title |
|||
-- Arg processing from {{documentation}}. |
-- Arg processing from {{documentation}}. |
||
local preload = args[message('preloadArg', 'string')] -- Allow custom preloads. |
local preload = args[message('preloadArg', 'string')] -- Allow custom preloads. |
||
Line 257: | Line 259: | ||
docpage = docname |
docpage = docname |
||
else |
else |
||
local namespace = docspace or |
local namespace = docspace or title.nsText |
||
local pagename = templatePage or |
local pagename = templatePage or title.text |
||
docpage = namespace .. ':' .. pagename .. '/' .. message('docSubpage', 'string') |
docpage = namespace .. ':' .. pagename .. '/' .. message('docSubpage', 'string') |
||
end |
end |
||
Line 317: | Line 319: | ||
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, message('editLinkDisplay', 'string')) |
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, message('editLinkDisplay', 'string')) |
||
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, message('historyLinkDisplay', 'string')) |
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, message('historyLinkDisplay', 'string')) |
||
local purgeLink = makeUrlLink( |
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, message('purgeLinkDisplay', 'string')) |
||
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 343: | Line 345: | ||
p.content = makeInvokeFunc('_content') |
p.content = makeInvokeFunc('_content') |
||
function p._content(args) |
function p._content(args, env) |
||
local content = args[message('contentArg', 'string')] |
local content = args[message('contentArg', 'string')] |
||
if not content then |
if not content then |
||
Line 351: | Line 353: | ||
content = frame:preprocess('{{ ' .. docpage .. ' }}') |
content = frame:preprocess('{{ ' .. docpage .. ' }}') |
||
else |
else |
||
docpage = |
docpage = env.docspace .. ':' .. env.templatePage .. '/' .. message('docSubpage', 'string') |
||
if mw.title.new(docpage).exists then |
if mw.title.new(docpage).exists then |
||
local frame = mw.getCurrentFrame() |
local frame = mw.getCurrentFrame() |
||
Line 369: | Line 371: | ||
p.endBox = makeInvokeFunc('_endBox') |
p.endBox = makeInvokeFunc('_endBox') |
||
function p._endBox(args) |
function p._endBox(args, env) |
||
local title = env.title |
|||
local subjectSpace = env.subjectSpace |
|||
-- Argument processing in {{documentation}}. |
-- Argument processing in {{documentation}}. |
||
local content = args[message('contentArg', 'string')] |
local content = args[message('contentArg', 'string')] |
||
local linkBox = args[message('linkBoxArg', 'string')] -- So "link box=off" works. |
local linkBox = args[message('linkBoxArg', 'string')] -- So "link box=off" works. |
||
local docspace = |
local docspace = env.docspace |
||
local docname = args[1] -- Other docname, if fed. |
local docname = args[1] -- Other docname, if fed. |
||
local templatePage = |
local templatePage = env.templatePage |
||
-- Argument processing in {{documentation/end box2}}. |
-- Argument processing in {{documentation/end box2}}. |
||
local docpageRoot = (docspace or |
local docpageRoot = (docspace or title.nsText) .. ':' .. (templatePage or title.text) |
||
local docpage |
local docpage |
||
if docname then |
if docname then |
||
Line 390: | Line 395: | ||
local sandbox = docpageRoot .. '/' .. message('sandboxSubpage', 'string') |
local sandbox = docpageRoot .. '/' .. message('sandboxSubpage', 'string') |
||
local testcases = docpageRoot .. '/' .. message('testcasesSubpage', 'string') |
local testcases = docpageRoot .. '/' .. message('testcasesSubpage', 'string') |
||
templatePage = |
templatePage = title.nsText .. ':' .. templatePage |
||
-- Output from {{documentation/end box}} |
-- Output from {{documentation/end box}} |
||
Line 490: | Line 495: | ||
---------------------------------------------------------------------------- |
---------------------------------------------------------------------------- |
||
function p.addTrackingCategories() |
function p.addTrackingCategories(env) |
||
-- Check if {{documentation}} is transcluded on a /doc or /testcases page. |
-- Check if {{documentation}} is transcluded on a /doc or /testcases page. |
||
local title = env.title |
|||
local ret = '' |
local ret = '' |
||
local subpage = |
local subpage = title.subpageText |
||
if message('displayStrangeUsageCategory', 'boolean') and (subpage == message('docSubpage', 'string') or subpage == message('testcasesSubpage', 'string')) then |
if message('displayStrangeUsageCategory', 'boolean') and (subpage == message('docSubpage', 'string') or subpage == message('testcasesSubpage', 'string')) then |
||
local sort = ( |
local sort = (title.namespace == 0 and message('strangeUsageCategoryMainspaceSort', 'string') or '') .. title.prefixedText -- Sort on namespace. |
||
ret = ret .. makeCategoryLink(message('strangeUsageCategory', 'string'), sort) |
ret = ret .. makeCategoryLink(message('strangeUsageCategory', 'string'), sort) |
||
end |
end |