Module:minitoc: difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
ok, don't think this makes a difference |
Theknightwho (talk | contribs) More robust solution. |
||
Line 1: | Line 1: | ||
local compress_sparse_array = require("Module:table").compressSparseArray |
local compress_sparse_array = require("Module:table").compressSparseArray |
||
local concat = table.concat |
local concat = table.concat |
||
local insert = table.insert |
|||
local page_L2s = mw.loadData("Module:headword/data").page.page_L2s |
local page_L2s = mw.loadData("Module:headword/data").page.page_L2s |
||
Line 6: | Line 7: | ||
local export = {} |
local export = {} |
||
function export.main( |
function export.main() |
||
local L2s = compress_sparse_array(page_L2s) |
local L2s = compress_sparse_array(page_L2s) |
||
local main, L2s_len, pre = {}, #L2s |
|||
local L2_links = {} |
|||
for i = 1, |
for i = 1, L2s_len do |
||
local L2 = L2s[i] |
local L2, t = L2s[i] |
||
⚫ | |||
⚫ | |||
pre = pre or {} |
|||
t = pre |
|||
⚫ | |||
t = main |
|||
⚫ | |||
⚫ | |||
end |
end |
||
⚫ | return "<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\">Contents ([[#catlinks|categories]])</div><div class=\"NavContent\" style=\"text-align:center;padding:0.5em\">" .. (pre and concat(pre, " • ") .. "<hr>" or "") .. concat(main, " • ") .. "</div></div><div data-toc-length=\"" .. L2s_len .. "\">__TOC__</div>" |
||
--Separate Translingual and English into a separate row. |
|||
local tocContent |
|||
⚫ | |||
tocContent = L2_links[1] .. " • " .. L2_links[2] .. "<hr>" .. concat(L2_links, " • ", 3) |
|||
elseif #L2s > 1 and (L2s[1] == "Translingual" or L2s[1] == "English") then |
|||
tocContent = L2_links[1] .. "<hr>" .. concat(L2_links, " • ", 2) |
|||
⚫ | |||
tocContent = concat(L2_links, " • ") |
|||
⚫ | |||
⚫ | return "<div class=\"NavFrame\" style=\"max-width:40em;margin:0.5em 0\" data-minitoc-length=\"" .. |
||
end |
end |
||
Revision as of 17:04, 15 May 2024
- The following documentation is located at Module:minitoc/documentation. [edit] Categories were auto-generated by Module:documentation. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
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()
local L2s = compress_sparse_array(page_L2s)
local main, L2s_len, 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
t = main
end
insert(t, "<span style=\"white-space:nowrap;\">[[#" .. L2 .. "|" .. L2 .. "]]</span>")
end
return "<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\">Contents ([[#catlinks|categories]])</div><div class=\"NavContent\" style=\"text-align:center;padding:0.5em\">" .. (pre and concat(pre, " • ") .. "<hr>" or "") .. concat(main, " • ") .. "</div></div><div data-toc-length=\"" .. L2s_len .. "\">__TOC__</div>"
end
return export