Home

Awesome

rmdformats

CRAN_Status_Badge CRAN Downloads R build status

Note for quarto users: these templates are only suitable for RMarkdown documents. I published one quarto custom format called bookup which is a porting of the robobook template.

This R package provides ready-to-use HTML output formats and templates for RMarkdown documents. The goal is to produce clean documents "out of the box", with or without the RStudio IDE.

Formats gallery

The package provides several HTML output formats. Click on any image to see an HTML output sample.

downcute

Taken from the docute project theme and its adaptation by John Coene. Responsive, with a dynamic table of contents and a dark theme switcher.

downcute example

downcute chaos is a variation created by Zac Garland. It has a slightly different color theme, and defaults to dark mode. To use it, add a downcute_theme: "chaos" option in your YAML preamble.

downcute chaos example

robobook

Adapted from the bookdown theme, with Roboto family fonts. Fully responsive with dynamic table of contents and collapsible navigation.

robobook example

material

Format taken from the Material design theme for Bootstrap 3. Document is split into pages at each <h1> header, and the table of contents allows an animated navigation between these pages (you can use the cards: false preamble parameter to disable the splitting and display all the cards at once).

material example

readthedown

Adapted from the corresponding readtheorg theme of the org-html-themes project, fully responsive with dynamic table of contents and collapsible navigation.

readthedown example

html_clean

Simple and clean template with dynamic table of contents, very similar to the one from the great knitrBootstrap package by Jim Hester.

html_clean example

html_docco

Simple template, no table of contents. CSS heavily inspired from the default one of the docco project.

html_docco example

lockdown

lockdown is an exact copy of the default RMarkdown html_document template, with an added functionality : each time you click on a link to get out, you'll see a friendly reminder to wash your hands and wear a mask. Yes, it is a (bad) attempt at a (bad) joke, sorry !

lockdown example

Features and helpers

Features matrix

<table> <thead> <tr> <th></th> <th>Responsive</th> <th>Dynamic TOC</th> <th>Dark mode</th> <th>Thumbnails / Lightbox</th> <th>Code folding</th> <th>Tabsets</th> <th>Bad joke</th> </tr> </thead> <tbody> <tr> <td><strong>html_docco</strong></td> <td>x</td> <td></td> <td></td> <td>x</td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>html_clean</strong></td> <td>x</td> <td>x</td> <td></td> <td>x</td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>readthedown</strong></td> <td>x</td> <td>x</td> <td></td> <td></td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>material</strong></td> <td></td> <td></td> <td></td> <td>x</td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>robobook</strong></td> <td>x</td> <td>x</td> <td></td> <td>x</td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>downcute</strong></td> <td>x</td> <td>x</td> <td>x</td> <td>x</td> <td>x</td> <td>x</td> <td></td> </tr> <tr> <td><strong>lockdown</strong></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>x</td> </tr> </tbody> </table>

Helpers

The package also provides RStudio document templates to easily generate an empty and ready to use rmarkdown file with several configuration directives.

It also provides the pilltabs() helper function, which allows to display a crosstab dynamically. See one of the output samples for a live example.

Installation

You can install the latest stable release from CRAN :

install.packages("rmdformats")

Or the latest development snapshot from GitHub :

install.packages(remotes)  # if necessary
remotes::install_github("juba/rmdformats")

Creating a new document

Just create a new Rmd file and add the following in your YAML preamble :

---
output: rmdformats::<template name>
---

Within RStudio , you can also choose File > New File... > R Markdown..., then select From Template. You should then be able to create a new document from one of the package templates.

Options

Depending on the features provided by the template, you can add the following options to your YAML preamble. Look at the template function help page for a valid list :

Example preamble :

---
title: "My document"
date: "`r Sys.Date()`"
author: John Doe
output:
  rmdformats::downcute:
    self_contained: true
    thumbnails: true
    lightbox: true
    gallery: false
    highlight: tango
---

Credits