5 amazing free tools that can help with publishing R results and blogging

Introduction

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

RStudio Sticker

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).

I often find myself even editing the css style sheets, HTML partials and JavaScript within RStudio itself. And probably the best thing about it is that with combination with Blogdown, you can see all those changes instantly as you make them in RStudio’s Viewer. Using RStudio’s Terminal for the necessary git commands makes RStudio Server a unified tool with all that I need for almost all of the work.

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

Blogdown Logo

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

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

Highcharts

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.

For the relatively rare occurrences when I need a chart included in a blog post I happily use highcharter mainly thanks to the amazing variability and ease of use provided by the now very mature highcharts JavaScript library. For a taste, just look at the highcharts demo. And yes, they can do pretty highmaps too.

ScreenToGif for moving screen captures

ScreenToGif

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.

Resources

Thank you for reading and
have a verry merry Christmas :o)