Tools

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

pandoc
a general markup converter, written in Haskell. I use this for all of my lecture notes, letters, slides, and websites.
CommonMark
a spec for a rationalized version of Markdown and reference implementations in C (cmark), JavaScript (commonmark.js), and Haskell (commonmark-hs).
djot
a new light markup syntax designed to be more coherent and full-featured than commonmark, with implementations in Lua and JavaScript.
citeproc
a Haskell library for generating a formatted bibliography and citations using the rules defined by a CSL stylesheet. There’s an online demo here.
texmath
a Haskell library for converting equations between LaTeX, MathML, OMML, and GNU eqn formats. There’s an online demo here.
unicode-collation
a pure Haskell library for correct multilingual sorting.
lcmark
a flexible CommonMark renderer in lua, with templates, YAML metadata, and filters.
Babelmark 2
a web app for comparing different markdown implementations.
oyun-web
a javascript-HTML implementation of Oyun.
gitit
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.)
yst
a program that generates static websites (including this one!) from string templates and data in YAML or CSV files.
skylighting
a source code syntax highlighting library in Haskell. Parsers for different languages are automatically generated from Kate xml syntax definitions.
filestore
a generic interface to versioned storage for text or binary data, with backends for git and darcs.
zip-archive
a Haskell library for working with ZIP archives.
lunamark
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.
peg-markdown
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.
cartargrapher
a simple argument mapping app, made using JavaScript.