540
edits
m>Andy M. Wang (changing to non-breaking nbsp per lengthy talk discussion with Edokter, SMcCandlish, LLarson, among others about § not wrapping) |
m (14 revisions imported from templatewiki:Module:Section_link) |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 9: | Line 9: | ||
page = page or '' | page = page or '' | ||
return string.format('[[%s#%s|%s]]', page, section, display) | return string.format('[[%s#%s|%s]]', page, section, display) | ||
end | |||
local function normalizeTitle(title) | |||
title = mw.ustring.gsub(mw.ustring.gsub(title,"'",""),'"','') | |||
return mw.title.new(mw.ustring.gsub(title,"%b<>","")).prefixedText | |||
end | end | ||
Line 43: | Line 48: | ||
if isShowingPage then | if isShowingPage then | ||
page = page or title.prefixedText | page = page or title.prefixedText | ||
display = page .. ' ' .. display | if options.display and options.display ~= '' then | ||
if normalizeTitle(options.display) == normalizeTitle(page) then | |||
display = options.display .. ' ' .. display | |||
else | |||
error(string.format( | |||
'Display title "%s" was ignored since it is ' .. | |||
"not equivalent to the page's actual title", | |||
options.display | |||
), 0) | |||
end | |||
else | |||
display = page .. ' ' .. display | |||
end | |||
end | end | ||
return makeSectionLink(linkPage, section, display) | return makeSectionLink(linkPage, section, display) | ||
Line 95: | Line 112: | ||
-- Doing this in the loop because of a bug in [[Module:Arguments]] | -- Doing this in the loop because of a bug in [[Module:Arguments]] | ||
-- when using pairs with deleted arguments. | -- when using pairs with deleted arguments. | ||
page = v | page = mw.text.decode(v, decodeNamedEntities) | ||
elseif type(k) == 'number' then | elseif type(k) == 'number' then | ||
sections[k] = v | sections[k] = v | ||
Line 101: | Line 118: | ||
options[k] = v | options[k] = v | ||
end | end | ||
end | |||
-- Extract section from page, if present | |||
if page then | |||
local p, s = page:match('^(.-)#(.*)$') | |||
if p then page, sections[1] = p, s end | |||
end | end | ||