词条 | Module:Large category TOC/sandbox |
释义 | local p = {} local azupper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' local azlower = 'abcdefghijklmnopqrstuvwxyz' local aejot = 'aejot' function p.scrollable(frame) return main('scrollable') end function p.collapsible(frame) return main('collapsible') end function p.aejot(frame) return main('aejot') end function main(toc_type) -- It should be much faster to only process these once, and just re use them as variables local pageurl = mw.title.getCurrentTitle():fullUrl() local toc = mw.message.new('Toc'):plain()
-- Highest level div local toc_frame = mw.html.create('div') :addClass('plainlinks') :addClass('hlist') :addClass('toc') -- :attr('id','toc') :css('display','block !important') :css('background','WhiteSmoke') :css('clear','both') :css('width','98%') -- Contains "Content: Top 0-9 A - Z" local header = mw.html.create('div') :attr('id','toctitle') :css('background','WhiteSmoke')
-- Contains all the rest local body_wrapper local body = mw.html.create('div') :css('text-align', 'center')
if toc_type == 'collapsible' then toc_frame:addClass('NavFrame') header:addClass('NavHead') body:addClass('NavContent') :css('background','white') :css('display','none') end
local header_content = ''..toc..':' .. ' ['..pageurl..' Top]' .. ' ['..pageurl..'?from=0 0–9]'
for i=1,26 do local letter = string.sub(azupper,i,i) header_content = header_content..' ['..pageurl..'?from='..letter..' '..letter..']' end
header:wikitext(header_content)
local body_content
if toc_type == 'collapsible' then body_content = '# ' body_wrapper = mw.html.create('code') :css('background','White') else body_content = '['..pageurl..'?from=* *] # ' body_wrapper = mw.html.create('span') end
for i=0,9 do body_content = body_content..' ['..pageurl..'?from='..i..' '..i..']' end
local function atoz(letter) local azlist local letterlist local maxind if toc_type == 'aejot' then letterlist = aejot maxind = 5 else letterlist = azlower maxind = 26 end
if toc_type == 'aejot' or toc_type == 'scrollable' then azlist = ' • '..letter..' ' else azlist = ' end
for i=1,maxind do local lowerletter = string.sub(letterlist,i,i) azlist = azlist..' ['..pageurl..'?from='..letter..lowerletter..' '..letter..lowerletter..'] ' end return azlist end
for i=1,26 do local letter = string.sub(azupper,i,i) body_content = body_content..atoz(letter) end
body_wrapper:wikitext(body_content) body:node(body_wrapper) toc_frame:node(header) toc_frame:node(body)
return '__NOTOC__\'..tostring(toc_frame) end return p |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。