Module:Section link: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(changing to non-breaking nbsp per lengthy talk discussion with Edokter, SMcCandlish, LLarson, among others about § not wrapping) |
(implement display= parameter) |
||
Line 11: | Line 11: | ||
end |
end |
||
function |
local function normalizeTitle(title) |
||
title = mw.ustring.gsub(title,"'","") |
|||
title = mw.ustring.gsub(title,'"','') |
|||
title = mw.ustring.gsub(title,"%b<>","") |
|||
return mw.title.new(title).prefixedText |
|||
end |
|||
function p._main(page, sections, options, title, displaytitle) |
|||
-- Validate input. |
-- Validate input. |
||
checkType('_main', 1, page, 'string', true) |
checkType('_main', 1, page, 'string', true) |
||
Line 43: | Line 50: | ||
if isShowingPage then |
if isShowingPage then |
||
page = page or title.prefixedText |
page = page or title.prefixedText |
||
if displaytitle then |
|||
⚫ | |||
if normalizeTitle(displaytitle) == normalizeTitle(page) then |
|||
display = displaytitle .. ' ' .. display |
|||
else |
|||
error(string.format( |
|||
'Display title "%s" was ignored since it is ' .. |
|||
"not equivalent to the page's actual title", |
|||
displaytitle |
|||
), 0) |
|||
end |
|||
else |
|||
⚫ | |||
end |
|||
end |
end |
||
return makeSectionLink(linkPage, section, display) |
return makeSectionLink(linkPage, section, display) |
||
Line 89: | Line 108: | ||
-- Sort the arguments. |
-- Sort the arguments. |
||
local page |
local page, displaytitle |
||
local sections, options = {}, {} |
local sections, options = {}, {} |
||
for k, v in pairs(args) do |
for k, v in pairs(args) do |
||
Line 98: | Line 117: | ||
elseif type(k) == 'number' then |
elseif type(k) == 'number' then |
||
sections[k] = v |
sections[k] = v |
||
elseif k == 'display' then |
|||
displaytitle = v |
|||
else |
else |
||
options[k] = v |
options[k] = v |
||
Line 117: | Line 138: | ||
sections = compressArray(sections) |
sections = compressArray(sections) |
||
return p._main(page, sections, options) |
return p._main(page, sections, options, nil, displaytitle) |
||
end |
end |
||