Skip to content

hadley/rsmith

Repository files navigation

rsmith

Build Status

rsmith is inspired by metalsmith, which is a static site generator for node with a very simple API, based almost entirely on plugins. rsmith has a functional API, which when combined with magrittr, provides a pretty nice declarative specification:

rsmith("src", "dest") %>%
  use(markdown()) %>%
  use(whisker()) %>%
  build()

Possibly the coolest feature is that it uses Shiny's reactivity to cache interim results. This means that if you use watch() instead of build(), rsmith will watch for changes on disk and will do the minimal amount of work to update the site:

rsmith("src", "dest") %>%
  use(markdown()) %>%
  use(whisker()) %>%
  watch()

Plugins

  • markdown(): render .md to .html with the markdown package.

  • rmarkdown(): render .Rmd to .html, .pdf or .doc with rmarkdown.

  • use brew() or whisker() templates

  • ignore_draft(), ignore_files(): ignore files based on either metadata or path

Main differences

Rsmith adheres to the spirit of metalsmith, but is written in idiomatic R. This means that it:

  • Has a more functional flavour so you can use it with the pipe operation from magrittr.

  • Stores the file path in the metadata rather than as the object name. This makes it easier to use lapply() rather than for loops.

  • More plugins are built-in to the package because R packages are usually heavier than npm packages.

About

A static site generator for R inspired by metalsmith.io

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published