Module:Test2: Difference between revisions

From Elwiki
No edit summary
No edit summary
Line 25: Line 25:
             new_args[k] = args[k]
             new_args[k] = args[k]
         end
         end
         if indexOf(k, remove) then
    end
 
    for k, v in old_args do
         if indexOf(k, new_args) then
             new_args[k] = nil
             new_args[k] = nil
         end
         end

Revision as of 22:03, 25 April 2023

Documentation for this module may be created at Module:Test2/doc

require('Module:CommonFunctions');
local getArgs = require('Module:Arguments').getArgs
local p = {}

function p.Patch(frame)
    local args = getArgs(frame)

    local input_args = split(mw.text.unstrip(args.orig), '|')
    local old_args = {}
    for k, v in ipairs(input_args) do
        local old_arg = split(v, '=')
        if not old_arg[2] then
            old_args[k] = v
        else
            old_args[old_arg[1]] = old_arg[2]
        end
    end

    args.orig = nil
    local remove = split(args.remove)
    local new_args = table.deep_copy(old_args)

    for k, v in pairs(args) do
        if args[k] then
            new_args[k] = args[k]
        end
    end

    for k, v in old_args do
        if indexOf(k, new_args) then
            new_args[k] = nil
        end
    end

    if args.dump then
        return inspect_dump(frame, new_args)
    end

    local old_table = frame:expandTemplate{
        title = 'Damage',
        args = old_args
    }

    local new_table = frame:expandTemplate{
        title = 'Damage',
        args = new_args
    }

    local kr_date = 'KR (' .. args.date .. ')'

    local tabber = frame:expandTemplate{
        title = 'Tabber',
        args = {
            NA = old_table,
            ['$divclass'] = 'tabber-border',
            ['$divstyle'] = 'display: inline-flex',
            [kr_date] = new_table
        }
    }

    return tabber
  
end

return p