Description Usage Arguments Value Examples
knit_ex
is a utility function for running small
knitr examples, e.g., to illustrate functionalities or
issues.
hook_try
simply defines a function try
in
envir
that prints the error message if any, and is
called instead of base try
.
hook_backspace
is a chunk hook that enables the
use of backspace characters in the output (e.g., as used
in progress bars), and still obtain a final output as in
the console.
hook_toggle
is a chunk hook that adds clickable
elements to toggle indvidual code chunks in HTML
documents generated from .Rmd files.
1 2 3 4 5 6 7 | knit_ex(x, ..., quiet = TRUE, open = FALSE)
hook_try(before, options, envir)
hook_backspace()
hook_toggle()
|
x |
text to knit as a character vector |
... |
arguments passed to |
quiet |
logical that indicates if knitting should be quiet (no progress bars etc..). |
open |
logical, only used when |
before |
logical that indicates when the hook is being called: before or after the chunk is processed. |
options |
list of current knitr chunk options |
envir |
environment where the chunk is evaluated |
knit_ex
returns the generated code, although invisibly when open=TRUE
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | #----------
# knit_ex
#----------
library(knitr)
knit_ex("1 + 1")
#----------
# hook_try
#----------
library(knitr)
# standard error message is caught
knit_ex("stop('ah ah')")
# with try the error is output on stderr but not caughted by knitr
knit_ex("try( stop('ah ah') )")
# no message caught
knit_ex("
^^^{r, include = FALSE}
knit_hooks$set(try = pkgmaker::hook_try)
^^^
^^^{r, try=TRUE}
try( stop('ah ah') )
^^^")
#----------
# hook_backspace
#----------
# Correctly formatting backspaces in chunk outputs
tmp <- tempfile(fileext = '.Rmd')
cat(file = tmp, "
^^^{r, include = FALSE}
library(knitr)
knit_hooks$set(backspace = pkgmaker::hook_backspace())
^^^
Default knitr does not handle backspace and adds a special character:
^^^{r}
cat('abc\bd')
^^^
Using the hook backspace solves the issue:
^^^{r, backspace=TRUE}
cat('abc\bd')
^^^
")
# knit
out <- knitr::knit2html(tmp, fragment.only = TRUE)
# look at output
## Not run:
browseURL(out)
edit( file = out)
## End(Not run)
# cleanup
unlink(c(tmp, out))
#----------
# hook_toggle
#----------
knit_ex("
Declare chunk hook:
^^^{r, setup}
library(knitr)
knit_hooks$set(toggle = hook_toggle())
^^^
The R code of this chunk can be toggled on/off, and starts visible:
^^^{r, toggle=TRUE}
print(1:10)
^^^
The R code of this chunk can be toggled on/off, and starts hidden:
^^^{r, toggle=FALSE}
print(1:10)
^^^
This is a plain chunk that cannot be toggled on/off:
^^^{r}
print(1:10)
^^^
Now all chunks can be toggled and start visible:
^^^{r, toggle_all}
opts_chunk$set(toggle = TRUE)
^^^
^^^{r}
sample(5)
^^^
To diable the toggle link, one can pass anything except TRUE/FALSE:
^^^{r, toggle = NA}
sample(5)
^^^
", open = TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.