Module:CiteConversionTest
MyWikiBiz, Author Your Legacy — Thursday November 07, 2024
Jump to navigationJump to searchDocumentation for this module may be created at Module:CiteConversionTest/doc
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, '{{%s*cite (%w*)%s*|([^}]*)}}' ); if mode ~= nil and mode ~= 'quick' then result = result .. '\n{{cite compare|mode=' .. mode .. " | " .. param .. "}}\n"; i = i + 1; end mode, param = string.match( template, '{{%s*cite quick%s*|%s*(%w*)%s*|([^}]*)}}' ); if mode ~= nil then result = result .. '\n{{cite compare|mode=' .. mode .. " | " .. param .. "}}\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 == 'citation' then param = string.match( template, '{{%s*' .. typ .. '%s*|([^}]*)}}' ); else param = string.match( template, '{{%s*[cC]ite ' .. typ .. '%s*|([^}]*)}}' ); end if param ~= nil then local good = false; for kw in string.gmatch( param, "[%s|](%w-)%s*=" ) do if required ~= nil then if kw == required then good = true; end else if param_list[kw] == nil then good = true; param_list[kw] = true; end end end if good or (required==nil and math.random(50) == 1) then result = result .. frame:preprocess( '<nowiki>{{cite compare|mode=' .. typ .. " | " .. param .. "}}</nowiki>" ) .. "\n<br />"; end end end end if cnt > 150 then break; end end return result end 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, '{{%s*cite (%w-)%s*|([^}]*)}}' ); 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( '<nowiki>{{cite compare|mode=' .. mode .. " | " .. param .. "}}</nowiki>" ) .. "\n<br />"; end end end end if cnt > 150 then break; end end return result end return c;