FANDOM


c = {};
 
exclude = { ['#'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, ['5'] = true, ['k'] = true, ['v'] = true, ['list'] = true };
 
function c.build_whitelist( frame )
    local title = mw.title.new( "Modulo:Citazione" );
    local source = title:getContent();
 
    local result = "-- Questo modulo è generato automaticamente mediante il modulo Modulo:Citazione/Argomenti, non modificatelo a mano\n\nwhitelist = {<br />\n<br />\n";
    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 s in source:gmatch( "selectone%(%s*args%s*,%s*{(.-)}" ) do
        for w in s:gmatch( "%s*([^,]+)%s*" ) 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( "'", '' );
            w = w:gsub('1(%D)', '#%1');
            w = w:gsub('1$', '#');
            w = w:match( "^%s*(.-)%s*$");
            list[w] = true;
        end
    end
 
    title = mw.title.new( "Modulo:Citazione/Configurazione" );
    source = title:getContent();
    for s in source:gmatch( "%sparameters%s*=%s{(.-)}" ) do
        for w in s:gmatch( "%s*([^,]+)%s*" ) 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( "'", '' );
            w = w:gsub('1(%D)', '#%1');
            w = w:gsub('1$', '#');
            w = w:match( "^%s*(.-)%s*$");
            list[w] = true;
        end
    end
 
    cfg = require( "Modulo:Citazione/Configurazione" );
    for k, v in pairs( cfg.aliases ) do
        if type( v ) == 'table' then
            for k2, v2 in pairs( v ) do
                list[v2] = true;
                list[v2:gsub("#", "")] = true;
            end
        else
            list[v] = true;
            list[v:gsub("#", "")] = true;
        end
    end
 
    local list2 = {};
    for k in pairs( list ) do
        if exclude[k] == nil then
            table.insert( list2, k );
        end
    end
    table.sort( list2 );
 
    result = 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";
 
 
    result = result .. "};<br />\n<br />\nreturn whitelist;"
    return result;
end
 
return c;

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.

Inoltre su FANDOM

Wiki casuale