Module:Large category TOC/sandbox: Difference between revisions

Content deleted Content added
continue experiment
Line 1:
local p = {}
 
local azupper = mw.text.split('ABCDEFGHIJKLMNOPQRSTUVWXYZ','')
local azlower = mw.text.split('abcdefghijklmnopqrstuvwxyz','')
local aejot = mw.text.split('aejot','')
 
function p.scrollable(frame)
Line 28:
: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.createtoc_frame:tag('div')
:attr('id','toctitle')
:attr('class','toctitle')
:css('background','WhiteSmoke')
-- Contains all the rest
local body_wrapper
local body = mw.html.createtoc_frame:tag('div')
:css('text-align', 'center')
if toc_type == 'collapsible' then
Line 47 ⟶ 48:
header:addClass('NavHead')
body:addClass('NavContent')
:css('{ background', = 'white'),
:css(' 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 i=1_,26 v in ipairs(azupper) do
table.insert(header_content,string.format(' [%s?from=%s %s]',pageurl,v,v))
local letter = string.sub(azupper,i,i)
header_content = header_content..' ['..pageurl..'?from='..letter..' '..letter..']'
end
header:wikitext(table.concat(header_content))
local body_content = {}
header:wikitext(header_content)
local body_content
if toc_type == 'collapsible' then
table.insert(body_content = ,'<b>#</b> ')
body_wrapper = mw.html.createbody:tag('code')
:css('background','White')
else
table.insert(body_content = ,'['..pageurl..'?from=* <b>*</b>] <b>#</b> ')
body_wrapper = mw.html.createbody:tag('span')
end
for i=0,9 do
table.insert(body_content = body_content.,string.format(' ['..pageurl..'%s?from='..i..'%s %s]'..,pageurl,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
table.insert(azlist = ,' • <b>'..letter..'</b> ')
else
table.insert(azlist = ,'<br /><b>'..letter..'</b> ')
end
for i=1_,maxind v in ipairs(letterlist) do
table.insert(azlist,string.format(' [%s?from=%s%s %s%s] ',pageurl,letter,v,letter,v))
local lowerletter = string.sub(letterlist,i,i)
azlist = azlist..' ['..pageurl..'?from='..letter..lowerletter..' '..letter..lowerletter..'] '
end
return table.concat(azlist)
end
for i=1_,26 v in ipairs(azupper) do
table.insert(body_content,atoz(v))
local letter = string.sub(azupper,i,i)
body_content = body_content..atoz(letter)
end
body_wrapper:wikitext(table.concat(body_content))
body:node(body_wrapper)
toc_frame:node(header)
toc_frame:node(body)
return '__NOTOC__\n'..tostring(toc_frame)