Модуль:FetchData7: відмінності між версіями
Admin (обговорення | внесок) Немає опису редагування Мітка: Скасовано |
Admin (обговорення | внесок) Немає опису редагування Мітка: Скасовано |
||
| Рядок 47: | Рядок 47: | ||
end | end | ||
local html = '<nav class="toc-sidebar"> | local html = '<nav class="toc-sidebar"><div class="toc-title">Зміст</div><ul class="toc-list">' | ||
for _, section in ipairs(sections) do | for _, section in ipairs(sections) do | ||
html = html .. '<li class="toc-item">' | html = html .. '<li class="toc-item"><a href="#' .. section.anchor .. '"><span class="toc-number">' .. section.num .. '</span><span class="toc-text">' .. section.display .. '</span></a></li>' | ||
end | end | ||
html = html .. '</ul> | html = html .. '</ul></nav>' | ||
return html | return html | ||
Версія за 19:34, 8 грудня 2025
Документацію для цього модуля можна створити у Модуль:FetchData7/документація
local p = {}
function p.section_menu(frame)
local page_name = frame.args.page or mw.title.getCurrentTitle().text
local games = frame.args.games
local title = mw.title.new(page_name)
if not title or not title.exists then
return ""
end
local content = title:getContent()
if not content then
return ""
end
local sections = {}
local num = 0
for section_name in mw.ustring.gmatch(content, "\n==%s*([^=]+)%s*==") do
section_name = mw.text.trim(section_name)
local clean_name = mw.ustring.gsub(section_name, "%{%{.-%}%}", "")
clean_name = mw.ustring.gsub(clean_name, "%s*%(%s*%)%s*", "")
clean_name = mw.text.trim(clean_name)
if clean_name ~= "" then
num = num + 1
local display = clean_name
local anchor = clean_name
if mw.ustring.match(clean_name, "Записи ігор") and games then
display = clean_name .. " (" .. games .. ")"
anchor = clean_name .. "_(" .. games .. ")"
end
table.insert(sections, {
num = num,
display = display,
anchor = mw.ustring.gsub(anchor, " ", "_")
})
end
end
if #sections == 0 then
return ""
end
local html = '<nav class="toc-sidebar"><div class="toc-title">Зміст</div><ul class="toc-list">'
for _, section in ipairs(sections) do
html = html .. '<li class="toc-item"><a href="#' .. section.anchor .. '"><span class="toc-number">' .. section.num .. '</span><span class="toc-text">' .. section.display .. '</span></a></li>'
end
html = html .. '</ul></nav>'
return html
end
return p