Module:minitoc

From Wiktionary, the free dictionary
Jump to navigation Jump to search

This module provides the backend for {{minitoc}}.


local compress_sparse_array = require("Module:table").compressSparseArray
local concat = table.concat
local insert = table.insert

local page_L2s = mw.loadData("Module:headword/data").page.page_L2s

local export = {}

function export.main(frame)
	local L2s = compress_sparse_array(page_L2s)
	local L2s_len, main, pre = #L2s
	for i = 1, L2s_len do
		local L2, t = L2s[i]
		if L2 == "Translingual" or L2 == "English" then
			pre = pre or {}
			t = pre
		else
			main = main or {}
			t = main
		end
		insert(t, "<span style=\"white-space:nowrap;\">[[#" .. L2 .. "|" .. L2 .. "]]</span>")
	end
	
	return frame:extensionTag("templatestyles", "", {src="Module:minitoc/styles.css"}) .. "<div class=\"NavFrame\" style=\"max-width:40em;margin:0.5em 0\" data-minitoc-length=\"" .. L2s_len .. "\"><div class=\"NavHead\" style=\"background:#eee;padding: 0.25em 0.5em\">Languages (" .. L2s_len .. ")</div><div class=\"NavContent\" style=\"text-align:center;padding:0.5em\">" .. (pre and concat(pre, " • ") .. (main and "<hr>" or "") or "") .. (main and concat(main, " • ") or "") .. "<hr>[[#catlinks|Page categories]]</div></div><div data-toc-length=\"" .. L2s_len .. "\">__TOC__</div>"
end

return export