Module:Large category TOC: Difference between revisions
 glad I sandboxed it. we do still want the bold weight here but not necessarily whatever the default for strong is (which may be font-weight: bolder rather than bold)  | 
				Richardpruen (talk | contribs) m 1 revision imported  | 
				||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
local aejot = mw.text.split('aejot','')  | local aejot = mw.text.split('aejot','')  | ||
local function main(toc_type)  | |||
function main(toc_type)  | |||
	local toc_frame = mw.html.create('div')  | 	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"  | 	-- Contains "Content: Top 0-9 A - Z"  | ||
	local header = toc_frame:tag('div')  | 	local header = toc_frame:tag('div')  | ||
		:attr('class', 'toctitle')  | 		:attr('class', 'toctitle')  | ||
| Line 43: | Line 19: | ||
	local body_wrapper  | 	local body_wrapper  | ||
	local body = toc_frame:tag('div')  | 	local body = toc_frame:tag('div')  | ||
		:  | 		:addClass('large-cat-toc-body')  | ||
	local jumpy_collapse = mw.html.create('div')  | 	local jumpy_collapse = mw.html.create('div')  | ||
		:  | 		:addClass('large-cat-toc-jumpy-title')  | ||
	if toc_type == 'collapsible' then  | 	if toc_type == 'collapsible' then  | ||
		toc_frame:addClass('mw-collapsible mw-collapsed')  | 		toc_frame:addClass('mw-collapsible mw-collapsed')  | ||
		body:addClass('mw-collapsible-content')  | 		body:addClass('mw-collapsible-content')  | ||
	elseif toc_type == 'scrollable' then  | 	elseif toc_type == 'scrollable' then  | ||
		toc_frame:addClass('large-cat-toc-scroll')  | |||
	end  | 	end  | ||
	local header_content = {'<span   | 	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  | 	for _, v in ipairs(azupper) do  | ||
		table.insert(header_content,string.format(' [%s?from=%s %s]',pageurl,v,v))  | 		table.insert(header_content, string.format(  | ||
			' [%s?from=%s %s]', pageurl, v, v  | |||
		))  | |||
	end  | 	end  | ||
| Line 78: | Line 56: | ||
	local body_content = {}  | 	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  | 	for i=0,9 do  | ||
| Line 102: | Line 77: | ||
		if toc_type == 'aejot' or toc_type == 'scrollable' then  | 		if toc_type == 'aejot' or toc_type == 'scrollable' then  | ||
			table.insert(azlist,' • <  | 			table.insert(azlist,' • <span class="large-cat-toc-anum">'..letter..'</span> ')  | ||
		else  | 		else  | ||
			table.insert(azlist,'<br /><  | 			table.insert(azlist,'<br /><span class="large-cat-toc-anum">'..letter..'</span> ')  | ||
		end  | 		end  | ||
		for _, v in ipairs(letterlist) do  | 		for _, v in ipairs(letterlist) do  | ||
			table.insert(azlist,string.format(' [%s?from=%s%s %s%s] ',pageurl,letter,v,letter,v))  | 			table.insert(azlist, string.format(  | ||
				' [%s?from=%s%s %s%s] ', pageurl, letter, v, letter, v  | |||
			))  | |||
		end  | 		end  | ||
		return table.concat(azlist)  | 		return table.concat(azlist)  | ||
| Line 114: | Line 91: | ||
	for _, v in ipairs(azupper) do  | 	for _, v in ipairs(azupper) do  | ||
		table.insert(body_content,atoz(v))  | 		table.insert(body_content, atoz(v))  | ||
	end  | 	end  | ||
	body_wrapper:wikitext(table.concat(body_content))  | 	body_wrapper:wikitext(table.concat(body_content))  | ||
	return '__NOTOC__\n'..tostring(toc_frame)  | 	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  | end  | ||
return p  | return p  | ||