Module:NUMBEROFSECTIONS: Difference between revisions

Content deleted Content added
added unescape function - testing live
Line 1:
local p = {}
 
-- Unescape functionality grabbed from https://stackoverflow.com/a/14899740/1832568
local function unescape(str)
str = string.gsub(str, '&#(%d+);', function(n) return string.char(n) end)
str = string.gsub(str, '&#x(%d+);', function(n) return string.char(tonumber(n, 16)) end)
return str
end
 
-- Counting function accepting a string haystack and table of needles
Line 20 ⟶ 27:
local haystack = ''
-- Separate page names from # delimited string into table
local titlespages = mw.text.split(unescape(frame.args[1]), '%s?#%s?')
titles = titles:gsub("'", "'") -- workaround astonishing bug: {{FULLPAGENAME}} gives "'" for apostrophe!
local pages = mw.text.split(titles, '%s?#%s?')
-- Separate whitespace delimited section level numbers into table
local levels = mw.text.split(frame.args['level'], '%s*')