asis_output {knitr} | R Documentation |
Mark an R object with a special class
Description
This is a convenience function that assigns the input object a class named
knit_asis
, so that knitr will treat it as is (the effect is the
same as the chunk option results = 'asis'
) when it is written to the
output.
Usage
asis_output(x, meta = NULL, cacheable = NA)
Arguments
x |
An R object. Typically a character string, or an object which can
be converted to a character string via |
meta |
Additional metadata of the object to be printed. The metadata
will be collected when the object is printed, and accessible via
|
cacheable |
Boolean indicating whether this object is cacheable. If
|
Details
This function is normally used in a custom S3 method based on the printing
function knit_print()
.
For the cacheable
argument, you need to be careful when printing the
object involves non-trivial side effects, in which case it is strongly
recommended to use cacheable = FALSE
to instruct knitr that this
object should not be cached using the chunk option cache = TRUE
,
otherwise the side effects will be lost the next time the chunk is knitted.
For example, printing a shiny input element or an HTML widget in an R
Markdown document may involve registering metadata about some JavaScript
libraries or stylesheets, and the metadata may be lost if we cache the code
chunk, because the code evaluation will be skipped the next time. This
particular issue has been solved in knitr after v1.13 (the metadata
will be saved and loaded automatically when caching is enabled), but not all
metadata can be saved and loaded next time and still works in the new R
session.
Note
This function only works in top-level R expressions, and it will not work when it is called inside another expression, such as a for-loop. See https://github.com/yihui/knitr/issues/1137 for a discussion.
Examples
# see ?knit_print