Шаблон:НавигацияМодуль
Внешний вид
local p = {}
function p.navmenu(frame)
local args = frame:getParent().args local currentTitle = mw.title.getCurrentTitle() local categories = {} for key, value in pairs(args) do if string.match(key, '^category%d+$') then local num = string.match(key, 'category(%d+)') categories[tonumber(num)] = { name = value, subitems = {} } end end for key, value in pairs(args) do if string.match(key, '^subitems%d+$') then local num = string.match(key, 'subitems(%d+)') num = tonumber(num) if categories[num] then -- Разделяем подпункты по точке с запятой local subitems = mw.text.split(value, ';') for _, item in ipairs(subitems) do table.insert(categories[num].subitems, mw.text.trim(item)) end end end end local sortedCategories = {} for num in pairs(categories) do table.insert(sortedCategories, num) end table.sort(sortedCategories) local html = {} table.insert(html, '<nav class="wiki-nav-menu">')
table.insert(html, '
') table.insert(html, '
')
table.insert(html, '</nav>') return table.concat(html, '\n')
end
return p