差分
ナビゲーションに移動
検索に移動
編集の要約なし
3行目:
3行目:
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)+ -- 'documentation-toolbar'+ .. table.concat(ret, ' | ') .. ')</span>'
−function p.nonexistent(frame)
− if mw.title.getCurrentTitle().subpageText == 'testcases' then
− return frame:expandTemplate{title = 'module test cases notice'}
− else
− return p.main(frame)
− end
−end
:wikitext(p._getModuleWikitext(args, env))
-- 'documentation'+ :newline()
− :wikitext(p._startBox(args, env))
− :wikitext(p._content(args, env))
− :tag('div')
− -- 'documentation-clear'
− :addClass(message('clear'))
− :done()
:wikitext(p._endBox(args, env))
-- 'Module:Documentation/styles.css'+ 'templatestyles', '', {src=cfg['templatestyles']
− }) .. tostring(root)
-- objects and other namespace- or path-related data.+ -- /testcases pages in talk space.
−p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
−
−function p._getModuleWikitext(args, env)
− local currentTitle = mw.title.getCurrentTitle()
− if currentTitle.contentModel ~= 'Scribunto' then return end
− pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
− local moduleWikitext = package.loaded["Module:Module wikitext"]
− if moduleWikitext then
− return moduleWikitext.main()
− end
−end
and mw.title.equals(title, sandboxTitle)) then
omargs.text = text .. makeCategoryLink(message('sandbox-category'))+ + -- 'documentation-clear'+ return '<div class="' .. message('clear') .. '"></div>'+ .. require('Module:Message box').main('ombox', omargs)+ return require('Module:Protection banner')._main{+ message('protection-reason-edit'), small = true+ }+ return require('Module:Protection banner')._main{+ action = 'move', small = true+ }
-- 'documentation-heading'+
-- 'mw-editsection-like plainlinks'+ :addClass(data.headingClass)
722行目:
710行目:
+ + local box = mw.html.create('div')
− -- 'documentation-metadata'
− box:addClass(message('end-box-class'))
− -- 'plainlinks'
− :addClass(message('end-box-plainlinks'))
− :wikitext(text)
− :done()
−
-- 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.
32行目:
33行目:
expectType = expectType or 'string'
expectType = expectType or 'string'
if type(msg) ~= expectType then
if type(msg) ~= expectType then
− error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
+ error('メッセージ: メッセージCFGの入力エラー。' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
end
if not valArray then
if not valArray then
40行目:
41行目:
local function getMessageVal(match)
local function getMessageVal(match)
match = tonumber(match)
match = tonumber(match)
− return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
+ return valArray[match] or error('メッセージ: メッセージCFGにおいて$' .. match .. 'キーへの値の入力が必要です。' .. cfgKey, 4)
end
end
− local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
+ return ret
end
end
80行目:
82行目:
ret[#ret + 1] = select(i, ...)
ret[#ret + 1] = select(i, ...)
end
end
− return '<small style="font-style: normal;">(' .. table.concat(ret, ' | ') .. ')</small>'
− return '<span class="' .. message('toolbar-class') .. '">('
−end
end
112行目:
112行目:
----------------------------------------------------------------------------
----------------------------------------------------------------------------
−-- Entry points
+-- Main function
----------------------------------------------------------------------------
----------------------------------------------------------------------------
−p.main = makeInvokeFunc('_main')
p.main = makeInvokeFunc('_main')
129行目:
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')
− -- 'documentation-container'
+ :attr('id', message('main-div-id'))
− :addClass(message('container'))
+ :addClass(message('main-div-classes'))
: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.
− :addClass(message('main-div-classes'))
− :newline()
:newline()
:done()
:done()
− :done()
:done()
+ :wikitext(p._endBox(args, env))
:wikitext(p.addTrackingCategories(env))
:wikitext(p.addTrackingCategories(env))
− return tostring(root)
− return mw.getCurrentFrame():extensionTag (
−end
end
167行目:
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
--
--
293行目:
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
− -- same as the subject namespace. However, pages in the Article, File,
+ -- subject namespace. However, pages in the Article, File, MediaWiki or Category
− -- MediaWiki or Category namespaces must have their /doc, /sandbox and
+ -- 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
322行目:
309行目:
local compareUrl = mw.uri.fullUrl(
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)
336行目:
323行目:
-- Auxiliary templates
-- Auxiliary templates
----------------------------------------------------------------------------
----------------------------------------------------------------------------
−function p.sandboxNotice(args, env)
function p.sandboxNotice(args, env)
371行目:
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
415行目:
389行目:
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
428行目:
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
436行目:
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
509行目:
484行目:
return nil
return nil
end
end
− if docTitle.isRedirect then
+ if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
docTitle = docTitle.redirectTarget
end
end
583行目:
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'
--]=]
--]=]
615行目:
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.headingClass = message('main-div-heading-class')
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.linksClass = message('start-box-link-classes')
+ data.linksId = message('start-box-link-id')
data.links = links
data.links = links
end
end
635行目:
615行目:
local sbox = mw.html.create('div')
local sbox = mw.html.create('div')
sbox
sbox
− -- 'documentation-startbox'
+ :css('padding-bottom', '3px')
− :addClass(message('start-box-class'))
+ :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
697行目:
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]].
--]=]
--]=]
end
end
− -- Assemble the link box.
+ -- 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
732行目:
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."
746行目:
742行目:
end
end
end
end
− fmargs.text = text
− return '\n' .. tostring(box)
+ return messageBox.main('fmbox', fmargs)
end
end
769行目:
758行目:
-- 'transcluded-from-blurb' -->
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- 'The above [[Wikipedia:Template documentation|documentation]]
− -- is [[Help:Transclusion|transcluded]] from $1.'
+ -- 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'
884行目:
873行目:
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
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
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)