Changes

126 bytes removed ,  21:00, 13 November 2023
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)
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
   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
Anonymous user