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