Module:Documentation: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
m (Lua error) |
|||
Line 7: | Line 7: | ||
-- Get the config table. |
-- Get the config table. |
||
local cfg = mw.loadData('Module:Documentation/config') |
local cfg = mw.loadData('Module:Documentation/config') |
||
local i18n = mw.loadData('Module:Documentation/i18n') |
|||
local p = {} |
local p = {} |
||
Line 33: | Line 33: | ||
expectType = expectType or 'string' |
expectType = expectType or 'string' |
||
if type(msg) ~= expectType then |
if type(msg) ~= expectType then |
||
error(' |
error(require('Module:TNT').format('I18n/Documentation', 'cfg-error-msg-type', cfgKey, expectType, type(msg)), 2) |
||
end |
end |
||
if not valArray then |
if not valArray then |
||
Line 41: | Line 41: | ||
local function getMessageVal(match) |
local function getMessageVal(match) |
||
match = tonumber(match) |
match = tonumber(match) |
||
return valArray[match] or error(' |
return valArray[match] or error(require('Module:TNT').format('I18n/Documentation', 'cfg-error-msg-empty', '$' .. match, cfgKey), 4) |
||
end |
end |
||
Line 112: | Line 112: | ||
---------------------------------------------------------------------------- |
---------------------------------------------------------------------------- |
||
-- Load TemplateStyles |
|||
⚫ | |||
---------------------------------------------------------------------------- |
---------------------------------------------------------------------------- |
||
p.main = |
p.main = function(frame) |
||
local parent = frame.getParent(frame) |
|||
local output = p._main(parent.args) |
|||
return frame:extensionTag{ name='templatestyles', args = { src= message('templatestyles-scr') } } .. frame:preprocess(output) |
|||
⚫ | |||
---------------------------------------------------------------------------- |
|||
⚫ | |||
---------------------------------------------------------------------------- |
|||
function p._main(args) |
function p._main(args) |
||
Line 135: | Line 143: | ||
:tag('div') |
:tag('div') |
||
:attr('id', message('main-div-id')) |
:attr('id', message('main-div-id')) |
||
:addClass(message('main-div- |
:addClass(message('main-div-class')) |
||
:css('padding', '12px') |
|||
:newline() |
|||
:wikitext(p._startBox(args, env)) |
:wikitext(p._startBox(args, env)) |
||
:wikitext(p._content(args, env)) |
:wikitext(p._content(args, env)) |
||
⚫ | |||
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box. |
|||
:newline() |
|||
:done() |
|||
:done() |
:done() |
||
:wikitext(p._endBox(args, env)) |
:wikitext(p._endBox(args, env)) |
||
Line 379: | Line 381: | ||
local testcasesTitle = env.testcasesTitle |
local testcasesTitle = env.testcasesTitle |
||
if testcasesTitle and testcasesTitle.exists then |
if testcasesTitle and testcasesTitle.exists then |
||
if testcasesTitle. |
if testcasesTitle.contentModel == "Scribunto" then |
||
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') |
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') |
||
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') |
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') |
||
Line 394: | Line 396: | ||
text = text .. makeCategoryLink(message('sandbox-category')) |
text = text .. makeCategoryLink(message('sandbox-category')) |
||
omargs.text = text |
omargs.text = text |
||
omargs.class = message('sandbox-class') |
|||
local ret = '<div style="clear: both;"></div>' |
local ret = '<div style="clear: both;"></div>' |
||
ret = ret .. messageBox.main('ombox', omargs) |
ret = ret .. messageBox.main('ombox', omargs) |
||
Line 485: | Line 488: | ||
if not title or not docTitle then |
if not title or not docTitle then |
||
return nil |
return nil |
||
end |
|||
if docTitle.isRedirect then |
|||
docTitle = docTitle.redirectTarget |
|||
end |
end |
||
Line 491: | Line 497: | ||
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 = |
data.viewLinkDisplay = i18n['view-link-display'] |
||
data.editLinkDisplay = |
data.editLinkDisplay = i18n['edit-link-display'] |
||
data.historyLinkDisplay = |
data.historyLinkDisplay = i18n['history-link-display'] |
||
data.purgeLinkDisplay = |
data.purgeLinkDisplay = i18n['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 |
||
Line 507: | Line 513: | ||
end |
end |
||
data.preload = preload |
data.preload = preload |
||
data.createLinkDisplay = |
data.createLinkDisplay = i18n['create-link-display'] |
||
return data |
return data |
||
end |
end |
||
Line 578: | Line 584: | ||
data.heading = heading |
data.heading = heading |
||
elseif subjectSpace == 10 then -- Template namespace |
elseif subjectSpace == 10 then -- Template namespace |
||
data.heading = |
data.heading = i18n['template-namespace-heading'] |
||
elseif subjectSpace == 828 then -- Module namespace |
elseif subjectSpace == 828 then -- Module namespace |
||
data.heading = |
data.heading = i18n['module-namespace-heading'] |
||
elseif subjectSpace == 6 then -- File namespace |
elseif subjectSpace == 6 then -- File namespace |
||
data.heading = |
data.heading = i18n['file-namespace-heading'] |
||
else |
else |
||
data.heading = |
data.heading = i18n['other-namespaces-heading'] |
||
⚫ | |||
-- Heading CSS |
|||
local headingStyle = args['heading-style'] |
|||
if headingStyle then |
|||
data.headingStyleText = headingStyle |
|||
elseif subjectSpace == 10 then |
|||
-- We are in the template or template talk namespaces. |
|||
data.headingFontWeight = 'bold' |
|||
data.headingFontSize = '125%' |
|||
else |
|||
data.headingFontSize = '150%' |
|||
end |
end |
||
Line 614: | Line 608: | ||
local sbox = mw.html.create('div') |
local sbox = mw.html.create('div') |
||
sbox |
sbox |
||
:addClass(message('header-div-class')) |
|||
:css('padding-bottom', '3px') |
|||
:css('border-bottom', '1px solid #aaa') |
|||
:css('margin-bottom', '1ex') |
|||
:newline() |
|||
:tag('span') |
|||
:cssText(data.headingStyleText) |
|||
:css('font-weight', data.headingFontWeight) |
|||
:css('font-size', data.headingFontSize) |
|||
⚫ | |||
local links = data.links |
local links = data.links |
||
if links then |
if links then |
||
sbox |
sbox |
||
: |
:tag('div') |
||
: |
:addClass(data.linksClass) |
||
:attr('id', data.linksId) |
|||
:wikitext(links) |
:wikitext(links) |
||
end |
end |
||
sbox |
|||
⚫ | |||
:addClass(message('heading-div-class')) |
|||
⚫ | |||
return tostring(sbox) |
return tostring(sbox) |
||
end |
end |
||
Line 651: | Line 642: | ||
-- The line breaks below are necessary so that "=== Headings ===" at the start and end |
-- The line breaks below are necessary so that "=== Headings ===" at the start and end |
||
-- of docs are interpreted correctly. |
-- of docs are interpreted correctly. |
||
local cbox = mw.html.create('div') |
|||
⚫ | |||
cbox |
|||
:addClass(message('content-div-class')) |
|||
⚫ | |||
return tostring(cbox) |
|||
end |
end |
||
Line 677: | Line 672: | ||
-- @args - a table of arguments passed by the user |
-- @args - a table of arguments passed by the user |
||
-- @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 709: | Line 697: | ||
end |
end |
||
-- Assemble the |
-- Assemble the footer text field. |
||
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 741: | Line 722: | ||
end |
end |
||
end |
end |
||
fmargs.text = text |
|||
local ebox = mw.html.create('div') |
|||
return messageBox.main('fmbox', fmargs) |
|||
ebox |
|||
:addClass(message('footer-div-class')) |
|||
:wikitext(text) |
|||
return tostring(ebox) |
|||
end |
end |
||
Line 772: | Line 756: | ||
local docLink = makeWikilink(docTitle.prefixedText) |
local docLink = makeWikilink(docTitle.prefixedText) |
||
local editUrl = docTitle:fullUrl{action = 'edit'} |
local editUrl = docTitle:fullUrl{action = 'edit'} |
||
local editDisplay = |
local editDisplay = i18n['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 = |
local historyDisplay = i18n['history-link-display'] |
||
local historyLink = makeUrlLink(historyUrl, historyDisplay) |
local historyLink = makeUrlLink(historyUrl, historyDisplay) |
||
ret = message('transcluded-from-blurb', {docLink}) |
ret = message('transcluded-from-blurb', {docLink}) |
||
Line 784: | Line 768: | ||
-- /doc does not exist; ask to create it. |
-- /doc does not exist; ask to create it. |
||
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} |
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} |
||
local createDisplay = |
local createDisplay = i18n['create-link-display'] |
||
local createLink = makeUrlLink(createUrl, createDisplay) |
local createLink = makeUrlLink(createUrl, createDisplay) |
||
ret = message('create-module-doc-blurb', {createLink}) |
ret = message('create-module-doc-blurb', {createLink}) |