Fandom

Kraftens Arkiver

Modul:InfoboxParamCheck

663pages on
this wiki
Add New Page
Talk0
local p = {}
 
local function makeCategoryLink(cat)
	-- "Category" is split out here so that the module isn't put into the
	-- category "%s" when the page is saved.
	return string.format('[[%s:%s]]', 'Category', cat)
end
 
function p.main(frame)
    if mw.title.getCurrentTitle().namespace ~= 0 then
        return ''
    end
    local missing = false
    local empty = true
    local extra = false
    local arglist = {}
    for _, k in ipairs(frame.args) do
        arglist[k] = true
    end
    local ignore = {}
    if frame.args.ignore then
        for k in frame.args.ignore:gmatch('[^%,]+') do
            ignore[k] = true
        end
    end
    local optional = {}
    if frame.args.optional then
        for k in frame.args.optional:gmatch('[^%,]+') do
            optional[k] = true
        end
    end
    for k, v in pairs(frame:getParent().args) do
        if not arglist[k] and not optional[k] then
            extra = true
        elseif empty and not ignore[k] and #v > 0 then
            empty = false
        end
        arglist[k] = nil
    end
    if next(arglist) then
        -- nil if the table is empty, or a string key
        -- that evaluates to true if not empty
        missing = true
    end
    local ret = {''}
    if missing then
        if frame.args.infobox then
            ret[#ret + 1] = makeCategoryLink('Character infoboxes with missing parameters')
        else
            ret[#ret + 1] = makeCategoryLink('Infoboxes with missing parameters')
        end
    end
    if empty then
        ret[#ret + 1] = makeCategoryLink('Articles with empty infoboxes')
    end
    if extra then
        ret[#ret + 1] = makeCategoryLink('Infoboxes with unrecognized parameters')
    end
    return table.concat(ret)
end
 
return p

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki