Модуль:СтихКолонки: различия между версиями
Grayenot (обсуждение | вклад) мНет описания правки |
Grayenot (обсуждение | вклад) мНет описания правки |
||
Строка 2: | Строка 2: | ||
function p.main(frame) | function p.main(frame) | ||
local args = frame.args | local args = frame.args | ||
local parentArgs = frame:getParent().args | local parentArgs = frame:getParent().args | ||
local allArgs = {} | local allArgs = {} | ||
for k, v in pairs(parentArgs) do | for k, v in pairs(parentArgs) do | ||
Строка 15: | Строка 13: | ||
end | end | ||
local content = allArgs[1] or '' | local content = allArgs[1] or '' | ||
local max_columns = tonumber(allArgs['колонок']) or 2 | local max_columns = tonumber(allArgs['колонок']) or 2 | ||
-- | -- Разделяем текст на строфы по двойному переносу строки | ||
local stanzas = mw.text.split(content, 'nn') | |||
local result = '<div class="column-container" style="-moz-column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. '; column-count:' .. max_columns .. '; column-gap: 1em;">' | local result = '<div class="column-container" style="-moz-column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. '; column-count:' .. max_columns .. '; column-gap: 1em;">' | ||
for i, stanza in ipairs(stanzas) do | for i, stanza in ipairs(stanzas) do | ||
stanza = mw.text.trim(stanza) | stanza = mw.text.trim(stanza) | ||
-- | -- Обрабатываем вики-разметку для каждой строфы отдельно | ||
result = result .. | stanza = frame:expandTemplate{ title = 'Block', args = { stanza } } | ||
result = result .. stanza | |||
end | end | ||
Версия от 19:17, 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 result = '<div class="column-container" style="-moz-column-count:' .. max_columns .. '; -webkit-column-count:' .. max_columns .. '; column-count:' .. max_columns .. '; column-gap: 1em;">' for i, stanza in ipairs(stanzas) do stanza = mw.text.trim(stanza) -- Обрабатываем вики-разметку для каждой строфы отдельно stanza = frame:expandTemplate{ title = 'Block', args = { stanza } } result = result .. stanza end result = result .. '</div>' return result end return p