Модуль:TOC
Модуль формирования оглавления страницы.
Описание функций и параметров
toList
— функция форматирования списка ссылок на разделы.- Принимает три параметра, которые могут иметь значения:
page=
— заголовок страницы (по умолчанию текущая)namespace=
— пространство имен страницы, если оно не указано в pagelevel=
— уровень разделов, которые нужно включить в список (по умолчанию = 2)
- Пример:
{{#invoke:TOC|toList|page=Русский язык/Фамилии/К|namespace=Индекс}}
→ Ка · Кв · Ке · Ки · Кл · Кн · Ко · Кр · Кс · Кт · Ку
- Принимает три параметра, которые могут иметь значения:
p = {}
function p.toList(frame)
local page = mw.ustring.gsub(frame.args['page'] or '', '_', ' ')
local namespace = frame.args['namespace'] or ''
local level = frame.args['level'] or 2
local fullpage = ''
local title;
if page == '' then
title = mw.title.getCurrentTitle()
assert(title,"failed to access mw.title.getCurrentTitle")
else
title = mw.title.new(page, namespace)
assert(title,"failed to access mw.title.new("..tostring(page)..")")
if namespace ~= '' then
fullpage = namespace .. ':' .. page
else
fullpage = page
end
end
local text = title:getContent()
text = mw.ustring.gsub( text, "<!%-%-.-%-%->", "" ) -- убираем HTML комментарии
local hpref = mw.ustring.rep("=", tonumber(level))
local pattern = "\n%s*" .. hpref .. "%s*([^=]-)%s*" .. hpref .."%s*\n"
local toc = {}
for head in mw.ustring.gmatch(text, pattern) do
table.insert(toc, '[[' .. fullpage ..'#' .. head .. '|' .. head .. ']]')
end
return table.concat(toc, ' · ')
end
return p;