Editing
Module:Large category TOC
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local azupper = mw.text.split('ABCDEFGHIJKLMNOPQRSTUVWXYZ','') local azlower = mw.text.split('abcdefghijklmnopqrstuvwxyz','') local aejot = mw.text.split('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', background = 'WhiteSmoke', clear = 'both', width = '98%' }) -- Contains "Content: Top 0-9 A - Z" local header = toc_frame:tag('div') :attr('id','toctitle') :css('background','WhiteSmoke') -- Contains all the rest local body_wrapper local body = toc_frame:tag('div') :css('text-align', 'center') if toc_type == 'collapsible' then toc_frame:addClass('NavFrame') header:addClass('NavHead') body:addClass('NavContent') :css({ background = 'white', display = 'none' }) elseif toc_type == 'scrollable' then body:css({ ['overflow-x'] = 'scroll', ['overflow-y']= 'hidden', ['white-space'] = 'nowrap' }) end local header_content = {'<strong>',toc,':</strong>', ' [',pageurl,' Top]', ' [',pageurl,'?from=0 0β9]' } for _, v in ipairs(azupper) do table.insert(header_content,string.format(' [%s?from=%s %s]',pageurl,v,v)) end header:wikitext(table.concat(header_content)) local body_content = {} if toc_type == 'collapsible' then table.insert(body_content,'<b>#</b> ') body_wrapper = body:tag('code') :css('background','White') else table.insert(body_content,'['..pageurl..'?from=* <b>*</b>] <b>#</b> ') body_wrapper = body:tag('span') end 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,' β’ <b>'..letter..'</b> ') else table.insert(azlist,'<br /><b>'..letter..'</b> ') 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'..tostring(toc_frame) end return p
Summary:
Please note that all contributions to TechInfoDepot may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
TechInfoDepot:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Large category TOC/doc
(
edit
)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Module
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Menu
Recent changes
Random page
Help
data/misc
Add data
Browse wiki
Semantic search
Search
Short-term conf. list
Contact admin
Tools
What links here
Related changes
Special pages
Page information
query forms
Embedded system
MGPC (non-PC)
Wireless adapter
OUI