Diferencia entre revisiones de «Módulo:Hatnote list»

126 bytes eliminados ,  24 dic 2023
m
1 revisión importada
wikitves>Nihiltres
(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 revisión importada)
 
(No se muestran 2 ediciones intermedias de 2 usuarios)
Línea 96: Línea 96:
}
}


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


Línea 150: Línea 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
Línea 161: Línea 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