Модуль:CssVarExtractor: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 6: | Строка 6: | ||
end | end | ||
input = mw.text.trim(input) | input = mw.text.trim(input) | ||
local | local varName, fallback = mw.ustring.match(input, "^var%((.-)%s*,%s*([^)]+)%)$") | ||
if varName and fallback then | |||
return "var(" .. varName .. ")", fallback | |||
) | end | ||
return | return nil, nil | ||
end | end | ||
| Строка 24: | Строка 24: | ||
function p.getVar(frameOrString) | function p.getVar(frameOrString) | ||
local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or '' | |||
return getVarInternal(input) | |||
end | end | ||
function p.getColor(frameOrString) | function p.getColor(frameOrString) | ||
local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or '' | |||
return frameOrString:preprocess('<nowiki>' .. getColorInternal(input) .. '</nowiki>') | |||
end | end | ||
return p | return p | ||
Текущая версия от 07:55, 19 апреля 2025
Для документации этого модуля может быть создана страница Модуль:CssVarExtractor/doc
local p = {}
local function extractParts(input)
if not input or type(input) ~= 'string' then
return nil, nil
end
input = mw.text.trim(input)
local varName, fallback = mw.ustring.match(input, "^var%((.-)%s*,%s*([^)]+)%)$")
if varName and fallback then
return "var(" .. varName .. ")", fallback
end
return nil, nil
end
local function getVarInternal(input)
local varPart = extractParts(input)
return varPart or input
end
local function getColorInternal(input)
local _, valuePart = extractParts(input)
return valuePart or input
end
function p.getVar(frameOrString)
local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or ''
return getVarInternal(input)
end
function p.getColor(frameOrString)
local input = (type(frameOrString) == 'table' and frameOrString.args[1]) or frameOrString or ''
return frameOrString:preprocess('<nowiki>' .. getColorInternal(input) .. '</nowiki>')
end
return p