Modul:Large category TOC
Erscheinungsbild
Dokumentation für das Modul Large category TOC[Ansicht] [Bearbeiten] [Versionsgeschichte] [ ]
Dieses Modul wurde am 20. März 2022 von Module:Large category TOC der englischen Wikipedia importiert. Statt Änderungen hier auf Wikivoyage vorzunehmen, sollte eine neuer Import vorgezogen werden, falls im originalen Wiki neue Funktionen hinzugekommen sind. Stimme dich dazu bitte mit der Community in der Vorlagenwerkstatt ab. |
Dieses Modul ist geschützt. Es wird sehr häufig verwendet oder substituiert. Änderungen können zu einer großen Serverlast führen, und Vandalismus kann sich auf eine Vielzahl von Artikel auswirken. |
Verwendung
Dieses Modul implementiert die Vorlage {{Large category TOC}} und ähnliche Vorlagen. Es wird bei Kategorien mit vielen Mitgliedern verwendet, um sie nach dem Anfangsbuchstaben und den ersten beiden Buchstaben zu indizieren
Für vollständige Listen ({{Large category TOC}}):
{{#invoke:Large category TOC|aejot}}
Für klappbare Listen ({{Collapsible large category TOC}}):
{{#invoke:Large category TOC|collapsible}}
Verwendete Stilvorlagen
Hinweise
- Die obige Dokumentation wurde aus der Seite Modul:Large category TOC/Doku eingefügt. (bearbeiten | Versionsgeschichte) Die Kategorien für dieses Modul sollten in der Dokumentation eingetragen werden. Die Interwiki-Links sollten auf Wikidata eingepflegt werden.
- Liste der Unterseiten
local p = {}
local azupper = mw.text.split('ABCDEFGHIJKLMNOPQRSTUVWXYZ','')
local azlower = mw.text.split('abcdefghijklmnopqrstuvwxyz','')
local aejot = mw.text.split('aejot','')
local function main(toc_type)
local toc_frame = mw.html.create('div')
:addClass('large-cat-toc')
:addClass('plainlinks')
:addClass('toc')
-- :attr('id','toc')
-- Contains "Content: Top 0-9 A - Z"
local header = toc_frame:tag('div')
:attr('class', 'toctitle')
-- Contains all the rest
local body_wrapper
local body = toc_frame:tag('div')
:addClass('large-cat-toc-body')
local jumpy_collapse = mw.html.create('div')
:addClass('large-cat-toc-jumpy-title')
if toc_type == 'collapsible' then
toc_frame:addClass('mw-collapsible mw-collapsed')
body:addClass('mw-collapsible-content')
elseif toc_type == 'scrollable' then
toc_frame:addClass('large-cat-toc-scroll')
end
local pageurl = mw.title.getCurrentTitle():fullUrl()
local header_content = {
string.format(
'<span class="large-cat-toc-title">%s:</span> [%s Top] [%s?from=0 0–9]',
mw.message.new('Toc'):plain(),
pageurl,
pageurl
)
}
for _, v in ipairs(azupper) do
table.insert(header_content, string.format(
' [%s?from=%s %s]', pageurl, v, v
))
end
if toc_type == 'collapsible' then
jumpy_collapse:wikitext(table.concat(header_content))
header:node(jumpy_collapse)
else
header:wikitext(table.concat(header_content))
end
local body_content = {}
if toc_type ~= 'collapsible' then
table.insert(body_content, '<span class="large-cat-toc-anum">['..pageurl..'?from=* *]</span> ')
end
table.insert(body_content, '<span class="large-cat-toc-anum">#</span> ')
body_wrapper = body:tag('span')
for i=0,9 do
table.insert(body_content,string.format(' [%s?from=%s %s]',pageurl,i,i))
end
local function atoz(letter)
local azlist = {}
local letterlist
if toc_type == 'aejot' then
letterlist = aejot
else
letterlist = azlower
end
if toc_type == 'aejot' or toc_type == 'scrollable' then
table.insert(azlist,' • <span class="large-cat-toc-anum">'..letter..'</span> ')
else
table.insert(azlist,'<br /><span class="large-cat-toc-anum">'..letter..'</span> ')
end
for _, v in ipairs(letterlist) do
table.insert(azlist, string.format(
' [%s?from=%s%s %s%s] ', pageurl, letter, v, letter, v
))
end
return table.concat(azlist)
end
for _, v in ipairs(azupper) do
table.insert(body_content, atoz(v))
end
body_wrapper:wikitext(table.concat(body_content))
return '__NOTOC__\n' .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Large category TOC/styles.css' }
} .. tostring(toc_frame)
end
function p.scrollable(frame)
return main('scrollable')
end
function p.collapsible(frame)
return main('collapsible')
end
function p.aejot(frame)
return main('aejot')
end
return p