變更

增加 1,428 位元組 、 2023年12月24日 (日) 19:41
导入1个版本
行 108: 行 108:  
})
 
})
 
return p[funcName](args)
 
return p[funcName](args)
 +
end
 +
end
 +
 +
----------------------------------------------------------------------------
 +
-- Entry points
 +
----------------------------------------------------------------------------
 +
 +
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
 
end
 
end
行 129: 行 141:  
local root = mw.html.create()
 
local root = mw.html.create()
 
root
 
root
 +
:wikitext(p._getModuleWikitext(args, env))
 
:wikitext(p.protectionTemplate(env))
 
:wikitext(p.protectionTemplate(env))
 
:wikitext(p.sandboxNotice(args, env))
 
:wikitext(p.sandboxNotice(args, env))
行 323: 行 336:  
-- Auxiliary templates
 
-- Auxiliary templates
 
----------------------------------------------------------------------------
 
----------------------------------------------------------------------------
 +
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
 +
return ''
 +
end
 +
    
function p.sandboxNotice(args, env)
 
function p.sandboxNotice(args, env)
行 355: 行 381:  
-- "This is the template sandbox for [[Template:Foo]] (diff)."
 
-- "This is the template sandbox for [[Template:Foo]] (diff)."
 
local text = ''
 
local text = ''
local frame = mw.getCurrentFrame()
  −
local isPreviewing = frame:preprocess('{{REVISIONID}}') == '' -- True if the page is being previewed.
   
local pagetype
 
local pagetype
 
if subjectSpace == 10 then
 
if subjectSpace == 10 then
行 364: 行 388:  
else
 
else
 
pagetype = message('sandbox-notice-pagetype-other')
 
pagetype = message('sandbox-notice-pagetype-other')
 +
end
 +
local pagetypee
 +
if subjectSpace == 10 then
 +
pagetypee = message('template-pagetype')
 +
elseif subjectSpace == 828 then
 +
pagetypee = message('module-pagetype')
 +
else
 +
pagetypee = message('default-pagetype')--message 'other-pagetype' 不存在
 
end
 
end
 
local templateLink = makeWikilink(templateTitle.prefixedText)
 
local templateLink = makeWikilink(templateTitle.prefixedText)
 
local compareUrl = env.compareUrl
 
local compareUrl = env.compareUrl
if isPreviewing or not compareUrl then
+
if compareUrl then
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
  −
else
   
local compareDisplay = message('sandbox-notice-compare-link-display')
 
local compareDisplay = message('sandbox-notice-compare-link-display')
 
local compareLink = makeUrlLink(compareUrl, compareDisplay)
 
local compareLink = makeUrlLink(compareUrl, compareDisplay)
 
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
 
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
 +
else
 +
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
 
end
 
end
 
-- Get the test cases page blurb if the page exists. This is something like
 
-- Get the test cases page blurb if the page exists. This is something like
行 383: 行 415:  
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
 
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
 
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
 
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
+
text = text .. '<br /><small>' .. message('sandbox-notice-testcases-run-blurb', {pagetypee, testcasesLink, testcasesRunLink}) .. '</small>'
 
else
 
else
 
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
 
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
 
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
 
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
+
text = text .. '<br /><small>' .. message('sandbox-notice-testcases-blurb', {pagetypee, testcasesLink}) .. '</small>'
 
end
 
end
 
end
 
end
行 406: 行 438:  
local protectionLevels, mProtectionBanner
 
local protectionLevels, mProtectionBanner
 
local title = env.title
 
local title = env.title
if title.namespace ~= 10 and title.namespace ~= 828 then
  −
-- Don't display the protection template if we are not in the template or module namespaces.
  −
return nil
  −
end
   
protectionLevels = env.protectionLevels
 
protectionLevels = env.protectionLevels
 
if not protectionLevels then
 
if not protectionLevels then
行 556: 行 584:  
--
 
--
 
-- Messages:
 
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=Documentation icon]]'
+
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
 
-- 'template-namespace-heading' --> 'Template documentation'
 
-- 'template-namespace-heading' --> 'Template documentation'
 
-- 'module-namespace-heading' --> 'Module documentation'
 
-- 'module-namespace-heading' --> 'Module documentation'
行 738: 行 766:  
text = text .. (p.makeCategoriesBlurb(args, env) or '')
 
text = text .. (p.makeCategoriesBlurb(args, env) or '')
 
end
 
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
+
text = text .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
 
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
 
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
 
if printBlurb then
 
if printBlurb then
行 811: 行 839:  
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
 
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
 
-- 'mirror-link-display' --> 'mirror'
 
-- 'mirror-link-display' --> 'mirror'
 +
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
 
-- 'sandbox-link-display' --> 'sandbox'
 
-- 'sandbox-link-display' --> 'sandbox'
 
-- 'testcases-link-display' --> 'testcases'
 
-- 'testcases-link-display' --> 'testcases'
 
-- 'testcases-edit-link-display'--> 'edit'
 
-- 'testcases-edit-link-display'--> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
   
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
 
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
 
-- 'testcases-create-link-display' --> 'create'
 
-- 'testcases-create-link-display' --> 'create'
行 859: 行 887:  
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
 
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
 
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
 
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templatePage, summary = mirrorSummary}
+
local mirrorPreload = message('mirror-link-preload')
 +
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
 +
if subjectSpace == 828 then
 +
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
 +
end
 
local mirrorDisplay = message('mirror-link-display')
 
local mirrorDisplay = message('mirror-link-display')
 
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
 
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
行 871: 行 903:  
local testcasesEditDisplay = message('testcases-edit-link-display')
 
local testcasesEditDisplay = message('testcases-edit-link-display')
 
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
 
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
+
-- for Modules, add testcases run link if exists
 +
if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
 +
local testcasesRunLinkDisplay = message('testcases-run-link-display')
 +
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
 +
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
 +
else
 +
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
 +
end
 
else
 
else
 
local testcasesPreload
 
local testcasesPreload