Importer, Bürokraten, Moderatoren (CommentStreams), Strukturierte-Diskussionen-Bots, Oberflächenadministratoren, Push-Abonnementverwalter, Oversighter, Administratoren, Kampagnenbearbeiter (Hochladeassistent)
855
Bearbeitungen
(Undid revision 1062158757 by Nihiltres (talk) Temp undo as Template:See also now throws errors like "Lua error: bad argument #1 to 'title.new' (number or string expected, got nil)." (for example in article Bronshtein and Semendyayev).) |
K (59 Versionen von wpen:Module:Hatnote importiert) |
||
| (6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
local libraryUtil = require('libraryUtil') | local libraryUtil = require('libraryUtil') | ||
local checkType = libraryUtil.checkType | local checkType = libraryUtil.checkType | ||
local mArguments -- lazily initialise [[Module:Arguments]] | local mArguments -- lazily initialise [[Module:Arguments]] | ||
local yesno -- lazily initialise [[Module:Yesno]] | local yesno -- lazily initialise [[Module:Yesno]] | ||
| Zeile 57: | Zeile 56: | ||
local ret = {} | local ret = {} | ||
for i, page in ipairs(pages) do | for i, page in ipairs(pages) do | ||
ret[i] = p._formatLink | ret[i] = p._formatLink(page) | ||
end | end | ||
return ret | return ret | ||
| Zeile 71: | Zeile 70: | ||
local link = t[1] | local link = t[1] | ||
local display = t[2] | local display = t[2] | ||
links[i] = p._formatLink | links[i] = p._formatLink(link, display) | ||
end | end | ||
return links | return links | ||
| Zeile 94: | Zeile 93: | ||
-- Make the category text. | -- Make the category text. | ||
local category | local category | ||
if not title.isTalkPage | if not title.isTalkPage and yesno(addTrackingCategory) ~= false then | ||
category = 'Hatnote templates with errors' | category = 'Hatnote templates with errors' | ||
category = string.format( | category = string.format( | ||
| Zeile 130: | Zeile 126: | ||
-- with colons if necessary, and links to sections are detected and displayed | -- with colons if necessary, and links to sections are detected and displayed | ||
-- with " § " as a separator rather than the standard MediaWiki "#". Used in | -- with " § " as a separator rather than the standard MediaWiki "#". Used in | ||
-- the {{format link}} template. | -- the {{format hatnote link}} template. | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
function p.formatLink(frame) | function p.formatLink(frame) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local link = args[1] | local link = args[1] | ||
local display = args[2] | |||
if not link then | if not link then | ||
return p.makeWikitextError( | return p.makeWikitextError( | ||
'no link specified', | 'no link specified', | ||
'Template:Format link#Errors', | 'Template:Format hatnote link#Errors', | ||
args.category | args.category | ||
) | ) | ||
end | end | ||
return p._formatLink | return p._formatLink(link, display) | ||
end | end | ||
function p._formatLink(link, display) | |||
checkType('_formatLink', 1, link, 'string') | |||
checkType('_formatLink', 2, display, 'string', true) | |||
-- Remove the initial colon for links where it was specified manually. | |||
-- | |||
link = removeInitialColon(link) | link = removeInitialColon(link) | ||
-- Find whether a faux display value has been added with the {{!}} magic | -- Find whether a faux display value has been added with the {{!}} magic | ||
-- word. | -- word. | ||
local prePipe, | if not display then | ||
local prePipe, postPipe = link:match('^(.-)|(.*)$') | |||
link = prePipe or link | |||
display = postPipe | |||
end | end | ||
-- Find the | -- Find the display value. | ||
local section | if not display then | ||
local page, section = link:match('^(.-)#(.*)$') | |||
if page then | |||
display = page .. ' § ' .. section | |||
end | |||
end | end | ||
-- Assemble the link. | |||
-- | if display then | ||
return string.format( | |||
'[[:%s|%s]]', | |||
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping | |||
display | |||
) | |||
else | |||
return string.format('[[:%s]]', link) | |||
return string.format('[[:%s]]', | |||
end | end | ||
end | end | ||
| Zeile 293: | Zeile 214: | ||
end | end | ||
return string.format( | return string.format( | ||
' | '<div role="note" class="%s">%s</div>', | ||
table.concat(classes, ' '), | table.concat(classes, ' '), | ||
s | s | ||