require('strict')
local getArgs = require('Module:Arguments').getArgslocal p =
-- Close
function p.main(frame) local args = getArgs(frame) local wikitext = frame:preprocess(args[1]) local items = local out = for indent, item in wikitext:gmatch('(**) *([^\n]*)\n') do table.insert(items,) end -- Match the last line local lastIndent, lastItem = wikitext:match('(**) *([^\n]*)$') table.insert(items,) -- Elements that are currently open local toClose = -- Lowest depth of parent that forces all
for i, item in pairs(items) do local level, text = unpack(item) out = out .. closePending(toClose, level) if level
0 or toClose[#toClose].type ~= 'ul' then out = out .. (forcedInline <= level and '
\n' .. out .. '
' .. frame:extensionTagend
return p