(Новая страница: «-- Модуль:СтихКолонки local p = {} function p.main(frame) local args = frame.args local max_columns = tonumber(args[1]) or 4 -- По умолчанию 4 колонки -- Ограничиваем максимальное количество колонок до 4 max_columns = math.min(max_columns, 4) local content = args[2] or '' -- Захватываем весь текст из второго аргумента...»)
 
мНет описания правки
Метка: отменено
Строка 8: Строка 8:
     -- Ограничиваем максимальное количество колонок до 4
     -- Ограничиваем максимальное количество колонок до 4
     max_columns = math.min(max_columns, 4)
     max_columns = math.min(max_columns, 4)
    if max_columns < 1 then max_columns = 4 end  -- Убеждаемся, что число колонок не меньше 1


     local content = args[2] or ''  -- Захватываем весь текст из второго аргумента
     local content = args[2] or ''  -- Захватываем весь текст из второго аргумента


     -- Обрабатываем содержимое, разбивая по пустым строкам
     -- Обрабатываем содержимое, разбивая по трем или более переводам строки
     local parts = mw.text.split(content, 'n%s*n')
     local parts = mw.text.split(content, 'n%s*n%s*n')
     local result = '<div class="column-container" style="column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. ';">'
     local result = '<div class="column-container" style="column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. ';">'


     for i, part in ipairs(parts) do
     for i, part in ipairs(parts) do
         part = mw.text.trim(part)
         part = mw.text.trim(part)
         result = result .. '<div class="column-break">' .. part .. '</div>'
         -- Если часть не пуста, добавляем её
        if part ~= '' then
            -- Добавляем стиль break-inside: avoid
            result = result .. '<div class="column-break" style="break-inside: avoid; page-break-inside: avoid; -webkit-column-break-inside: avoid;">' .. part .. '</div>'
        end
     end
     end



Версия от 16:19, 2 ноября 2024

Для документации этого модуля может быть создана страница Модуль:СтихКолонки/doc

-- Модуль:СтихКолонки
local p = {}

function p.main(frame)
    local args = frame.args
    local max_columns = tonumber(args[1]) or 4  -- По умолчанию 4 колонки

    -- Ограничиваем максимальное количество колонок до 4
    max_columns = math.min(max_columns, 4)
    if max_columns < 1 then max_columns = 4 end  -- Убеждаемся, что число колонок не меньше 1

    local content = args[2] or ''  -- Захватываем весь текст из второго аргумента

    -- Обрабатываем содержимое, разбивая по трем или более переводам строки
    local parts = mw.text.split(content, 'n%s*n%s*n')
    local result = '<div class="column-container" style="column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. ';">'

    for i, part in ipairs(parts) do
        part = mw.text.trim(part)
        -- Если часть не пуста, добавляем её
        if part ~= '' then
            -- Добавляем стиль break-inside: avoid
            result = result .. '<div class="column-break" style="break-inside: avoid; page-break-inside: avoid; -webkit-column-break-inside: avoid;">' .. part .. '</div>'
        end
    end

    result = result .. '</div>'
    return result
end

return p