This site is written with neovim on Antergos XFCE in Markdown. It’s converted to html using pandoc and hosted by Nearly Free Speech. I publish with a combination of GNU Make and Git. If you want to peruse the source, there’s a mirror of the site on Gitlab.



I’ve written a short script in my ~/bin folder called, fittingly enough, acdw.1 When I want to write a new post, say, a poem, I type

acdw poem

in my shell and it opens an editor with the date pre-populated. I write out my poem in Markdown, give it a title, save and quit – and the script automatically adds [lineblock marks] to poem posts (for line breaking purposes). If I want to write a post for a different day, I just append a date string (acdw uses date, so whatever date can parse works):

acdw blog 'last week'

(If the file is empty, it’s automatically deleted by the script.)


My build process is fairly straightforward: I have a number of source files in src/ (fittingly) that get processed by pandoc into the requisite files in pub/. I use a couple of filters that do things like convert blockquotes to epigraphs or automatically links posts written on the same day to each other that tailor the generated site to my needs. I build everything using a Makefile that generates recipes based on what groups I have posts for and spits everything out into pub/, ready for publishing.


Since this site is a git repository, publishing is just a git push away.2 Before I pull the trigger, though, I make sure the site looks alright by running make serve, which runs a PHP server rooted in pub/ so I can poke around. (It’s a little less useful now that I’ve moved to almost exclusively absolute linking.) Once I’ve verified it’ll be okay, I git push it to my public site and my Gitlab mirror.

  1. I’ve got a gist of it here:
  2. I originally got this tip from a now-defunct website, Nerdess ( link). It’s been so useful I’ve enumerated the basics in a blog post