R: Mark an R object with a special class

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 can be converted to a character string via `as.character()`)
`meta` | additional metadata of the object to be printed (the metadata will be collected when the object is printed, and accessible via `knit_meta()`)
`cacheable` | a logical value indicating if this object is cacheable; if `FALSE`, knitr will stop when caching is enabled on code chunks that contain `asis_output()`

### 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

[Package knitr version 1.16 Index]