diff --git a/awl/index.html b/awl/index.html
new file mode 100644
index 0000000..2ac0700
--- /dev/null
+++ b/awl/index.html
@@ -0,0 +1,138 @@
+<head>
+	<meta
+		name="go-import"
+		content="dns.froth.zone/awl git https://git.froth.zone/sam/awl"
+	/>
+	<meta
+		name="go-source"
+		content="dns.froth.zone/awl https://git.froth.zone/sam/awl https://git.froth.zone/sam/awl/src/branch/master{/dir} https://git.froth.zone/sam/awl/src/branch/master{/dir}/{file}#L{line}"
+	/>
+</head>
+<p>
+	<a href="./code">awl</a> is a simple DNS query client, much like dig and
+	drill.
+</p>
+<pre><code>❯ awl NS froth.zone @https://dns.froth.zone/dns-query 
+;; opcode: QUERY, status: NOERROR, id: 46274
+;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 8
+
+;; QUESTION SECTION:
+;froth.zone.    IN       NS
+
+;; ANSWER SECTION:
+froth.zone.     1650    IN      NS      illya.froth.zone.
+froth.zone.     1650    IN      NS      rin.froth.zone.
+froth.zone.     1650    IN      NS      sakura.froth.zone.
+froth.zone.     1650    IN      NS      saber.froth.zone.
+
+;; ADDITIONAL SECTION:
+rin.froth.zone. 1650    IN      AAAA    2607:5300:201:3100::931b
+sakura.froth.zone.      1650    IN      AAAA    2001:41d0:304:200::d12b
+saber.froth.zone.       1650    IN      AAAA    2602:fe90:100:2::164d:4c70
+illya.froth.zone.       1650    IN      AAAA    2603:c020:4004:62ee::8888
+rin.froth.zone. 1650    IN      A       158.69.1.114
+sakura.froth.zone.      1650    IN      A       141.94.206.97
+saber.froth.zone.       1650    IN      A       45.13.232.162
+illya.froth.zone.       1650    IN      A       129.213.157.255
+
+;; Query time: 404.9936ms
+;; SERVER: https://dns.froth.zone/dns-query
+;; WHEN: Never
+;; MSG SIZE  rcvd: 489</code></pre>
+<hr />
+<p>
+	<code>awl</code> understands DNSSEC, like
+	<a href="https://linux.die.net/man/1/drill"><code>drill(1)</code></a
+	>:
+</p>
+<pre><code>❯ awl brokendnssec.net @1.1.1.1 --tcp
+;; opcode: QUERY, status: SERVFAIL, id: 45766
+;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
+
+;; QUESTION SECTION:
+;brokendnssec.net.      IN       A
+
+;; Query time: 6.0461ms
+;; SERVER: 1.1.1.1:53 (TCP)
+;; WHEN: Never
+;; MSG SIZE  rcvd: 34
+❯ awl brokendnssec.net @1.1.1.1 --cd +tcp
+;; opcode: QUERY, status: NOERROR, id: 37917
+;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
+
+;; QUESTION SECTION:
+;brokendnssec.net.      IN       A
+
+;; ANSWER SECTION:
+brokendnssec.net.       294     IN      A       172.67.36.129
+brokendnssec.net.       294     IN      A       104.22.35.212
+brokendnssec.net.       294     IN      A       104.22.34.212
+
+;; Query time: 8.4461ms
+;; SERVER: 1.1.1.1:53 (TCP)
+;; WHEN: Never
+;; MSG SIZE  rcvd: 130</code></pre>
+<hr />
+<p>
+	It supports many of the flags that
+	<a href="https://man.openbsd.org/dig.1"><code>dig(1)</code></a> does:
+</p>
+<pre><code>❯ awl +noquestion +noauthority +nostats cat-v.org
+;; opcode: QUERY, status: NOERROR, id: 39675
+;; flags: qr rd ra; QUERY: 0, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
+
+;; ANSWER SECTION:
+cat-v.org.      9418    IN      A       168.235.69.224</code></pre>
+<hr />
+<p>And <a href="./man">some new features</a>, too!</p>
+<div class="sourceCode" id="cb4">
+	<pre
+		class="sourceCode xml"
+	><code class="sourceCode xml"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a>❯ awl +quic --xml codeberg.org</span>
+<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> &lt;<span class="kw">Message</span>&gt;</span>
+<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">opcode</span>&gt;QUERY&lt;/<span class="kw">opcode</span>&gt;</span>
+<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">status</span>&gt;NOERROR&lt;/<span class="kw">status</span>&gt;</span>
+<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">id</span>&gt;51837&lt;/<span class="kw">id</span>&gt;</span>
+<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">response</span>&gt;true&lt;/<span class="kw">response</span>&gt;</span>
+<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">authoritative</span>&gt;false&lt;/<span class="kw">authoritative</span>&gt;</span>
+<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">truncated</span>&gt;false&lt;/<span class="kw">truncated</span>&gt;</span>
+<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">recursionDesired</span>&gt;true&lt;/<span class="kw">recursionDesired</span>&gt;</span>
+<span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">recursionAvailable</span>&gt;true&lt;/<span class="kw">recursionAvailable</span>&gt;</span>
+<span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">zero</span>&gt;false&lt;/<span class="kw">zero</span>&gt;</span>
+<span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">authenticatedData</span>&gt;false&lt;/<span class="kw">authenticatedData</span>&gt;</span>
+<span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">checkingDisabled</span>&gt;false&lt;/<span class="kw">checkingDisabled</span>&gt;</span>
+<span id="cb4-14"><a href="#cb4-14" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">opt</span>&gt;</span>
+<span id="cb4-15"><a href="#cb4-15" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">name</span>&gt;Version&lt;/<span class="kw">name</span>&gt;</span>
+<span id="cb4-16"><a href="#cb4-16" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">value</span>&gt;0&lt;/<span class="kw">value</span>&gt;</span>
+<span id="cb4-17"><a href="#cb4-17" aria-hidden="true" tabindex="-1"></a>  &lt;/<span class="kw">opt</span>&gt;</span>
+<span id="cb4-18"><a href="#cb4-18" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">opt</span>&gt;</span>
+<span id="cb4-19"><a href="#cb4-19" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">name</span>&gt;Flags&lt;/<span class="kw">name</span>&gt;</span>
+<span id="cb4-20"><a href="#cb4-20" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">value</span>&gt;&lt;/<span class="kw">value</span>&gt;</span>
+<span id="cb4-21"><a href="#cb4-21" aria-hidden="true" tabindex="-1"></a>  &lt;/<span class="kw">opt</span>&gt;</span>
+<span id="cb4-22"><a href="#cb4-22" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">opt</span>&gt;</span>
+<span id="cb4-23"><a href="#cb4-23" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">name</span>&gt;UDP Buffer Size&lt;/<span class="kw">name</span>&gt;</span>
+<span id="cb4-24"><a href="#cb4-24" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">value</span>&gt;1232&lt;/<span class="kw">value</span>&gt;</span>
+<span id="cb4-25"><a href="#cb4-25" aria-hidden="true" tabindex="-1"></a>  &lt;/<span class="kw">opt</span>&gt;</span>
+<span id="cb4-26"><a href="#cb4-26" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">question</span>&gt;</span>
+<span id="cb4-27"><a href="#cb4-27" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">name</span>&gt;codeberg.org.&lt;/<span class="kw">name</span>&gt;</span>
+<span id="cb4-28"><a href="#cb4-28" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">class</span>&gt;IN&lt;/<span class="kw">class</span>&gt;</span>
+<span id="cb4-29"><a href="#cb4-29" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">type</span>&gt;A&lt;/<span class="kw">type</span>&gt;</span>
+<span id="cb4-30"><a href="#cb4-30" aria-hidden="true" tabindex="-1"></a>  &lt;/<span class="kw">question</span>&gt;</span>
+<span id="cb4-31"><a href="#cb4-31" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">answer</span>&gt;</span>
+<span id="cb4-32"><a href="#cb4-32" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">response</span>&gt;193.26.156.135&lt;/<span class="kw">response</span>&gt;</span>
+<span id="cb4-33"><a href="#cb4-33" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">name</span>&gt;codeberg.org.&lt;/<span class="kw">name</span>&gt;</span>
+<span id="cb4-34"><a href="#cb4-34" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">ttl</span>&gt;449&lt;/<span class="kw">ttl</span>&gt;</span>
+<span id="cb4-35"><a href="#cb4-35" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">class</span>&gt;IN&lt;/<span class="kw">class</span>&gt;</span>
+<span id="cb4-36"><a href="#cb4-36" aria-hidden="true" tabindex="-1"></a>    &lt;<span class="kw">type</span>&gt;A&lt;/<span class="kw">type</span>&gt;</span>
+<span id="cb4-37"><a href="#cb4-37" aria-hidden="true" tabindex="-1"></a>  &lt;/<span class="kw">answer</span>&gt;</span>
+<span id="cb4-38"><a href="#cb4-38" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">queryTime</span>&gt;128.726593ms&lt;/<span class="kw">queryTime</span>&gt;</span>
+<span id="cb4-39"><a href="#cb4-39" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">server</span>&gt;dns.adguard.com:853 (QUIC)&lt;/<span class="kw">server</span>&gt;</span>
+<span id="cb4-40"><a href="#cb4-40" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">when</span>&gt;Thu, 13 Oct 2022 15:29:58 +0200&lt;/<span class="kw">when</span>&gt;</span>
+<span id="cb4-41"><a href="#cb4-41" aria-hidden="true" tabindex="-1"></a>  &lt;<span class="kw">msgSize</span>&gt;69&lt;/<span class="kw">msgSize</span>&gt;</span>
+<span id="cb4-42"><a href="#cb4-42" aria-hidden="true" tabindex="-1"></a>&lt;/<span class="kw">Message</span>&gt;</span></code></pre>
+</div>
+<hr />
+<p>
+	A full list of the features <code>awl</code> supports can be found
+	<a href="https://git.froth.zone/sam/awl/wiki/Supported">here</a>.
+</p>
diff --git a/awl/index.md b/awl/index.md
deleted file mode 100644
index f61c396..0000000
--- a/awl/index.md
+++ /dev/null
@@ -1,121 +0,0 @@
-[awl](./code) is a simple DNS query client, much like dig and drill.
-
-
-```
-❯ awl NS froth.zone @https://dns.froth.zone/dns-query 
-;; opcode: QUERY, status: NOERROR, id: 46274
-;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 8
-
-;; QUESTION SECTION:
-;froth.zone.    IN       NS
-
-;; ANSWER SECTION:
-froth.zone.     1650    IN      NS      illya.froth.zone.
-froth.zone.     1650    IN      NS      rin.froth.zone.
-froth.zone.     1650    IN      NS      sakura.froth.zone.
-froth.zone.     1650    IN      NS      saber.froth.zone.
-
-;; ADDITIONAL SECTION:
-rin.froth.zone. 1650    IN      AAAA    2607:5300:201:3100::931b
-sakura.froth.zone.      1650    IN      AAAA    2001:41d0:304:200::d12b
-saber.froth.zone.       1650    IN      AAAA    2602:fe90:100:2::164d:4c70
-illya.froth.zone.       1650    IN      AAAA    2603:c020:4004:62ee::8888
-rin.froth.zone. 1650    IN      A       158.69.1.114
-sakura.froth.zone.      1650    IN      A       141.94.206.97
-saber.froth.zone.       1650    IN      A       45.13.232.162
-illya.froth.zone.       1650    IN      A       129.213.157.255
-
-;; Query time: 404.9936ms
-;; SERVER: https://dns.froth.zone/dns-query
-;; WHEN: Never
-;; MSG SIZE  rcvd: 489
-```
-
----
-
-`awl` understands DNSSEC, like [`drill(1)`](https://linux.die.net/man/1/drill):
-
-```
-❯ awl brokendnssec.net @1.1.1.1 --tcp
-;; opcode: QUERY, status: SERVFAIL, id: 45766
-;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
-
-;; QUESTION SECTION:
-;brokendnssec.net.      IN       A
-
-;; Query time: 6.0461ms
-;; SERVER: 1.1.1.1:53 (TCP)
-;; WHEN: Never
-;; MSG SIZE  rcvd: 34
-❯ awl brokendnssec.net @1.1.1.1 --cd +tcp
-;; opcode: QUERY, status: NOERROR, id: 37917
-;; flags: qr rd ra cd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
-
-;; QUESTION SECTION:
-;brokendnssec.net.      IN       A
-
-;; ANSWER SECTION:
-brokendnssec.net.       294     IN      A       172.67.36.129
-brokendnssec.net.       294     IN      A       104.22.35.212
-brokendnssec.net.       294     IN      A       104.22.34.212
-
-;; Query time: 8.4461ms
-;; SERVER: 1.1.1.1:53 (TCP)
-;; WHEN: Never
-;; MSG SIZE  rcvd: 130
-```
-
----
-
-It supports many of the flags that [`dig(1)`](https://man.openbsd.org/dig.1)
-does:
-
-```
-❯ awl +noquestion +noauthority +nostats cat-v.org
-;; opcode: QUERY, status: NOERROR, id: 39675
-;; flags: qr rd ra; QUERY: 0, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
-
-;; ANSWER SECTION:
-cat-v.org.      9418    IN      A       168.235.69.224
-```
-
----
-
-And [some new features](./man), too!
-
-```xml
-❯ awl +quic --xml codeberg.org
-<Msg>
-  <Id>22108</Id>
-  <Response>true</Response>
-  <Opcode>0</Opcode>
-  <Authoritative>false</Authoritative>
-  <Truncated>false</Truncated>
-  <RecursionDesired>true</RecursionDesired>
-  <RecursionAvailable>true</RecursionAvailable>
-  <Zero>false</Zero>
-  <AuthenticatedData>false</AuthenticatedData>
-  <CheckingDisabled>false</CheckingDisabled>
-  <Rcode>0</Rcode>
-  <Compress>false</Compress>
-  <Question>
-    <Name>codeberg.org.</Name>
-    <Qtype>1</Qtype>
-    <Qclass>1</Qclass>
-  </Question>
-  <Answer>
-    <Hdr>
-      <Name>codeberg.org.</Name>
-      <Rrtype>1</Rrtype>
-      <Class>1</Class>
-      <Ttl>3600</Ttl>
-      <Rdlength>4</Rdlength>
-    </Hdr>
-    <A>193.26.156.135</A>
-  </Answer>
-</Msg>
-```
-
-------
-
-A full list of the features `awl` supports can be found [here](https://git.froth.zone/sam/awl/wiki/Supported).
\ No newline at end of file
