For me, the task of building a personal website is fraught with so many of my technical, aesthetic, and personal hangups that I hadn’t updated mine since mid-graduate school. Thanks to consistent pestering by Maëlle, though, I finally got around to re-building this one using a modern toolkit. Hopefully I can keep it up to date.
Here are some of the pieces that I used to build it:
- The site is generated using the Hugo static site generator, with the R package blogdown generating R Markdown posts.
- The Kube framework by Imperavi provides basic layout and user-interaction.
- Design inspiration is taken from Greg Restall’s
consequently.org and the lovely but defunct
Gentle Reader.
Some design elements are inspired by Edward Tufte’s handout designs Especially margin notes , as implemented in the tufte-css framework. Numbered and unnumbered, of course
The site uses the fonts Alegreya by Huerta Tipográfica and IM Fell English, extracted from John Fell’s historic types by Igino Marini. Fonts are served by Google Fonts. Icons are provided by Font Awesome and Academicicons.
My CV is generated from data on ORCiD using the rorcid package.
The site is hosted at nearlyfreespeech.net and deployed using Circle CI. Assets are delivered via the jsDeliver CDN.
[Update, 2019-12-21]: Comments are served via a self-hosted schnack installation.
I made a few tweaks to the typical Blogdown setup that I think are neat and you may find useful, esoteric, or maddening:
- To make R Markdown documents work with Hugo’s native syntax highlighter, I made a lua filter that wraps code outputs in Hugo’s
<highlight>
tags, and set the site to use it for all posts. - The R Markdown posts are built on CircleCI, but to improve performance the knitr cache is saved in the CI cache.
- Branches of the site deploy and can be viewed under the
/branch/
subdirectory. This is done by setting the site BaseURL to vary by branch on CircleCI and then pushing the branch to that subdirectory.. - The rorcid download script merges ORCiD data with custom annotations and then saves it in the Hugo
data/
folder for use in building the site. - Those custom annotations show up in my CV as “” dropdowns, using Kube’s Toggle feature by way of a Hugo template.
I also think that I managed to port over all my old posts and have them redirect properly. Please let me know if you find any problems! You can find source code for the site on GitHub.