Модуль:SP7Tags

Материал из Аэропро.Вики
Версия от 17:10, 29 декабря 2025; Dimok911 (обсуждение | вклад) (Новая страница: «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,...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для документации этого модуля может быть создана страница Модуль: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