Module:Section link: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(mw.text.decode() input per Template_talk:Section_link#Problem_with_page_names_containing_HTML_entities) |
(sync from sandbox;) |
||
Line 1: | Line 1: | ||
-- This module implements {{section link}}. |
-- This module implements {{section link}}. |
||
require('Module:No globals'); |
|||
local checkType = require('libraryUtil').checkType |
local checkType = require('libraryUtil').checkType |
||
Line 12: | Line 13: | ||
local function normalizeTitle(title) |
local function normalizeTitle(title) |
||
title = mw.ustring.gsub(mw.ustring.gsub(title,"'",""),'"','') |
title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '') |
||
title = mw.ustring.gsub(title, "%b<>", "") |
|||
return mw.title.new(title).prefixedText |
|||
end |
end |
||
Line 94: | Line 96: | ||
function p.main(frame) |
function p.main(frame) |
||
local yesno = require('Module:Yesno') |
|||
local args = require('Module:Arguments').getArgs(frame, { |
local args = require('Module:Arguments').getArgs(frame, { |
||
wrappers = 'Template:Section link', |
wrappers = 'Template:Section link', |
||
Line 104: | Line 107: | ||
end |
end |
||
}) |
}) |
||
for k, v in pairs(args) do -- replace underscores in the positional parameter values |
|||
if 'number' == type(k) and not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes |
|||
args[k] = v:gsub ('_', ' ') -- do the replacement |
|||
end |
|||
end |
|||
-- Sort the arguments. |
-- Sort the arguments. |
||
Line 112: | Line 121: | ||
-- 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 = mw.text.decode(v, |
page = mw.text.decode(v, true) |
||
elseif type(k) == 'number' then |
elseif type(k) == 'number' then |
||
sections[k] = v |
sections[k] = v |
||
Line 119: | Line 128: | ||
end |
end |
||
end |
end |
||
options.nopage = yesno (options.nopage); -- make boolean |
|||
-- Extract section from page, if present |
-- Extract section from page, if present |