5261
редагування
Admin (обговорення | внесок) Немає опису редагування |
Admin (обговорення | внесок) Немає опису редагування |
||
| Рядок 37: | Рядок 37: | ||
local sections = {} | local sections = {} | ||
for | -- Обробляємо рядок за рядком | ||
section_name = mw.text.trim(section_name) | for line in mw.ustring.gmatch(content, "[^\n]+") do | ||
-- Шукаємо заголовки рівня 2 (== Назва ==), але НЕ рівня 3 (=== Назва ===) | |||
table.insert(sections, | local section_name = mw.ustring.match(line, "^==%s*(.-)%s*==$") | ||
if section_name and section_name ~= "" then | |||
-- Очищаємо назву для відображення (прибираємо {{...}}) | |||
local display_name = mw.ustring.gsub(section_name, "%{%{.-%}%}", "") | |||
display_name = mw.ustring.gsub(display_name, "%s*%(%s*%)%s*", "") -- прибираємо пусті дужки () | |||
display_name = mw.text.trim(display_name) | |||
-- Якір залишаємо оригінальним (але без шаблонів для MediaWiki) | |||
local anchor = mw.ustring.gsub(section_name, "%{%{.-%}%}", "") | |||
anchor = mw.text.trim(anchor) | |||
anchor = mw.ustring.gsub(anchor, " ", "_") | |||
table.insert(sections, { | |||
display = display_name, | |||
anchor = anchor | |||
}) | |||
end | end | ||
end | end | ||
| Рядок 48: | Рядок 63: | ||
end | end | ||
-- Будуємо HTML | -- Будуємо HTML | ||
local html_parts = {} | local html_parts = {} | ||
| Рядок 58: | Рядок 73: | ||
-- Пункти меню | -- Пункти меню | ||
for i, section in ipairs(sections) do | for i, section in ipairs(sections) do | ||
local border = "" | local border = "" | ||
if i < #sections then | if i < #sections then | ||
| Рядок 66: | Рядок 80: | ||
table.insert(html_parts, string.format( | table.insert(html_parts, string.format( | ||
'<div class="l-box-item" style="padding:12px 20px; %s">[[#%s|%s]]</div>', | '<div class="l-box-item" style="padding:12px 20px; %s">[[#%s|%s]]</div>', | ||
border, anchor, section | border, section.anchor, section.display | ||
)) | )) | ||
end | end | ||