From 72f729adb07477a9fa8e0f15e542e8c39b19dc75 Mon Sep 17 00:00:00 2001
From: Kris Yotam <75515498+krisyotam@users.noreply.github.com>
Date: Fri, 15 May 2026 13:16:01 -0500
Subject: [PATCH] rename to krisyotam.net, update site title, footer quote,
tighten subtitle spacing
---
bin/contrib/rc-httpd/rc-httpd | 2 +-
bin/contrib/rc-httpd/select-handler | 14 +-
bin/md2html.awk | 427 +++++++
bin/sed | 2 +
bin/werc.rc | 5 -
etc/initrc | 12 +-
etc/initrc.local | 5 +
images/plan9-cirno.jpeg | Bin 0 -> 166620 bytes
lib/default_master.tpl | 3 +
lib/footer.inc | 11 +-
lib/headers.tpl | 9 +-
lib/style.css | 185 +++
lib/top_bar.inc | 24 +-
reference/pmikkelsen-werc | 1 +
.../Advent-of-code-2020-in-APL/day01.html | 230 ++++
.../Advent-of-code-2020-in-APL/day02.html | 230 ++++
.../Advent-of-code-2020-in-APL/day03.html | 230 ++++
.../Advent-of-code-2020-in-APL/day04.html | 230 ++++
.../Advent-of-code-2020-in-APL/day05.html | 230 ++++
.../Advent-of-code-2020-in-APL/day06.html | 230 ++++
.../Advent-of-code-2020-in-APL/day07.html | 230 ++++
.../Advent-of-code-2020-in-APL/day08.html | 230 ++++
.../Advent-of-code-2020-in-APL/day09.html | 230 ++++
.../Advent-of-code-2020-in-APL/day10.html | 230 ++++
.../Advent-of-code-2020-in-APL/day11.html | 230 ++++
.../Advent-of-code-2020-in-APL/day12.html | 230 ++++
.../Advent-of-code-2020-in-APL/day13.html | 230 ++++
.../Advent-of-code-2020-in-APL/day14.html | 230 ++++
.../Advent-of-code-2020-in-APL/day15.html | 230 ++++
.../Advent-of-code-2020-in-APL/day16.html | 230 ++++
.../Advent-of-code-2020-in-APL/day17.html | 230 ++++
.../Advent-of-code-2020-in-APL/day18.html | 230 ++++
.../Advent-of-code-2020-in-APL/day19.html | 230 ++++
.../Advent-of-code-2020-in-APL/day20.html | 230 ++++
.../Advent-of-code-2020-in-APL/day21.html | 230 ++++
.../Advent-of-code-2020-in-APL/day22.html | 230 ++++
.../Advent-of-code-2020-in-APL/day23.html | 230 ++++
.../Advent-of-code-2020-in-APL/day24.html | 230 ++++
.../Advent-of-code-2020-in-APL/day25.html | 230 ++++
.../Advent-of-code-2020-in-APL/index.html | 283 +++++
.../APL-and-J/Date-puzzle-solver.html | 276 +++++
.../Designing_an_APL_for_9front.html | 256 ++++
.../APL-and-J/hello_world_apl_and_j.html | 209 ++++
.../pmikkelsen.com/APL-and-J/index.html | 202 +++
.../pmikkelsen.com/OpenBSD/index.html | 196 +++
.../pmikkelsen.com/OpenBSD/server-setup.html | 195 +++
.../pmikkelsen/pmikkelsen.com/contact.html | 193 +++
.../facts/Fastest-Computer-Languages.html | 222 ++++
.../pmikkelsen.com/facts/index.html | 196 +++
.../pmikkelsen.com/haskell/index.html | 196 +++
.../pmikkelsen.com/haskell/quine.html | 246 ++++
.../pmikkelsen/pmikkelsen.com/index.html | 223 ++++
.../pmikkelsen.com/linux/eduroam.html | 208 ++++
.../pmikkelsen.com/linux/index.html | 198 +++
.../pmikkelsen/pmikkelsen.com/linux/wifi.html | 203 +++
.../mainframe/MVS-TK5-Setup.html | 214 ++++
.../mainframe/adding-users.html | 219 ++++
.../pmikkelsen.com/mainframe/howto.html | 234 ++++
.../pmikkelsen.com/mainframe/index.html | 200 +++
.../me/how-i-started-using-acme.html | 223 ++++
.../pmikkelsen/pmikkelsen.com/me/index.html | 198 +++
.../pmikkelsen.com/me/stuff-i-use.html | 213 ++++
.../favourite-programming-languages.html | 195 +++
.../pmikkelsen.com/opinions/index.html | 196 +++
.../pmikkelsen.com/plan9/basic_9p_server.html | 242 ++++
.../pmikkelsen.com/plan9/discord.html | 242 ++++
.../pmikkelsen/pmikkelsen.com/plan9/dns.html | 230 ++++
.../pmikkelsen.com/plan9/fonts.html | 222 ++++
.../pmikkelsen.com/plan9/index.html | 214 ++++
.../pmikkelsen.com/plan9/lets_encrypt.html | 251 ++++
.../plan9/mounting-9p-over-drawterm.html | 242 ++++
.../pmikkelsen.com/plan9/network_booting.html | 223 ++++
.../pmikkelsen.com/plan9/trellofs.html | 533 ++++++++
.../pmikkelsen.com/plan9/using_irc.html | 236 ++++
.../pmikkelsen.com/plan9/webfs-websocket.html | 264 ++++
.../prolog/generality-of-append.html | 242 ++++
.../pmikkelsen.com/prolog/index.html | 196 +++
.../pmikkelsen/pmikkelsen.com/web/index.html | 196 +++
.../web/the-setup-of-this-site.html | 196 +++
reference/tui.tsx | 1090 +++++++++++++++++
serve.py | 76 ++
serve.rc | 21 +
sites/localhost | 1 +
sites/plan9.krisyotam.com/_werc/config | 4 +
.../about/_werc/about_master.tpl | 31 +
sites/plan9.krisyotam.com/about/_werc/config | 1 +
sites/plan9.krisyotam.com/about/index.md | 93 ++
sites/plan9.krisyotam.com/blogroll.md | 14 +
sites/plan9.krisyotam.com/cluster/index.md | 4 +
sites/plan9.krisyotam.com/data/index.md | 5 +
sites/plan9.krisyotam.com/essays/index.md | 5 +
sites/plan9.krisyotam.com/harmful/index.md | 13 +
sites/plan9.krisyotam.com/index.md | 10 +-
sites/plan9.krisyotam.com/resources/index.md | 5 +
sites/plan9.krisyotam.com/sitemap.txt | 1 +
sites/plan9.krisyotam.com/software/index.md | 62 +
sites/plan9.krisyotam.com/style/go.md | 53 +
sites/plan9.krisyotam.com/style/index.md | 8 +
sites/plan9.krisyotam.com/style/plan9_c.md | 415 +++++++
sites/plan9.krisyotam.com/style/suckless_c.md | 213 ++++
100 files changed, 17639 insertions(+), 59 deletions(-)
create mode 100755 bin/md2html.awk
create mode 100755 bin/sed
create mode 100644 etc/initrc.local
create mode 100644 images/plan9-cirno.jpeg
create mode 100644 lib/style.css
create mode 160000 reference/pmikkelsen-werc
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day01.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day02.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day03.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day04.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day05.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day06.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day07.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day08.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day09.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day10.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day11.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day12.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day13.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day14.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day15.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day16.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day17.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day18.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day19.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day20.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day21.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day22.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day23.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day24.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/day25.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Advent-of-code-2020-in-APL/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Date-puzzle-solver.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/Designing_an_APL_for_9front.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/hello_world_apl_and_j.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/APL-and-J/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/OpenBSD/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/OpenBSD/server-setup.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/contact.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/facts/Fastest-Computer-Languages.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/facts/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/haskell/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/haskell/quine.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/linux/eduroam.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/linux/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/linux/wifi.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/mainframe/MVS-TK5-Setup.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/mainframe/adding-users.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/mainframe/howto.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/mainframe/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/me/how-i-started-using-acme.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/me/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/me/stuff-i-use.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/opinions/favourite-programming-languages.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/opinions/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/basic_9p_server.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/discord.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/dns.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/fonts.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/lets_encrypt.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/mounting-9p-over-drawterm.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/network_booting.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/trellofs.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/using_irc.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/plan9/webfs-websocket.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/prolog/generality-of-append.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/prolog/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/web/index.html
create mode 100644 reference/pmikkelsen/pmikkelsen.com/web/the-setup-of-this-site.html
create mode 100644 reference/tui.tsx
create mode 100644 serve.py
create mode 100755 serve.rc
create mode 120000 sites/localhost
create mode 100644 sites/plan9.krisyotam.com/_werc/config
create mode 100644 sites/plan9.krisyotam.com/about/_werc/about_master.tpl
create mode 100644 sites/plan9.krisyotam.com/about/_werc/config
create mode 100644 sites/plan9.krisyotam.com/about/index.md
create mode 100644 sites/plan9.krisyotam.com/blogroll.md
create mode 100644 sites/plan9.krisyotam.com/cluster/index.md
create mode 100644 sites/plan9.krisyotam.com/data/index.md
create mode 100644 sites/plan9.krisyotam.com/essays/index.md
create mode 100644 sites/plan9.krisyotam.com/harmful/index.md
create mode 100644 sites/plan9.krisyotam.com/resources/index.md
create mode 100644 sites/plan9.krisyotam.com/sitemap.txt
create mode 100644 sites/plan9.krisyotam.com/software/index.md
create mode 100644 sites/plan9.krisyotam.com/style/go.md
create mode 100644 sites/plan9.krisyotam.com/style/index.md
create mode 100644 sites/plan9.krisyotam.com/style/plan9_c.md
create mode 100644 sites/plan9.krisyotam.com/style/suckless_c.md
diff --git a/bin/contrib/rc-httpd/rc-httpd b/bin/contrib/rc-httpd/rc-httpd
index 8e4fad9a135c223cf53d36322777dac763576862..b3f84313d35d50569c36d8aaa0c11eed7623fdc5 100755
--- a/bin/contrib/rc-httpd/rc-httpd
+++ b/bin/contrib/rc-httpd/rc-httpd
@@ -1,5 +1,5 @@
#!/bin/rc
-rc_httpd_dir=/home/sl/www/werc/bin/contrib/rc-httpd
+rc_httpd_dir=/home/krisyotam/dev/plan9.krisyotam.com/bin/contrib/rc-httpd
libdir = $rc_httpd_dir/lib
path=($PLAN9/bin $rc_httpd_dir/handlers $PATH)
cgi_path=$PLAN9/bin
diff --git a/bin/contrib/rc-httpd/select-handler b/bin/contrib/rc-httpd/select-handler
index ec819d45d27788f0e7b66b25fa020ef2da860978..87c782fbc664b70131f8806c6a7aff44b377ce5b 100755
--- a/bin/contrib/rc-httpd/select-handler
+++ b/bin/contrib/rc-httpd/select-handler
@@ -1,20 +1,10 @@
#!/bin/rc
rfork n
-# Route requests to werc.
-# Change paths to match your system.
-
-if(~ $SERVER_NAME 9base.werc.cat-v.org)
- PLAN9=/usr/local/9base
-if(~ $SERVER_NAME frontbase.werc.cat-v.org)
- PLAN9=/usr/local/plan9front
-if(~ $SERVER_NAME plan9port.werc.cat-v.org)
- PLAN9=/usr/local/plan9
-
if(~ $SERVER_NAME *){
PATH_INFO=$location
- FS_ROOT=/home/sl/www/werc/sites/$SERVER_NAME
- exec static-or-cgi /home/sl/www/werc/bin/werc.rc
+ FS_ROOT=/home/krisyotam/dev/plan9.krisyotam.com/sites/$SERVER_NAME
+ exec static-or-cgi /home/krisyotam/dev/plan9.krisyotam.com/bin/werc.rc
}
if not
error 503
diff --git a/bin/md2html.awk b/bin/md2html.awk
new file mode 100755
index 0000000000000000000000000000000000000000..81d1241a78fb97afe545df3ace5ec44eb4d99bc7
--- /dev/null
+++ b/bin/md2html.awk
@@ -0,0 +1,427 @@
+#!/bin/awk -f
+#
+# by: Jesus Galan (yiyus) 2009
+#
+# Usage: md2html.awk file.md > file.html
+# See: http://4l77.com/src/md2html.awk
+
+function eschtml(t) {
+ gsub("&", "\\&", t);
+ gsub("<", "\\<", t);
+ return t;
+}
+
+function oprint(t){
+ if(nr == 0)
+ print t;
+ else
+ otext = otext "\n" t;
+}
+
+function subref(id){
+ for(; nr > 0 && sub("<<" id, ref[id], otext); nr--);
+ if(nr == 0 && otext) {
+ print otext;
+ otext = "";
+ }
+}
+
+function nextil(t) {
+ if(!match(t, /[`<&\[*_\\-]|(\!\[)/))
+ return t;
+ t1 = substr(t, 1, RSTART - 1);
+ tag = substr(t, RSTART, RLENGTH);
+ t2 = substr(t, RSTART + RLENGTH);
+ if(ilcode && tag != "`")
+ return eschtml(t1 tag) nextil(t2);
+ # Backslash escaping
+ if(tag == "\\"){
+ if(match(t2, /^[\\`*_{}\[\]()#+\-\.!]/)){
+ tag = substr(t2, 1, 1);
+ t2 = substr(t2, 2);
+ }
+ return t1 tag nextil(t2);
+ }
+ # Dashes
+ if(tag == "-"){
+ if(sub(/^-/, "", t2))
+ tag = "—";
+ return t1 tag nextil(t2);
+ }
+ # Inline Code
+ if(tag == "`"){
+ if(sub(/^`/, "", t2)){
+ if(!match(t2, /``/))
+ return t1 "”" nextil(t2);
+ ilcode2 = !ilcode2;
+ }
+ else if(ilcode2)
+ return t1 tag nextil(t2);
+ tag = "";
+ if(ilcode){
+ t1 = eschtml(t1);
+ tag = "";
+ }
+ ilcode = !ilcode;
+ return t1 tag nextil(t2);
+ }
+ if(tag == "<"){
+ # Autolinks
+ if(match(t2, /^[^ ]+[\.@][^ ]+>/)){
+ url = eschtml(substr(t2, 1, RLENGTH - 1));
+ t2 = substr(t2, RLENGTH + 1);
+ linktext = url;
+ if(match(url, /@/) && !match(url, /^mailto:/))
+ url = "mailto:" url;
+ return t1 "" linktext "" nextil(t2);
+ }
+ # Html tags
+ if(match(t2, /^[A-Za-z\/!][^>]*>/)){
+ tag = tag substr(t2, RSTART, RLENGTH);
+ t2 = substr(t2, RLENGTH + 1);
+ return t1 tag nextil(t2);
+ }
+ return t1 "<" nextil(t2);
+ }
+ # Html special entities
+ if(tag == "&"){
+ if(match(t2, /^#?[A-Za-z0-9]+;/)){
+ tag = tag substr(t2, RSTART, RLENGTH);
+ t2 = substr(t2, RLENGTH + 1);
+ return t1 tag nextil(t2);
+ }
+ return t1 "&" nextil(t2);
+ }
+ # Images
+ if(tag == "!["){
+ if(!match(t2, /(\[.*\])|(\(.*\))/))
+ return t1 tag nextil(t2);
+ match(t2, /^[^\]]*/);
+ alt = substr(t2, 1, RLENGTH);
+ t2 = substr(t2, RLENGTH + 2);
+ if(match(t2, /^\(/)){
+ # Inline
+ sub(/^\(/, "", t2);
+ match(t2, /^[^\)]+/);
+ url = eschtml(substr(t2, 1, RLENGTH));
+ t2 = substr(t2, RLENGTH + 2);
+ title = "";
+ if(match(url, /[ ]+\".*\"[ ]*$/)) {
+ title = substr(url, RSTART, RLENGTH);
+ url = substr(url, 1, RSTART - 1);
+ match(title, /\".*\"/);
+ title = " title=\"" substr(title, RSTART + 1, RLENGTH - 2) "\"";
+ }
+ if(match(url, /^<.*>$/))
+ url = substr(url, 2, RLENGTH - 2);
+ return t1 "" nextil(t2);
+ }
+ else{
+ # Referenced
+ sub(/^ ?\[/, "", t2);
+ id = alt;
+ if(match(t2, /^[^\]]+/))
+ id = substr(t2, 1, RLENGTH);
+ t2 = substr(t2, RLENGTH + 2);
+ if(ref[id])
+ r = ref[id];
+ else{
+ r = "<<" id;
+ nr++;
+ }
+ return t1 "
" nextil(t2);
+ }
+ }
+ # Links
+ if(tag == "["){
+ if(!match(t2, /(\[.*\])|(\(.*\))/))
+ return t1 tag nextil(t2);
+ match(t2, /^[^\]]*(\[[^\]]*\][^\]]*)*/);
+ linktext = substr(t2, 1, RLENGTH);
+ t2 = substr(t2, RLENGTH + 2);
+ if(match(t2, /^\(/)){
+ # Inline
+ match(t2, /^[^\)]+(\([^\)]+\)[^\)]*)*/);
+ url = substr(t2, 2, RLENGTH - 1);
+ pt2 = substr(t2, RLENGTH + 2);
+ title = "";
+ if(match(url, /[ ]+\".*\"[ ]*$/)) {
+ title = substr(url, RSTART, RLENGTH);
+ url = substr(url, 1, RSTART - 1);
+ match(title, /\".*\"/);
+ title = " title=\"" substr(title, RSTART + 1, RLENGTH - 2) "\"";
+ }
+ if(match(url, /^<.*>$/))
+ url = substr(url, 2, RLENGTH - 2);
+ url = eschtml(url);
+ return t1 "" nextil(linktext) "" nextil(pt2);
+ }
+ else{
+ # Referenced
+ sub(/^ ?\[/, "", t2);
+ id = linktext;
+ if(match(t2, /^[^\]]+/))
+ id = substr(t2, 1, RLENGTH);
+ t2 = substr(t2, RLENGTH + 2);
+ if(ref[id])
+ r = ref[id];
+ else{
+ r = "<<" id;
+ nr++;
+ }
+ pt2 = t2;
+ return t1 "" nextil(linktext) "" nextil(pt2);
+ }
+ }
+ # Emphasis
+ if(match(tag, /[*_]/)){
+ ntag = tag;
+ if(sub("^" tag, "", t2)){
+ if(stag[ns] == tag && match(t2, "^" tag))
+ t2 = tag t2;
+ else
+ ntag = tag tag
+ }
+ n = length(ntag);
+ tag = (n == 2) ? "strong" : "em";
+ if(match(t1, / $/) && match(t2, /^ /))
+ return t1 tag nextil(t2);
+ if(stag[ns] == ntag){
+ tag = "/" tag;
+ ns--;
+ }
+ else
+ stag[++ns] = ntag;
+ tag = "<" tag ">";
+ return t1 tag nextil(t2);
+ }
+}
+
+function inline(t) {
+ ilcode = 0;
+ ilcode2 = 0;
+ ns = 0;
+
+ return nextil(t);
+}
+
+function printp(tag) {
+ if(!match(text, /^[ ]*$/)){
+ text = inline(text);
+ if(tag != "")
+ oprint("<" tag ">" text "" tag ">");
+ else
+ oprint(text);
+ }
+ text = "";
+}
+
+BEGIN {
+ blank = 0;
+ code = 0;
+ hr = 0;
+ html = 0;
+ nl = 0;
+ nr = 0;
+ otext = "";
+ text = "";
+ par = "p";
+}
+
+# References
+!code && /^ *\[[^\]]*\]:[ ]+/ {
+ sub(/^ *\[/, "");
+ match($0, /\]/);
+ id = substr($0, 1, RSTART - 1);
+ sub(id "\\]:[ ]+", "");
+ title = "";
+ if(match($0, /\".*\"$/))
+ title = "\" title=\"" substr($0, RSTART + 1, RLENGTH - 2);
+ sub(/[ ]+\".*\"$/, "");
+ url = eschtml($0);
+ ref[id] = url title;
+
+ subref(id);
+ next;
+}
+
+# html
+!html && /^<(address|blockquote|center|dir|div|dl|fieldset|form|h[1-6r]|\
+isindex|menu|noframes|noscript|ol|p|pre|table|ul|!--)/ {
+ if(code)
+ oprint("");
+ for(; !text && block[nl] == "blockquote"; nl--)
+ oprint("");
+ match($0, /^<(address|blockquote|center|dir|div|dl|fieldset|form|h[1-6r]|\
+ isindex|menu|noframes|noscript|ol|p|pre|table|ul|!--)/);
+ htag = substr($0, 2, RLENGTH - 1);
+ if(!match($0, "(<\\/" htag ">)|((^
");
+ code = 1;
+ $0 = eschtml($0);
+ oprint($0);
+ next;
+}
+code {
+ oprint("");
+ code = 0;
+}
+
+# Setex-style Headers
+text && /^=+$/ {printp("h1"); next;}
+text && /^-+$/ {printp("h2"); next;}
+
+# Atx-Style headers
+/^#+/ && (!newli || par=="p" || /^##/) {
+ for(n = 0; n < 6 && sub(/^# */, ""); n++)
+ sub(/#$/, "");
+ par = "h" n;
+}
+
+# Paragraph
+/^$/ {
+ printp(par);
+ par = "p";
+ next;
+}
+
+# Add text
+{ text = (text ? text " " : "") $0; }
+
+END {
+ if(code){
+ oprint("");
+ code = 0;
+ }
+ printp(par);
+ for(; nl > 0; nl--){
+ if(match(block[nl], /[ou]l/))
+ oprint("