I love typesetting tools. In my experience, I have used and written
articles and papers using the following list of tools:
plain text. I had to
decompress Word files and wrestle with raw XML files there, what a trip
You might be interested in how this website is built. Basically, the whole of this website is a collection of Org Mode files, couple of sed scripts, some shell, and a master makefile. Makefile converts my raw org mode files into asciidoctor with pandoc, sed scripts modify the asciidoctor files, then asciidoctor binary is called to generate HTML, and another sed script to modify the generated files, like adding CSS and some custom meta tags.
The repository is hosted on
source branch is the one that contains all the source org
files, on every commit push, a github workflow is triggered that runs
everything above and deploys the generated website to
where it triggers Github Pages to build the branch and deploy it
Below is a good flow graph of files and operations. Just to solidify the structure of the website, here is the source org file for this webpage.
─────────────── ───/ \─── / \ ( Commit push triggers ) \ github workflow / ───\ /─── ────────/────── / Makefile / │ / ┌───────────o────┐ pandoc │ org files ├────────────────┐ └───────┬────────┘ │ │ │ │ │ │ pandoc │ │ │ ┌───────┴───────────┐ ┌─────────┴───────────┐ │ asciidoctor files │ │ README.md files │ └─────────┬─────────┘ └─────────────────────┘ │ │ \ sed script │ ┌─────────o─────────┐ │ modified asciid. │ └────────┬──────────┘ │ │ \ asciidoctor │ ┌─────────o─────────┐ │ generated HTML │ └────────┬──────────┘ │ │ / sed scripts │ ┌───────o───────────┐ │ pretty HTML files │ └───────────────────┘ ─/ ─/ ── ─────────────── o────/ \──── / Push files to \ ( master and deploy to Pages) \ / ────\ /──── ───────────────
That’s the kind of workflow I have for my website. Whenever I do want to add a new page or update existing ones, all I have to do is edit org mode files, which are native to Emacs and push committed updates. That’s all the magic!
Astrie talks to me through Telegram, where I send her various commands, such as adding quotes and she patiently abides. I’m quite proud of her, as all we need for all that complexity is a ~100 loc Go package with a very small shell script that runs continuous git submodule updates and pushes.
In a bigger picture, I must say that I would love to be able to typeset beautiful documents and books like the ones below