Content deleted Content added
Fred Gandt (talk | contribs) making possible to feed "sections" a list of pages |
Fred Gandt (talk | contribs) slight improvement for handling unexpected-and-wanted whitespace around the # delimiters; %s? --> %s* i.e. possible single whitespace char --> zero or more whitespace chars |
||
(18 intermediate revisions by 6 users not shown) | |||
Line 1:
local p = {}
-- Unescape functionality grabbed from https://stackoverflow.com/a/14899740/1832568
local function unescape(str)
str = string.gsub(str, '&#(%d+);', string.char)
str = string.gsub(str, '&#x(%d+);', function(n) return string.char(tonumber(n, 16)) end)
return str
-- Counting function accepting a string haystack and table of needles
local function count(haystack, needles)
local number = 0
-- While we have needles to look for
-- find them all in our haystack
for m in string.gmatch(haystack, needle) do
number = number + 1
end
end
return number
end
-- Function
function p.
local total = 0
local needles = {}
local haystack =
-- Separate page names from # delimited string into table
-- Separate whitespace delimited section level numbers into table
-- Iterate through levels
if level ~= " " then▼
▲ -- add the needle to our table of needles
▲ string.rep("=", tonumber(level)) .. "[^=]"
end▼
▲ end
end
-- For each page name in
for index, page
-- create a haystack to search from the page content
haystack = mw.title.new(page):getContent()▼
-- If we've requested the content of a legitimate page
▲ haystack = mw.title.new(page)
and add the return to total ]]
total = total + count('\n' .. haystack, needles)
end
--[[ then return how many sections of the required level
|