dad2b237d480ba64706fbb6c63d092b2738a2413 jnavarr5 Mon Aug 24 15:33:38 2026 -0700 Add ### headings as indented TOC sub-items and fix docs sidebar highlighting, refs #36320 diff --git docs/staticPage.lua docs/staticPage.lua index 31aba84f10c..d6ff5208871 100644 --- docs/staticPage.lua +++ docs/staticPage.lua @@ -131,31 +131,32 @@ add("<!--#include virtual=\"$ROOT/inc/gbPageStart.html\" -->") add("<link rel=\"stylesheet\" href=\"<!--#echo var=\"ROOT\" -->/style/bootstrap-3-3-7.min.css\">") add("") add("<h1>" .. metadata["title"] .. "</h1>") else add("<h1>No title defined in document, first line must be % mytitle </h1>") end -- Sidebar TOC + body in Bootstrap grid. The docs-page class scopes -- /docs/-only typography and table styling in gbStatic.css. add('<div class="row docs-toc-row docs-page">') add('<div class="col-md-2 hidden-sm hidden-xs">') add('<nav class="docs-toc" id="docs-toc">') add('<ul>') for i, h in ipairs(headers) do - add("<li><a href='#" .. h.id .. "'>" .. h.text .. "</a></li>") + local cls = h.sub and " class='docs-toc-sub'" or "" + add("<li" .. cls .. "><a href='#" .. h.id .. "'>" .. h.text .. "</a></li>") end add('</ul>') add('</nav>') add('</div>') add('<div class="col-md-10">') -- ucsc change end add(body) add('</div>') -- close col-md-10 add('</div>') -- close row if #notes > 0 then add('<ol class="footnotes">') for _,note in pairs(notes) do add(note) end @@ -300,39 +301,45 @@ return s end function Para(s) return "<p>\n" .. s .. "\n</p>" end -- lev is an integer, the header level. function Header(lev, s, attr) local lines = { } if lev == 1 then idStr = simplifyId(s) - table.insert(headers, {text = s, id = idStr}) + table.insert(headers, {text = s, id = idStr, sub = false}) table.insert(lines, "<h2 id='" .. idStr .. "'>" .. s .. "</h2>") headerOpen = true elseif lev == 2 then -- Collect lev==2 headers for TOC (markdown ## headings) local idStr = attr.id or simplifyId(s) - table.insert(headers, {text = s, id = idStr}) + table.insert(headers, {text = s, id = idStr, sub = false}) + table.insert(lines, "<h" .. lev .. " id='" .. idStr .. "'" .. ">" .. s .. "</h" .. lev .. ">") + + elseif lev == 3 then + -- Collect lev==3 headers for TOC as indented sub-items (markdown ### headings) + local idStr = attr.id or simplifyId(s) + table.insert(headers, {text = s, id = idStr, sub = true}) table.insert(lines, "<h" .. lev .. " id='" .. idStr .. "'" .. ">" .. s .. "</h" .. lev .. ">") else table.insert(lines, "<h" .. lev .. attributes(attr) .. ">" .. s .. "</h" .. lev .. ">") end return table.concat(lines, "\n") end function BlockQuote(s) return "<blockquote>\n" .. s .. "\n</blockquote>" end function HorizontalRule() return "<hr/>"