Mercurial Hosting > luan
annotate website/src/lib/Shared.luan @ 1822:aeaf2b65c005
better parse tables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 09 Jul 2024 12:46:27 -0600 |
parents | f44dcb3fedf7 |
children | 50e570b598b2 |
rev | line source |
---|---|
1651 | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | |
3 local ipairs = Luan.ipairs or error() | |
1653 | 4 local pairs = Luan.pairs or error() |
1651 | 5 |
6 | |
7 local Shared = {} | |
8 | |
9 function Shared.head() | |
10 %> | |
11 <meta name="viewport" content="width=device-width, initial-scale=1"> | |
12 <style> | |
13 @import "/site.css"; | |
14 </style> | |
15 <% | |
16 end | |
17 | |
1652 | 18 local function header(crumbs) |
1651 | 19 %> |
20 <div header> | |
1747 | 21 <span breadcrumbs> |
22 <a href="/">Luan</a> | |
1651 | 23 <% for _, crumb in ipairs(crumbs or {}) do %> |
1747 | 24 / <%=crumb%> |
1651 | 25 <% end %> |
1747 | 26 </span> |
1784 | 27 <span><a href="http://www.reactionary.software/">reactionary software</a> by <a href="https://linkmy.style/fschmidt">fschmidt</a></span> |
1651 | 28 </div> |
29 <% | |
30 end | |
1652 | 31 Shared.header = header |
32 | |
33 function Shared.docs_header() | |
34 header{[[<a href="/docs.html">Documentation</a>]]} | |
35 end | |
1651 | 36 |
1653 | 37 local function show_toc(content) |
38 %> | |
39 <ul> | |
40 <% | |
41 for id, info in pairs(content) do | |
42 %> | |
1812
f44dcb3fedf7
docs - add code block
Franklin Schmidt <fschmidt@gmail.com>
parents:
1784
diff
changeset
|
43 <li c_<%=id%> ><a id="c_<%=id%>" href="#<%=id%>"><%=info.title%></a> |
1653 | 44 <% |
45 local subs = info.subs | |
46 if subs ~= nil then | |
47 show_toc(subs) | |
48 end | |
49 %> | |
50 </li> | |
51 <% | |
52 end | |
53 %> | |
54 </ul> | |
55 <% | |
56 end | |
57 Shared.show_toc = show_toc | |
58 | |
59 local function nothing() end | |
60 | |
61 local function show_content(content,h) | |
62 for id, info in pairs(content) do | |
63 %> | |
64 <div heading> | |
65 <h<%=h%>><a id="<%=id%>" href="#<%=id%>"><%=info.title%></a></h<%=h%>> | |
66 <a href="#c_<%=id%>">contents</a> | |
67 </div> | |
68 <% | |
69 (info.content or nothing)() | |
70 local subs = info.subs | |
71 if subs ~= nil then | |
72 show_content(subs,h+1) | |
73 end | |
74 end | |
75 end | |
76 Shared.show_content = show_content | |
77 | |
1651 | 78 return Shared |