Jump to content

Module:Good Articles: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
an 'orrible 'ack to get the last number calculated
Suppressing end of section whitespace that can put the (x articles) on the next line. Also fixed "Urania's mirror" from being on a separate line for reasons I do not comprehend
Line 57: Line 57:
else
else
local image = args['image' .. tostring(section)]
local image = args['image' .. tostring(section)]
text = mw.ustring.gsub(text .. "\n=", "(==.-)\n%f[=]", replace)
text = mw.ustring.gsub(text .. "\n=", "(==.-)\n%s*%f[=]", replace)
text = mw.ustring.sub(text,1,-2) -- ditching "=" mark from line above
text = mw.ustring.sub(text,1,-2) -- ditching "=" mark from line above
if (image) then
if (image) then

Revision as of 14:07, 17 April 2014

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("{{SUBPAGENAME}}") -- I never did look up if there's a better way to do this...
	local header = ""
	local shortcuts = ""
	local type = args.type or "error: specify type = Good Articles type"
	local image = ''
	if args.image then image = '[[' .. args.image .. '|22px|left]]' end
	local sectioncount = 0
	if subpage == type then -- I haven't figured out how to deal with missing shortcut so why pretend
		shortcuts = frame:expandTemplate{ title = 'shortcut', args = { args.shortcut } }
		header = frame:expandTemplate{ title = 'Wikipedia:Good articles/header', args = { shortcuts = shortcuts } }
    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 .. "<small> (" .. tostring(links) .. "&nbsp;articles)</small>"
        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 .. [===[" />
<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 = '[[' .. image .. '|22px|left]]'
    	    else
    		    image = '' -- make section without an image
    	    end
    		output = output .. [===[<div style="clear:both;" class="NavFrame">
<span id="World history"/>
<div class="NavHead" style="padding:2px 2px 2px 30px; background-color:#FFFAF0; text-align:left; font-size:larger;">]===] .. image .. title .. [===[</div>
<div class="NavContent" style="text-align:left;">

==&shy;&nbsp;==
]===] .. text .. sectionfooter
        end
    until false
    return output
end

return p