Модуль:SP7Tags
Для документации этого модуля может быть создана страница Модуль:SP7Tags/doc
local p = {}
-- split "ПБЗ, давление; расход" -> table {"ПБЗ","давление","расход"}
local function split_tags(s)
if not s or s == "" then return {} end
-- унифицируем разделители: ; и , и переносы -> ,
s = mw.ustring.gsub(s, "[;\n\r]+", ",")
local out = {}
for part in mw.ustring.gmatch(s, "([^,]+)") do
-- trim spaces
part = mw.text.trim(part)
if part ~= "" then
table.insert(out, part)
end
end
return out
end
-- Возвращает вики-текст с вызовами {{ТегСП7|num=...|tag=...}}
function p.store(frame)
local args = frame.args
local num = args.num or ""
local tags = args.tags or ""
num = mw.text.trim(num)
if num == "" then
return "" -- без номера письма теги не пишем
end
local list = split_tags(tags)
if #list == 0 then
return ""
end
local chunks = {}
for _, tag in ipairs(list) do
table.insert(chunks, string.format("{{ТегСП7|num=%s|tag=%s}}", num, tag))
end
return table.concat(chunks, "\n")
end
return p