Module:Good Articles Explained

local p =

p.main = function (frame) local NNN = 2 -- provide counts only over this threshold local args = require("Module:Arguments").getArgs(frame) -- expect args.shortcut e.g. GA/H, args.type e.g. History, args.text a long list local subpage = frame:preprocess("") -- I never did look up if there's a better way to do this... local header, shortcuts = , local type = args.type or "error: specify type = Good Articles type" local image = args.image and '22px|left' or local sectioncount = 0 if (subpage

type or args.override) then -- I haven't figured out how to deal with missing shortcut so why pretend shortcuts = frame:expandTemplate header = frame:expandTemplate end local introtext = args.text or replace = function(t) local xxxx, links = mw.ustring.gsub(t, "(%[%[[^%[%]]-%]%])", "%1", nil) -- count how many links if links >= NNN then t = t .. " (" .. tostring(links) .. " articles)" end return t .. "\n" end local sectionfooter = [===[ </div> </div> <!-- end of list -->]

] -- comments in the text below are historical from the page's own markup local output = header .. [===[<!-- only include header on this page --> __NOTOC__ <div style="clear:both;"> <!-- DO NOT REMOVE THIS DIV, USED TO FORCE IE TO DISPLAY BACKGROUND FOR ARTS DIV --> </div> <div style="clear:both;"> <span id="]

] .. type .. [===[" ></span> <div style="padding:5px 5px 8px 5px; background-color:#66CC66; text-align:left; font-size:larger;">]

] .. image .. [===[''']

] .. type .. [===['''</div> <div style="text-align:left;"> </div> </div> ]

] .. introtext local section = 0 local finaltext = repeat local wrap = true section = section + 1 local text = (args['section' .. tostring(section)] or args[section] or ) local title = args['title' .. tostring(section)] if (not title) then if (text

) then break else local wrap = false output = output .. text -- sections without headers go in unwrapped end else local image = args['image' .. tostring(section)] text = mw.ustring.gsub(text .. "\n=", "(

.-)\n%s*%f[=]", replace) text = mw.ustring.sub(text,1,-2) -- ditching "=" mark from line above if (image) then image = '22px|left' else image = -- make section without an image end output = output .. [===[<div class="mw-collapsible" style="clear:both;padding: 4px;border: 1px solid #a2a9b1;font-size: 95%;"> <div style="padding:2px 2px 2px 30px; background-color:#FFFAF0; font-size:larger;font-weight: bold;">]

] .. image .. title .. [===[</div> <div class="mw-collapsible-content" style="font-size: 100%"> ==&shy;&nbsp;== ]

] .. text .. sectionfooter end until false return outputend

function p.subsection(frame) if not mw.ustring.find((frame.args[1] or frame:getParent.args[1] or ),'