View source: R/tar_engine_knitr.R
tar_engine_knitr | R Documentation |
knitr
engineknitr
language engine that runs targets
code chunks in Target Markdown.
tar_engine_knitr(options)
options |
A named list of |
Character, output generated from knitr::engine_output()
.
Target Markdown has two modes:
Non-interactive mode. This is the default when you
run knitr::knit()
or rmarkdown::render()
.
Here, the code in targets
code chunks gets written
to special script files in order to set up a targets
pipeline to run later.
Interactive mode: here, no scripts are written to set up a pipeline. Rather, the globals or targets in question are run in the current environment and the values are assigned to that environment.
The mode is interactive if !isTRUE(getOption("knitr.in.progress"))
,
is TRUE
. The knitr.in.progress
option is TRUE
when you run knitr::knit()
or rmarkdown::render()
and NULL
if you are running one chunk at a time interactively
in an integrated development environment, e.g. the
notebook interface in RStudio:
https://bookdown.org/yihui/rmarkdown/notebook.html.
You can choose the mode with the tar_interactive
chunk option.
(In targets
0.6.0, tar_interactive
defaults to interactive()
instead of !isTRUE(getOption("knitr.in.progress"))
.)
Target Markdown introduces the following knitr
code chunk options.
Most other standard knitr
code chunk options should just work
in non-interactive mode. In interactive mode, not all
tar_globals
: Logical of length 1,
whether to define globals or targets.
If TRUE
, the chunk code defines functions, objects, and options
common to all the targets. If FALSE
or NULL
(default),
then the chunk returns formal targets for the pipeline.
tar_interactive
: Logical of length 1, whether to run in
interactive mode or non-interactive mode.
See the "Target Markdown interactive mode" section of this
help file for details.
tar_name
: name to use for writing helper script files
(e.g. _targets_r/targets/target_script.R
)
and specifying target names if the tar_simple
chunk option
is TRUE
. All helper scripts and target names must have
unique names, so please do not set this option globally
with knitr::opts_chunk$set()
.
tar_script
: Character of length 1, where to write the
target script file in non-interactive mode. Most users can
skip this option and stick with the default _targets.R
script path.
Helper script files are always written next to the target script in
a folder with an "_r"
suffix. The tar_script
path must either be
absolute or be relative to the project root
(where you call tar_make()
or similar).
If not specified, the target script path defaults to
tar_config_get("script")
(default: _targets.R
;
helpers default: _targets_r/
). When you run tar_make()
etc.
with a non-default target script, you must select the correct target
script file either with the script
argument or with
tar_config_set(script = ...)
. The function will source()
the script file from the current working directory
(i.e. with chdir = FALSE
in source()
).
tar_simple
: Logical of length 1.
Set to TRUE
to define a single target with a simplified interface.
In code chunks with tar_simple
equal to TRUE
, the chunk label
(or the tar_name
chunk option if you set it)
becomes the name, and the chunk code becomes the command.
In other words, a code chunk with label targetname
and
command mycommand()
automatically gets converted to
tar_target(name = targetname, command = mycommand())
.
All other arguments of tar_target()
remain at their default
values (configurable with tar_option_set()
in a
tar_globals = TRUE
chunk).
https://books.ropensci.org/targets/literate-programming.html
Other Target Markdown:
tar_interactive()
,
tar_noninteractive()
,
tar_toggle()
if (identical(Sys.getenv("TAR_EXAMPLES"), "true")) { # for CRAN
# Register the engine.
if (requireNamespace("knitr", quietly = TRUE)) {
knitr::knit_engines$set(targets = targets::tar_engine_knitr)
}
# Then, `targets` code chunks in a knitr report will run
# as described at
# <https://books.ropensci.org/targets/literate-programming.html>.
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.