1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
3 <head>
4 <meta charset="utf-8" />
5 <meta name="generator" content="pandoc" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7 $for(author-meta)$
8 <meta name="author" content="$author-meta$" />
9 $endfor$
10
11 $if(date-meta)$
12 <meta name="dcterms.date" content="$date-meta$" />
13 $endif$
14
15 $if(keywords)$
16 <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
17 $endif$
18
19 $if(description-meta)$
20 <meta name="description" content="$description-meta$" />
21 $endif$
22
23 <title>$pagetitle$</title>
24
25 <style>
26 $styles.css()$
27 </style>
28
29 $for(css)$
30 <link rel="stylesheet" href="$css$" />
31 $endfor$
32
33 $for(header-includes)$
34 $header-includes$
35 $endfor$
36
37 <link rel="preload" href="/static/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin />
38 <link rel="icon" href="/static/logos/dolly.ico" sizes="48x48"/>
39 <link rel="icon" href="/static/logos/dolly.svg" sizes="any" type="image/svg+xml"/>
40 <link rel="apple-touch-icon" href="/static/logos/dolly.png"/>
41
42 </head>
43 <body class="bg-white dark:bg-gray-900 flex flex-col min-h-svh">
44 $for(include-before)$
45 $include-before$
46 $endfor$
47
48 $if(toc)$
49 <!-- mobile TOC trigger -->
50 <div class="md:hidden px-6 py-4 border-b border-gray-200 dark:border-gray-700">
51 <button
52 type="button"
53 popovertarget="mobile-toc-popover"
54 popovertargetaction="toggle"
55 class="w-full flex gap-2 items-center text-sm font-semibold dark:text-white"
56 >
57 ${ menu.svg() }
58 $if(toc-title)$$toc-title$$else$Table of Contents$endif$
59 </button>
60 </div>
61
62 <div
63 id="mobile-toc-popover"
64 popover
65 class="mobile-toc-popover
66 bg-gray-50 dark:bg-gray-800 border-r border-gray-200 dark:border-gray-700
67 h-full overflow-y-auto shadow-sm
68 px-6 py-4 fixed inset-x-0 top-0 w-fit max-w-4/5 m-0"
69 >
70 <div class="flex flex-col min-h-full">
71 <div class="flex-1 space-y-4">
72 <button
73 type="button"
74 popovertarget="mobile-toc-popover"
75 popovertargetaction="toggle"
76 class="w-full flex gap-2 items-center text-sm font-semibold dark:text-white mb-4">
77 ${ x.svg() }
78 $if(toc-title)$$toc-title$$else$Table of Contents$endif$
79 </button>
80 ${ logo.html() }
81 ${ search.html() }
82 ${ table-of-contents:toc.html() }
83 </div>
84 ${ single-page:mode.html() }
85 </div>
86 </div>
87
88 <!-- desktop sidebar toc -->
89 <nav
90 id="$idprefix$TOC"
91 role="doc-toc"
92 class="hidden md:flex md:flex-col gap-4 fixed left-0 top-0 w-80 h-screen
93 bg-gray-50 dark:bg-gray-800 border-r border-gray-200 dark:border-gray-700
94 p-4 z-50 overflow-y-auto">
95 ${ logo.html() }
96 ${ search.html() }
97 <div class="flex-1">
98 $if(toc-title)$
99 <h2 id="$idprefix$toc-title" class="text-lg font-semibold mb-4 text-gray-900">$toc-title$</h2>
100 $endif$
101 ${ table-of-contents:toc.html() }
102 </div>
103 ${ single-page:mode.html() }
104 </nav>
105 $endif$
106
107 <div class="$if(toc)$md:ml-80$endif$ flex-1 flex flex-col">
108 <main class="max-w-4xl w-full mx-auto p-6 flex-1">
109 $if(top)$
110 $-- only print title block if this is NOT the top page
111 $else$
112 $if(title)$
113 <header id="title-block-header" class="mb-8 pb-8 border-b border-gray-200 dark:border-gray-700">
114 <h1 class="text-4xl font-bold mb-2 text-black dark:text-white">$title$</h1>
115 $if(subtitle)$
116 <p class="text-xl text-gray-500 dark:text-gray-400 mb-2">$subtitle$</p>
117 $endif$
118 $for(author)$
119 <p class="text-sm text-gray-500 dark:text-gray-400">$author$</p>
120 $endfor$
121 $if(date)$
122 <p class="text-sm text-gray-500 dark:text-gray-400">Updated on $date$</p>
123 $endif$
124 $endif$
125 </header>
126 $if(abstract)$
127 <article class="prose dark:prose-invert max-w-none">
128 $abstract$
129 </article>
130 $endif$
131 $endif$
132
133 <article class="prose dark:prose-invert max-w-none">
134 $body$
135 </article>
136 </main>
137 <nav id="sitenav" class="border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800">
138 <div class="max-w-4xl mx-auto px-8 py-4">
139 <div class="flex justify-between gap-4">
140 <span class="flex-1">
141 $if(previous.url)$
142 <span class="text-xs text-gray-500 dark:text-gray-400 uppercase block mb-1">Previous</span>
143 <a href="$previous.url$" accesskey="p" rel="previous">$previous.title$</a>
144 $endif$
145 </span>
146 <span class="flex-1 text-right">
147 $if(next.url)$
148 <span class="text-xs text-gray-500 dark:text-gray-400 uppercase block mb-1">Next</span>
149 <a href="$next.url$" accesskey="n" rel="next">$next.title$</a>
150 $endif$
151 </span>
152 </div>
153 </div>
154 </nav>
155 </div>
156 $for(include-after)$
157 $include-after$
158 $endfor$
159 </body>
160</html>