Module:Citation/CS1/Arguments

From blackwiki
< Module:Citation‎ | CS1
Revision as of 19:14, 4 April 2013 by test>Dragons flight (Created page with 'c = {}; function c.build_whitelist( frame ) local title = mw.title.new( "Module:Citation/CS1" ); local source = title:getContent(); local result = ...')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Documentation for this module may be created at Module:Citation/CS1/Arguments/doc

c = {};

function c.build_whitelist( frame )
    local title = mw.title.new( "Module:Citation/CS1" );
    local source = title:getContent();

    local result = "";
    local list = {};
    
    for w in source:gmatch( "args%[(.-)%]" ) do
        w = w:gsub( "%s*%.%.%s*i%s*%.%.%s*", "#" );
        w = w:gsub( "%s*%.%.%s*i", "#" );
        w = w:gsub( "i%s*%.%.%s*", "#" );
        w = w:gsub('"', '' );
        w = w:gsub('1(%D)', '#%1');
        w = w:gsub('1$', '#');
        list[w] = true;
    end
    for w in source:gmatch( "args%.([%w%d_-]*)" ) do
        w = w:gsub('1(%D)', '#%1');
        w = w:gsub('1$', '#');
        list[w] = true;
    end
    
    local list2 = {};
    for k in pairs( list ) do
        table.insert( list2, k );
    end
    table.sort( list2 );
    
    result = "basic_arguments = {<br />\n";
    for _, k in pairs( list2 ) do    
        if k:match( "#" ) == nil then 
            result = result .. "&nbsp;&nbsp;&nbsp;&nbsp;['" .. k .. "'] = true," .. "<br />\n";
        end
    end        
    result = result .. "};<br /> \n<br /> \n";

    result = result .. "numbered_arguments = {<br />\n";
    for _, k in pairs( list2 ) do    
        if k:match( "#" ) ~= nil then 
            result = result .. "&nbsp;&nbsp;&nbsp;&nbsp;['" .. k .. "'] = true," .. "<br />\n";
        end
    end        
    result = result .. "};<br /> \n";
    return result;
end

return c;