Colophon
I have been pleasantly surprised by how easy it has been to create this site. Being able to use familiar tools such as emacs and unix, and to apply my knowledge of markup languages and styles, made the learning curve relatively shallow.
\(NearlyFreeSpeech^{.NET}\) web host provides a wonderful platform that just works, and their pay-as-you-go policy means my initial deposit will last a long time thanks to this being a low-traffic site.
I wanted to allow visitors to comment on my content1 and as I looked into the possibilities, it became clear that a self-hosted solution was best for me. I don’t expect to have a lot of comments and I certainly don’t want a solution which embeds adverts or other obnoxious content! I settled on HashOver which only requred an hour or so to set up, despite using technologies I had no hands-on experience of.
My workflow is as follows:
Write stories. I use emacs and \(\LaTeX\) to express the ideas in my head.
I was first exposed to emacs as an undergrad in the mid-80s, running on a CDC Cyber. I’m not interested in editor wars, I don’t have enough knowledge of other tools to make an in-depth comparison. I do know that over the years I have bent emacs to my will, while simultaneously being bent to its will.
I have been using \(\LaTeX\) for document creation for over a quarter of a century2 and it allows me to create beautiful, repurposable, content using plain text. I can still work on documents I created in the 90s, while modern Word struggles with documents of that vintage.
Convert the \(\LaTeX\) files to Org files.
Why not start with Org files? I like writing \(\LaTeX\), I enjoy working with something which looks like it has been professionally published. The conversion is trivial: I wrote a tiny bash script which uses sed to do some simple substitutions and converts the result using pandoc. A minor editing pass later, such as including Org files which contain headers and footers, and I have a file that can be used in the final step. Since I only publish completed stories, this is an insignificant part of the process.
Write/maintain Org files for site navigation.
This amounts to creating index files and links between them and the files containing the stories—trivial to do in Org. Org lets me work at a higher level of abstraction than html so I can concentrate on structure.
Convert the Org files into html.
Org provides a publishing management system which converts a project of Org files and related content (images, source code, sound…) into a static web site. You do have to write a configuration file which tells the system what the project includes, but there are enough examples to make this simple. Having the content organised as a project means I can use Projectile in emacs to help manage the components.
Publish the contents.
rsync makes this trivial!
Apart from writing the stories, tweaking the look and feel of the pages was the most time-consuming aspect of creating this site. I learnt a little bit of css and adapted a style sheet which which was close to what I wanted. I am not prepared to admit how much time I spent tweaking a single value, previewing the result, and tweaking again…