It is Christmas time! And what better time than this to write about the great tools that are available to all who like R and would like to publish their R work or even blog about it. This post is meant as a praise to the tools that are helping me to write this blog and make it a very nice experience, allowing me to focus on the content.
In this post we will praise 5 free tools that can help anyone make blogging about R or publishing results of R work a pleasant experience.
RStudio + R Markdown to prepare the content
The first is probably the most obvious, but still worth mentioning. The RStudio IDE is a good productivity tool for all R-related work, however the integration with R Markdown makes it the default environment for me to write the blog posts. I especially enjoy use the RStudio Server, which makes it easy to have one aligned environment regardless of where you are (as long as there is internet connection ;) and what computer you are using (as long as there is a recent version of a web browser).
As an honorary mention, R Markdown would probably not be possible without the powerhouse behind it - Pandoc. Pandoc is an open-source document converter, widely used as a writing tool and as a basis for publishing workflows, and also used as a backend by knitr, which is in turn used by R Markdown to generate the rendered outputs from R Markdown documents.
Blogdown (+ Hugo) to make it a nice blog
To write and review the posts for this blog, I almost exclusively use the combination of the RStudio (Server) IDE and the Blogdown package by Yihui Xie. As most of the readers probably know both of those are free and very easy to setup. If you never heard of Blogdown, it is an open-source R package to generate static websites based on R Markdown and Hugo.
But that short explanation does not really do it justice, so you may want to check out Awesome Blogdown for a curated list of blogs built using blogdown. If you want to learn more, there is even a free online book written by the authors of blogdown. In terms of the design, you can find hundreds of themes to choose from in the Hugo theme gallery, this blog uses customized natrium theme, a simple responsive blog theme for Hugo based on the Lithium theme.
GitLab and GitLab Pages to version control and publish it
GitLab pages enable us to create websites for our GitLab projects, groups, or user account using any static website generator, Hugo included. Since GitLab is my repository manager of choice, allowing for free private repositories, integration with the pages comes very naturally and easily. Essentially all that is needed to make it work is a
.gitlab-ci.yml file similar to this one.
There is even a full example of a Hugo page available to see how it may look like with a nice readme. For advanced use, it is also possible to connect your custom domain and TLS certificates and host the websites on your own GitLab instance. On GitLab.com, the hosting of the sites is free. To read more documentation and watch video tutorials, just click here.
Highcharts and the highcharter R package for interactive charts
I have been using highcharts for interactive charting for projects for years and was very excited when the first version of the highcharter R package providing an interface between R and highcharts arrived on CRAN in 2016.
ScreenToGif for moving screen captures
ScreenToGif is an open source tool that allows you to record a selected area of your screen, edit and save it as a gif or video. I find screen recording and showing it as a gif one the best ways to easily show examples without the need to record a video, which takes much more effort and this tool does just that very conveniently. You can download it for free from its website and take a look at the code in the GitHub repo.
- RStudio desktop and RStudio Server
- R Markdown on GitHub
- Blogdown on GitHub
- Blogdown and GitLab Pages
- Hugo, one of the most popular open-source static site generators
- Hugo theme gallery
- GitLab pages, a feature that allows you to publish static websites directly from a repository in GitLab
- Highcharts makes it easy for developers to set up interactive charts in their web pages
- ScreenToGif, a screen, webcam and sketchboard recorder with an integrated editor.
Thank you for reading and
have a verry merry Christmas :o)