Модуль:Loc/Marking: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
local function transform(s) | local function transform(s) | ||
if not s or s == "" then return "" end | if not s or s == "" then return "" end | ||
local pattern = "%[([%w_]+)(=([^%]]+))?%]( | local pattern = "%[([%w_]+)(=([^%]]+))?%](.-)%[/%1%]" | ||
local changed = true | local changed = true | ||
| Строка 16: | Строка 12: | ||
changed = true | changed = true | ||
local t = mw.ustring.lower(tag) | local t = mw.ustring.lower(tag) | ||
if t == "bold" then | if t == "bold" then | ||
return " | return "<b>" .. inner .. "</b>" | ||
elseif t == "italic" then | elseif t == "italic" then | ||
return " | return "<i>" .. inner .. "</i>" | ||
elseif t == "bolditalic" then | |||
return "<i><b>" .. inner .. "</b></i>" | |||
elseif t == "head" then | elseif t == "head" then | ||
return '<h' .. param .. '>' .. inner .. '</h' .. param .. '>' | |||
elseif t == "color" then | elseif t == "color" then | ||
return '<span style="color:' .. param .. ';">' .. inner .. '</span>' | return '<span style="color:' .. param .. ';">' .. inner .. '</span>' | ||
elseif t == "bullet" then | |||
return "· " .. inner | |||
else | else | ||
return inner | return inner | ||
| Строка 41: | Строка 36: | ||
function p.main(frame) | function p.main(frame) | ||
local | local args = frame.args or {} | ||
local text = args[1] or args.text or "" | |||
if type(text) ~= "string" then text = tostring(text) end | |||
local out = transform(text) | local out = transform(text) | ||
return | return out | ||
end | end | ||
return p | return p | ||
Версия от 07:23, 12 января 2026
Для документации этого модуля может быть создана страница Модуль:Loc/Marking/doc
local p = {}
local function transform(s)
if not s or s == "" then return "" end
local pattern = "%[([%w_]+)(=([^%]]+))?%](.-)%[/%1%]"
local changed = true
while changed do
changed = false
s = s:gsub(pattern, function(tag, _, param, inner)
changed = true
local t = mw.ustring.lower(tag)
if t == "bold" then
return "<b>" .. inner .. "</b>"
elseif t == "italic" then
return "<i>" .. inner .. "</i>"
elseif t == "bolditalic" then
return "<i><b>" .. inner .. "</b></i>"
elseif t == "head" then
return '<h' .. param .. '>' .. inner .. '</h' .. param .. '>'
elseif t == "color" then
return '<span style="color:' .. param .. ';">' .. inner .. '</span>'
elseif t == "bullet" then
return "· " .. inner
else
return inner
end
end)
end
s = s:gsub("%[/?[%w_]+[^%]]*%]", "")
return s
end
function p.main(frame)
local args = frame.args or {}
local text = args[1] or args.text or ""
if type(text) ~= "string" then text = tostring(text) end
local out = transform(text)
return out
end
return p