This week I became aware of the R package blogdown, which was released on CRAN on 2017-08-22 with the announcement following shortly thereafter. Initially, given the name, I presumed that it was an R package that facilitated the creation of a blog. But it is much more than that.
Prior to becoming aware of blogdown, I had been using reproducible tools (coincidentally created by the author of blogdown) which were designed for creating sophisticated products including books, research papers, and websites with an eye on reproducibility (R Markdown and bookdown). A key feature of R Markdown and bookdown is that you work with one file only, the file is a human readable Markdown script, and you remain agnostic about the output format; you can render the output in a range of formats from PDF/\(\rm\LaTeX\) to MS Word to HTML etc., which are rendered using Pandoc. These tools have become an indispensable part of my workflow.
However, markdown and bookdown are referred to as “formal” while blogdown is referred to as “casual” by its creator, so they are intended for different audiences; blogdown is designed strictly for the creation of websites.
The blogdown package is based on R Markdown and bookdown and the Go language, and is designed for technical writing. A few years ago I adopted R Markdown to create websites, and that worked brilliantly and was a big improvement over what I had been using prior to its adoption, however, certain features were missing. To remedy such shortcomings, blogdown adopts Hugo, natively provides disqus, RSS, and Google Analytics support and allows you to get up to speed creating static sites in an open and free environment, all enhanced by using GitHub and netlify. Furthermore, it features a “continuous deployment” model with netlify constantly monitoring GitHub for any change in a site repository’s content and rebuilding and deploying the site virtually instantaneously without any further intervention required.
This site was created using blogdown, and you can clone this project from its GitHub repository and modify it to suit your needs. I found the blogdown tutorial by Peter Baumgartner to be most valuable. By following his instructions I was up and running in no time.
Co-author Rob Hyndman has a nice post about his experience migrating his Wordpress site to blogdown where he highlights the inadequacies of various platforms he had used and how such limitations were overcome by switching to blogdown.