Some computer programs I have written. Since I actually use them, I guess they count as structured procrastination.

a general markup converter, written in Haskell. I use this for all of my lecture notes, letters, slides, and websites.
a spec for a rationalized version of Markdown and reference implementations in C (cmark), JavaScript (commonmark.js), and Haskell (commonmark-hs).
a new light markup syntax designed to be more coherent and full-featured than commonmark, with implementations in Lua and JavaScript.
a Haskell library for generating a formatted bibliography and citations using the rules defined by a CSL stylesheet. There’s an online demo here.
a Haskell library for converting equations between LaTeX, MathML, OMML, and GNU eqn formats. There’s an online demo here.
a pure Haskell library for correct multilingual sorting.
a flexible CommonMark renderer in lua, with templates, YAML metadata, and filters.
Babelmark 2
a web app for comparing different markdown implementations.
a javascript-HTML implementation of Oyun.
a wiki program in Haskell, using git for file storage and history, and pandoc and skylighting for markup and page rendering. (See also: gitit’s git repository, gitit2.)
a program that generates static websites (including this one!) from string templates and data in YAML or CSV files.
a source code syntax highlighting library in Haskell. Parsers for different languages are automatically generated from Kate xml syntax definitions.
a generic interface to versioned storage for text or binary data, with backends for git and darcs.
a Haskell library for working with ZIP archives.
a markdown to HTML and LaTeX converter written in lua, using a PEG grammar. A modified version of this is used in the LaTeX markdown package.
an implementation of markdown in C, using a PEG (parsing expression grammar). (The peg-markdown code is also used in multimarkdown and rdoc.)
GOGAR (game of giving and asking for reasons)
a computer model of the scorekeeping dynamics in Robert Brandom’s Making It Explicit
Truth table tutor
an online truth table tutor, written in Haskell and Javascript.
Navajo Lucida Sans font
A TrueType font for the Navajo language. Just for historical interest: if you want to write Navajo now, I would recommend using a standard font that contains the Unicode glyphs needed, such as Noto Sans, and a Navajo keyboard layout, available here.
a simple argument mapping app, made using JavaScript.