My web site is one of my favorite yaks. There are many like it, but it is mine.
- Gulp ties everything together
- Remark for most of the content processing
- Pandoc for the few pages that require more complex formatting than Remark can handle
- Rehype for reprocessing HTML
- Handlebars for content templates
- Pug for layouts
- Hastscript for generating little bits of HTML in the compilation process
- PostCSS to make CSS more usable
- Mithril for advanced client-side interaction
- Lunr to implement site search
- KaTeX for math rendering
One of the particularly cool features of this setup is my publication pages: each publication has a page written in Markdown; embedded HTML at the top of the page serves as single-source-of-truth for my publications across the whole site. My CV is updated from this data, as is my publication list and other places where publications show up (project pages, blog posts, etc.).
I source citation statistics from Microsoft Academic via Cognitive Services Labs, updated every time the site rebuilds.
I use Puppeteer to render my CV into a consistent and downloadable PDF. The HTML CV itself prints well (the print CSS is how I generate the PDF), but the pre-rendered PDF provides niceties like good headers and footers (once Chrome implements Paged Media Module Level 3, this will be even better).
Icons are from the excellent Noun Project.