Quarto is a fantastic scientific and technical document publishing tool that I just discovered - it’s basically Rmarkdown, but expanded beyond R to become a standalone document processor, whether that be just for markdown or including R, Python, and JavaScript code 1.
While looking through the Quarto docs, I realised that it also solves another problem I had when I was lecturing as part of my Masters degree last year - generating multiple file formats from a single input file! I didn’t bother blogging about it, but last year I ended up setting up a convoluted Pandoc and Pandocomatic workflow to generate PDF, HTML, and Word / Powerpoint files from a single markdown input.
Why? Well, I believe that providing multiple file formats is better for the student experience, letting them download and use them in a format convenient for them. In particular, a well formatted HTML file is very portable, able to adapt and display nicely on a range of device sizes 2.
The trouble is, maintaining multiple file formats by hand is a nuisance - you change one thing, and have to update it in three different places. Instead, having a single source of truth - a markdown file, in this case - that the other formats build from is much easier to manage and update.
So, I went ahead and updated my Pandocomatic workflow to use Quarto, and I couldn’t be happier. It’s much simpler and more straightforward, requiring a lot less technical setup to use.
There are two versions of these workflows:
Worksheets - to produce working materials / documents for classes
Presentations - to produce slides for lectures / tutorials
Full details on how to setup and use these workflows are in the GitHub repos linked above. I deliberately kept them simple in style and substance - while Quarto can produce some really nice documents, I used my own templates to strip everything right back to basics, whilst still looking pleasing and clean. Using my own templates did break a bit of Quarto functionality in my testing, so I’ve included my own lua filter 3 to re-implement the things I consider essential, as well as a little extra function in the auto-linking of questions and answers in the Worksheets.
Thanks for reading, I hope these workflows might be even a tiny bit helpful to someone out. Get in touch if you’ve got any writing / document processing tips of your own to share!
- Seriously, it does so much stuff. ↩︎
- Also, giving a nice range of options for use with screen readers and other accessibility tools through semantic HTML. ↩︎
- See my blog post on lua filters for details on how to write your own! ↩︎