Модуль:CssVarExtractor: различия между версиями

Новая страница: «local p = {} local function extractParts(input) if not input or type(input) ~= 'string' then return nil, nil end local varPart, valuePart = mw.ustring.match( mw.ustring.trim(input), "^(var%([^,]+%))%s*,%s*([^)]+)%)$" ) return varPart, valuePart end local function getVarInternal(input) local varPart = extractParts(input) return varPart or input end local function getColorInternal(input) local _, value...»
 
мНет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 5: Строка 5:
         return nil, nil
         return nil, nil
     end
     end
     local varPart, valuePart = mw.ustring.match(
     input = mw.text.trim(input)
        mw.ustring.trim(input),
    local varName, fallback = mw.ustring.match(input, "^var%((.-)%s*,%s*([^)]+)%)$")
        "^(var%([^,]+%))%s*,%s*([^)]+)%)$"
     if varName and fallback then
     )
        return "var(" .. varName .. ")", fallback
     return varPart, valuePart
    end
     return nil, nil
end
end


Строка 23: Строка 24:


function p.getVar(frameOrString)
function p.getVar(frameOrString)
     if type(frameOrString) == 'table' and frameOrString.args then
     local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or ''
        local input = frameOrString.args[1] or ''
    return getVarInternal(input)
        return getVarInternal(input)
    end
    return getVarInternal(frameOrString)
end
end


function p.getColor(frameOrString)
function p.getColor(frameOrString)
     if type(frameOrString) == 'table' and frameOrString.args then
     local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or ''
        local input = frameOrString.args[1] or ''
    return frameOrString:preprocess('<nowiki>' .. getColorInternal(input) .. '</nowiki>')
        return getColorInternal(input)
    end
    return getColorInternal(frameOrString)
end
end


return p
return p