Модуль:СтихКолонки: различия между версиями
Grayenot (обсуждение | вклад) мНет описания правки |
Grayenot (обсуждение | вклад) мНет описания правки |
||
Строка 2: | Строка 2: | ||
function p.main(frame) | function p.main(frame) | ||
-- Пытаемся получить аргументы из текущего фрейма или родительского | |||
local args = frame.args | |||
local parentArgs = frame:getParent().args | local parentArgs = frame:getParent().args | ||
local content = parentArgs[1] or '' | |||
local max_columns = tonumber(parentArgs['колонок']) or 2 | local content = args[1] or parentArgs[1] or '' | ||
local max_columns = tonumber(args['колонок'] or parentArgs['колонок']) or 2 | |||
local stanzas = mw.text.split(content, '%s*n%s*n%s*') | local stanzas = mw.text.split(content, '%s*n%s*n%s*') |
Версия от 19:08, 2 ноября 2024
Для документации этого модуля может быть создана страница Модуль:СтихКолонки/doc
local p = {} function p.main(frame) -- Пытаемся получить аргументы из текущего фрейма или родительского local args = frame.args local parentArgs = frame:getParent().args local content = args[1] or parentArgs[1] or '' local max_columns = tonumber(args['колонок'] or parentArgs['колонок']) or 2 local stanzas = mw.text.split(content, '%s*n%s*n%s*') local result = '<div class="column-container" style="column-count:' .. max_columns .. '; column-gap: 1em;">' for i, stanza in ipairs(stanzas) do stanza = mw.text.trim(stanza) result = result .. '<div style="break-inside: avoid; white-space: pre-wrap;">' .. mw.text.encode(stanza) .. '</div>' end result = result .. '</div>' return result end return p