c =
function c.test(frame) local target = frame.args[1] or frame.args.target; local tt = mw.title.new(target); local content = tt:getContent; local result = ; local template; local i = 1; for template in string.gmatch(content, '%b') do local mode, param; mode, param = string.match(template, '}'); if mode ~= nil and mode ~= 'quick' then result = result .. '\n' .. mode .. " . \n"; i = i + 1; end mode, param = string.match(template, '}'); if mode ~= nil then result = result .. '\n' .. mode .. " . \n"; i = i + 1; end if i > 90 then break; end --prevent time outs end return frame:preprocess(result);end
function c.gather(frame) local typ = frame.args[1] or frame.args.mode; local start = frame.args[2] or frame.args.start; local required = frame.args[3] or frame.args.require;
local tt = mw.title.new(start); local content = tt:getContent;
local targets = ; for w in string.gmatch(content, '%[%[(%w-)%]%]') do targets[w] = true; end local targets2 = for k in pairs(targets) do tt = mw.title.new(k); if tt ~= nil then content = tt:getContent or ""; else content = nil; end if content ~= nil then for w in string.gmatch(content, '%[%[(%w-)%]%]') do targets2[w] = true; end end end targets = targets2;
local result = ; local cnt = 0; local param_list = ; for k in pairs(targets) do local tt = mw.title.new(k); cnt = cnt + 1; if tt ~= nil then local content = tt:getContent or ; local template; local i = 1; for template in string.gmatch(content, '%b') do local param; if typ
if param ~= nil then local good = false; for kw in string.gmatch(param, "[%s|](%w-)%s*=") do if required ~= nil then if kw
nil then good = true; param_list[kw] = true; end end end if good or (required
1) then result = result .. frame:preprocess('{{cite compare|mode=' .. typ .. " | " .. param .. "}}") .. "\n
"; end end end end if cnt > 150 then break; end end
return resultend
function c.casing(frame) local start = frame.args[1] or frame.args.start;
local tt = mw.title.new(start); local content = tt:getContent;
local targets = ; for w in string.gmatch(content, '%[%[(%w-)%]%]') do targets[w] = true; end local targets2 = for k in pairs(targets) do tt = mw.title.new(k); content = tt:getContent; for w in string.gmatch(content, '%[%[(%w-)%]%]') do targets2[w] = true; end end targets = targets2;
local result = ; local cnt = 0; local param_list = ; for k in pairs(targets) do local tt = mw.title.new(k); cnt = cnt + 1; if tt ~= nil then local content = tt:getContent or ; local template; local i = 1; for template in string.gmatch(content, '%b') do local mode, param; mode, param = string.match(template, '}'); if param ~= nil then local good = false; for kw in string.gmatch(param, "[%s|](%w-)%s*=") do if kw:match('[A-Z]') ~= nil then good = true; end end if good then result = result .. frame:preprocess('{{cite compare|mode=' .. mode .. " | " .. param .. "}}") .. "\n
"; end end end end if cnt > 150 then break; end end
return resultend
return c;