Module:Check for unknown parameters: Difference between revisions

    m>Mr. Stradivarius
    (various changes: add a trim function, remove unnecessary parens, don't check type for wikitext values (they are always strings), and don't use mw.ustring when the string library will do (it's a lot faster))
    m>Frietjes
    (add support for preview messages)
    Line 19: Line 19:
    local knownargs = {}
    local knownargs = {}
    local unknown = 'Found _VALUE_, '
    local unknown = 'Found _VALUE_, '
    local preview = nil


    local res = {}
    local res = {}
    Line 25: Line 26:
    local commentstr = ''
    local commentstr = ''
    local ispreview = frame:preprocess( "{{REVISIONID}}" ) == "" and 1 or 0
    -- create the list of known args, regular expressions, and the return string
    -- create the list of known args, regular expressions, and the return string
    for k, v in pairs(args) do
    for k, v in pairs(args) do
    Line 30: Line 33:
    v = trim(v)
    v = trim(v)
    knownargs[v] = 1
    knownargs[v] = 1
    elseif k == 'unknown' then
    elseif k == 'unknown' and ispreview == 0 then
    unknown = v
    unknown = v
    elseif k == 'preview' and ispreview == 1 then
    preview = v
    elseif k:find('^regexp[1-9][0-9]*$') then
    elseif k:find('^regexp[1-9][0-9]*$') then
    table.insert(regexps, '^' .. v .. '$')
    table.insert(regexps, '^' .. v .. '$')
    end
    end
    end
    end
     
    if ispreview == 1 and preview then unknown = preview end
    -- adds one result to the output tables
    -- adds one result to the output tables
    local function addresult(k)
    local function addresult(k)