Module:Hatnote list: Difference between revisions

From AlternateWiki
Content deleted Content added
Undid revision 1062166786 by Matthiaspaul (talk); should be fixed now, and if not, please ping me with examples as I couldn't reproduce the original error
 
m 1 revision imported
 
(2 intermediate revisions by 2 users not shown)
Line 96: Line 96:
}
}


--Collapses duplicate punctuation
--Collapses duplicate punctuation at end of string, ignoring italics and links
local function punctuationCollapse (text)
local function punctuationCollapse (text)
return text:match("[.?!]('?)%1(%]?)%2%.$") and text:sub(1, -2) or text
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
end


Line 150: Line 141:
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
while args[i + 2] == options.andKeyword do
if args[i + 3] then
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
table.insert(forRow.pages, args[i + 3])
end
end
Line 161: Line 152:
table.insert(forTable, forRow)
table.insert(forTable, forRow)
until terminated or i > maxArg
until terminated or i > maxArg

return forTable
return forTable
end
end