Module:Hatnote list: Difference between revisions
Updated from sandbox: added support for punctuation collapse when text is italicized. The update's content includes changes by users Johnuniq, Dexxor, and Nihiltres.
Nazarzadeh (talk | contribs) m (1 revision imported) |
(Updated from sandbox: added support for punctuation collapse when text is italicized. The update's content includes changes by users Johnuniq, Dexxor, and Nihiltres.) |
||
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 | |||
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 |