The goal of codefolder is to provide “aftermarket” code-folding capabilty for bookdown and distill. The operative code is based on this Stack Overflow answer by Sébastien Rochette.
You can install the delevopment version of codefolder from GitHub with:
# install.packages("devtools")
devtools::install_github("ijlyttle/codefolder")
This is a quick way to enable code-folding, for an entire page, on a page-by-page basis.
The idea is to put an Rmd-chunk near the top of a page. When rendered, the chunk places a button in the right margin which can be used to show or hide code.
There is a function each for Bookdown and Distill. The main argument is
init
, which indicates if you want, initially, to "show"
or "hide"
the code. The other arguments are query
, the CSS selector for to match
the code elements, and the style
to the button.
Bookdown:
```{r codefolder, echo=FALSE, results='asis'}
codefolder::bookdown(init = "hide")
```
Distill:
<aside>
```{r codefolder, echo=FALSE, results='asis'}
codefolder::distill(init = "hide")
```
</aside>
If you like, you can create these as RStudio code
snippets
for markdown. I use cfb
and cfd
as my short-codes.
It will be up to you to add some CSS according to your tastes.
Please note that the ‘codefolder’ project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.