Here is a quick fix to helping you streamline your manuscript creation using the rmarkdown::distill package so that your output is automatically put in the right locations for display on Github Pages.
o, I’ve been having some fun playing around with the Distill for R Markdown package as I work on getting back into research after the “Admin Craptastic” I’ve been doing through. It is a really nice way to create manuscripts and publish content with the help of github and GitHub Pages .
One of the things that has been holding me back thought is that I
would have to set up a custom script so that the manuscript file itself
(when compiled into html) could be moved into a specific folder in the
repository that will be served up on GitHub pages. I chose to use the
/docs
folder and set this up in the settings section of the
repository. Once you save it, it looks like this.
Then, go back to your repository and add the folder and check it into your GitHub repository.
The main problems were:
manuscript.Rmd
(or
something that is typically not index
, which means that it
will have to be renamed upon check-in to the repository. In previous
incarnations, I put in a hook into git that would copy it over just
prior to committing but this was a pain as it was hidden behind the
scenes.docs
folder so no matter what I
named it, it would have to be moved anyways.So the fix is to override the knit function directly in the Rmd YAML data. There is an optional argument that you can use to have a custom render function that is called when you hit the “knit” button in RStudio, that has the following syntax.
knit: (function(inputFile, encoding) {
rmarkdown::render(inputFile,
encoding=encoding,
output_file='docs/index.html') })
Now, if you put that stuff into the YAML, it will auto-magically render it with the correct name and location by itself behind the scenes AND you will still see it in the preview stuff.
Very cool.