「モジュール:Documentation」の版間の差分
ナビゲーションに移動
検索に移動
add a comment to make it obvious
細 (1版 をインポートしました) |
bsd>Izno (add a comment to make it obvious) |
||
11行目: | 11行目: | ||
-- Often-used functions. | -- Often-used functions. | ||
local ugsub = mw.ustring.gsub | local ugsub = mw.ustring.gsub | ||
local format = mw.ustring.format | |||
---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ||
50行目: | 51行目: | ||
local function makeWikilink(page, display) | local function makeWikilink(page, display) | ||
if display then | if display then | ||
return | return format('[[%s|%s]]', page, display) | ||
else | else | ||
return | return format('[[%s]]', page) | ||
end | end | ||
end | end | ||
66行目: | 67行目: | ||
local function makeUrlLink(url, display) | local function makeUrlLink(url, display) | ||
return | return format('[%s %s]', url, display) | ||
end | end | ||
81行目: | 82行目: | ||
end | end | ||
-- 'documentation-toolbar' | -- 'documentation-toolbar' | ||
return '<span class="' | return format( | ||
'<span class="%s">(%s)</span>', | |||
message('toolbar-class'), | |||
table.concat(ret, ' | ') | |||
) | |||
end | end | ||
139行目: | 143行目: | ||
-- 'documentation-container' | -- 'documentation-container' | ||
:addClass(message('container')) | :addClass(message('container')) | ||
:attr('role', 'complementary') | |||
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil) | |||
:attr('aria-label', args.heading == '' and 'Documentation' or nil) | |||
:newline() | :newline() | ||
:tag('div') | :tag('div') | ||
177行目: | 184行目: | ||
-- env.sandboxTitle - the /sandbox subpage. | -- env.sandboxTitle - the /sandbox subpage. | ||
-- env.testcasesTitle - the /testcases subpage. | -- env.testcasesTitle - the /testcases subpage. | ||
-- | -- | ||
-- Data includes: | -- Data includes: | ||
271行目: | 277行目: | ||
--]] | --]] | ||
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) | return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) | ||
end | end | ||
320行目: | 317行目: | ||
local sandboxTitle = env.sandboxTitle | local sandboxTitle = env.sandboxTitle | ||
if templateTitle.exists and sandboxTitle.exists then | if templateTitle.exists and sandboxTitle.exists then | ||
local compareUrl = mw.uri. | local compareUrl = mw.uri.canonicalUrl( | ||
'Special:ComparePages', | 'Special:ComparePages', | ||
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} | { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} | ||
356行目: | 353行目: | ||
-- | -- | ||
-- Messages: | -- Messages: | ||
-- 'sandbox-notice-image' --> '[[ | -- 'sandbox-notice-image' --> '[[File:Sandbox.svg|50px|alt=|link=]]' | ||
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' | -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' | ||
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' | -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' | ||
498行目: | 495行目: | ||
-- 'history-link-display' --> 'history' | -- 'history-link-display' --> 'history' | ||
-- 'purge-link-display' --> 'purge' | -- 'purge-link-display' --> 'purge' | ||
-- 'module-preload' --> 'Template:Documentation/preload-module-doc' | -- 'module-preload' --> 'Template:Documentation/preload-module-doc' | ||
-- 'docpage-preload' --> 'Template:Documentation/preload' | -- 'docpage-preload' --> 'Template:Documentation/preload' | ||
513行目: | 509行目: | ||
end | end | ||
-- Create link if /doc doesn't exist. | -- Create link if /doc doesn't exist. | ||
local preload = args.preload | local preload = args.preload | ||
if not preload then | if not preload then | ||
if | if subjectSpace == 828 then -- Module namespace | ||
preload = message('module-preload') | preload = message('module-preload') | ||
else | else | ||
532行目: | 518行目: | ||
end | end | ||
end | end | ||
return { | |||
title = title, | |||
docTitle = docTitle, | |||
-- View, display, edit, and purge links if /doc exists. | |||
viewLinkDisplay = message('view-link-display'), | |||
editLinkDisplay = message('edit-link-display'), | |||
historyLinkDisplay = message('history-link-display'), | |||
purgeLinkDisplay = message('purge-link-display'), | |||
preload = preload, | |||
createLinkDisplay = message('create-link-display') | |||
} | |||
end | end | ||
function p.renderStartBoxLinks(data) | function p.renderStartBoxLinks(data) | ||
--[[ | --[[ | ||
-- Generates the [view][edit][history][purge] or [create] links from the data table. | -- Generates the [view][edit][history][purge] or [create][purge] links from the data table. | ||
-- @data - a table of data generated by p.makeStartBoxLinksData | -- @data - a table of data generated by p.makeStartBoxLinksData | ||
--]] | --]] | ||
local docTitle = data.docTitle | |||
-- yes, we do intend to purge the template page on which the documentation appears | |||
local purgeLink = makeWikilink("Special:Purge/" .. data.title.prefixedText, data.purgeLinkDisplay) | |||
if docTitle.exists then | if docTitle.exists then | ||
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) | local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) | ||
local editLink = | local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, data.editLinkDisplay) | ||
local historyLink = | local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, data.historyLinkDisplay) | ||
return "[" .. viewLink .. "] [" .. editLink .. "] [" .. historyLink .. "] [" .. purgeLink .. "]" | |||
else | else | ||
local createLink = makeUrlLink(docTitle: | local createLink = makeUrlLink(docTitle:canonicalUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) | ||
return "[" .. createLink .. "] [" .. purgeLink .. "]" | |||
end | end | ||
return ret | return ret | ||
640行目: | 623行目: | ||
:tag('span') | :tag('span') | ||
:addClass(data.headingClass) | :addClass(data.headingClass) | ||
:attr('id', 'documentation-heading') | |||
:cssText(data.headingStyleText) | :cssText(data.headingStyleText) | ||
:wikitext(data.heading) | :wikitext(data.heading) | ||
740行目: | 724行目: | ||
end | end | ||
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" | text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" | ||
end | end | ||
end | end | ||
749行目: | 729行目: | ||
local box = mw.html.create('div') | local box = mw.html.create('div') | ||
-- 'documentation-metadata' | -- 'documentation-metadata' | ||
box:addClass(message('end-box-class')) | box:attr('role', 'note') | ||
:addClass(message('end-box-class')) | |||
-- 'plainlinks' | -- 'plainlinks' | ||
:addClass(message('end-box-plainlinks')) | :addClass(message('end-box-plainlinks')) | ||
783行目: | 764行目: | ||
-- /doc exists; link to it. | -- /doc exists; link to it. | ||
local docLink = makeWikilink(docTitle.prefixedText) | local docLink = makeWikilink(docTitle.prefixedText) | ||
local editDisplay = message('edit-link-display') | local editDisplay = message('edit-link-display') | ||
local editLink = | local editLink = makeWikilink("Special:EditPage/" .. docTitle.prefixedText, editDisplay) | ||
local historyDisplay = message('history-link-display') | local historyDisplay = message('history-link-display') | ||
local historyLink = | local historyLink = makeWikilink("Special:PageHistory/" .. docTitle.prefixedText, historyDisplay) | ||
ret = message('transcluded-from-blurb', {docLink}) | ret = message('transcluded-from-blurb', {docLink}) | ||
.. ' ' | .. ' ' | ||
795行目: | 774行目: | ||
elseif env.subjectSpace == 828 then | elseif env.subjectSpace == 828 then | ||
-- /doc does not exist; ask to create it. | -- /doc does not exist; ask to create it. | ||
local createUrl = docTitle: | local createUrl = docTitle:canonicalUrl{action = 'edit', preload = message('module-preload')} | ||
local createDisplay = message('create-link-display') | local createDisplay = message('create-link-display') | ||
local createLink = makeUrlLink(createUrl, createDisplay) | local createLink = makeUrlLink(createUrl, createDisplay) | ||
846行目: | 825行目: | ||
local sandboxDisplay = message('sandbox-link-display') | local sandboxDisplay = message('sandbox-link-display') | ||
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) | local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) | ||
local sandboxEditDisplay = message('sandbox-edit-link-display') | local sandboxEditDisplay = message('sandbox-edit-link-display') | ||
local sandboxEditLink = | local sandboxEditLink = makeWikilink("Special:EditPage/" .. sandboxPage, sandboxEditDisplay) | ||
local compareUrl = env.compareUrl | local compareUrl = env.compareUrl | ||
local compareLink | local compareLink | ||
863行目: | 841行目: | ||
sandboxPreload = message('template-sandbox-preload') | sandboxPreload = message('template-sandbox-preload') | ||
end | end | ||
local sandboxCreateUrl = sandboxTitle: | local sandboxCreateUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = sandboxPreload} | ||
local sandboxCreateDisplay = message('sandbox-create-link-display') | local sandboxCreateDisplay = message('sandbox-create-link-display') | ||
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 mirrorPreload = message('mirror-link-preload') | local mirrorPreload = message('mirror-link-preload') | ||
local mirrorUrl = sandboxTitle: | local mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} | ||
if subjectSpace == 828 then | if subjectSpace == 828 then | ||
mirrorUrl = sandboxTitle: | mirrorUrl = sandboxTitle:canonicalUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} | ||
end | end | ||
local mirrorDisplay = message('mirror-link-display') | local mirrorDisplay = message('mirror-link-display') | ||
880行目: | 858行目: | ||
local testcasesDisplay = message('testcases-link-display') | local testcasesDisplay = message('testcases-link-display') | ||
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) | local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) | ||
local testcasesEditUrl = testcasesTitle: | local testcasesEditUrl = testcasesTitle:canonicalUrl{action = 'edit'} | ||
local testcasesEditDisplay = message('testcases-edit-link-display') | local testcasesEditDisplay = message('testcases-edit-link-display') | ||
local testcasesEditLink = | local testcasesEditLink = makeWikilink("Special:EditPage/" .. testcasesPage, 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 | ||
898行目: | 876行目: | ||
testcasesPreload = message('template-testcases-preload') | testcasesPreload = message('template-testcases-preload') | ||
end | end | ||
local testcasesCreateUrl = testcasesTitle: | local testcasesCreateUrl = testcasesTitle:canonicalUrl{action = 'edit', preload = testcasesPreload} | ||
local testcasesCreateDisplay = message('testcases-create-link-display') | local testcasesCreateDisplay = message('testcases-create-link-display') | ||
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) | local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) | ||
959行目: | 937行目: | ||
) | ) | ||
return message('subpages-blurb', {subpagesLink}) | return message('subpages-blurb', {subpagesLink}) | ||
end | end | ||