Модуль:СтихКолонки: различия между версиями
Grayenot (обсуждение | вклад) мНет описания правки |
Grayenot (обсуждение | вклад) мНет описания правки |
||
Строка 19: | Строка 19: | ||
local stanzas = mw.text.split(content, 'nn') | local stanzas = mw.text.split(content, 'nn') | ||
local | -- Формируем стиль для контейнера колонок с явным указанием всех префиксов | ||
local column_style = string.format([[ | |||
-webkit-column-count: %d; | |||
-moz-column-count: %d; | |||
column-count: %d; | |||
column-gap: 1em; | |||
]], max_columns, max_columns, max_columns) | |||
-- Начало контейнера | |||
local result = '<div class="column-container" style="' .. column_style .. '">' | |||
for i, stanza in ipairs(stanzas) do | for i, stanza in ipairs(stanzas) do | ||
stanza = mw.text.trim(stanza) | stanza = mw.text.trim(stanza) | ||
-- Обрабатываем вики-разметку для каждой строфы отдельно | -- Обрабатываем вики-разметку для каждой строфы отдельно | ||
stanza = frame: | stanza = frame:preprocess(stanza) | ||
result = result .. stanza | result = result .. '<div>' .. stanza .. '</div>' | ||
end | end | ||
Текущая версия от 19:25, 2 ноября 2024
Для документации этого модуля может быть создана страница Модуль:СтихКолонки/doc
local p = {} function p.main(frame) local args = frame.args local parentArgs = frame:getParent().args local allArgs = {} for k, v in pairs(parentArgs) do allArgs[k] = v end for k, v in pairs(args) do allArgs[k] = v end local content = allArgs[1] or '' local max_columns = tonumber(allArgs['колонок']) or 2 -- Разделяем текст на строфы по двойному переносу строки local stanzas = mw.text.split(content, 'nn') -- Формируем стиль для контейнера колонок с явным указанием всех префиксов local column_style = string.format([[ -webkit-column-count: %d; -moz-column-count: %d; column-count: %d; column-gap: 1em; ]], max_columns, max_columns, max_columns) -- Начало контейнера local result = '<div class="column-container" style="' .. column_style .. '">' for i, stanza in ipairs(stanzas) do stanza = mw.text.trim(stanza) -- Обрабатываем вики-разметку для каждой строфы отдельно stanza = frame:preprocess(stanza) result = result .. '<div>' .. stanza .. '</div>' end result = result .. '</div>' return result end return p