Jump to content

Module:User:Dragons flight/Test

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dragons flight (talk | contribs) at 01:07, 5 April 2013. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local z = {
    error_categories = {};
    message_tail = {};
}

function z.test( frame )
    local a = frame.args[1];
    local b = mw.text.nowiki( 'hi' )
    
    frame:callParserFunction{ name = '#tag:ref', args = {
        'some text', name = 'foo', group = 'bar' } }
    frame:extensionTag( "ref", "bob", {} )
    return '';
end

local whitelist = mw.loadData( 'Module:Citation/CS1/Whitelist' );

-- Checks that parameter name is valid
function validate( name )
    name = tostring( name );
    
    -- Normal arguments
    if whitelist.basic_arguments[ name ] then
        return true;
    end
    
    -- Arguments with numbers in them
    name = name:gsub( "%d+", "#" );
    if whitelist.numbered_arguments[ name ] then
        return true;
    end
    
    -- Not found, argument not supported.
    return false;
end

function z.citation(frame)
    local arglist = frame.args;
    local clock1, clock2;
    
    clock1 = os.clock();
    for j = 1,310 do
        local args = {};
        for k, v in pairs( arglist ) do
            if v ~= '' then
                if not validate( k ) then
                    -- Exclude empty numbered parameters
                    if v:match("%S+") ~= nil then
                        table.insert( z.error_categories, 'Pages with citations using unsupported arguments' );
                        table.insert( z.message_tail, 'Unknown argument "' .. k .. '"' );
                    end
                end            
                args[k] = v;
            elseif k == 'postscript' then
                args[k] = v;
            end        
        end    
    end
    clock2 = os.clock();
    
    return clock2 - clock1
end

return z;