мНет описания правки
мНет описания правки
Строка 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