Returns information about the current tutorial. Ideally the function should
be evaluated in a Shiny context, i.e. in a chunk with option
context = "server". Note that the values of this function may change after
the tutorial is completely initialized. If called in a non-reactive context,
get_tutorial_info() will return default values that will most likely
correspond to the current tutorial.
get_tutorial_info(
tutorial_path = NULL,
session = getDefaultReactiveDomain(),
...,
encoding = "UTF-8"
)Path to a tutorial .Rmd source file
The session object passed to function given to
shinyServer. Default is shiny::getDefaultReactiveDomain().
Arguments passed on to rmarkdown::render
output_formatThe R Markdown output format to convert to. The option
"all" will render all formats defined within the file. The option can
be the name of a format (e.g. "html_document") and that will render
the document to that single format. One can also use a vector of format
names to render to multiple formats. Alternatively, you can pass an output
format object (e.g. html_document()). If using NULL then the
output format is the first one defined in the YAML frontmatter in the input
file (this defaults to HTML if no format is specified there).
If you pass an output format object to output_format, the options
specified in the YAML header or _output.yml will be ignored and you
must explicitly set all the options you want when you construct the object.
If you pass a string, the output format will use the output parameters in
the YAML header or _output.yml.
output_dirThe output directory for the rendered output_file.
This allows for a choice of an alternate directory to which the output file
should be written (the default output directory of that of the input file).
If a path is provided with a filename in output_file the directory
specified here will take precedence. Please note that any directory path
provided will create any necessary directories if they do not exist.
output_optionsList of output options that can override the options
specified in metadata (e.g. could be used to force self_contained or
mathjax = "local"). Note that this is only valid when the output
format is read from metadata (i.e. not a custom format object passed to
output_format).
output_yamlPaths to YAML files specifying output formats and their
configurations. The first existing one is used. If none are found, then
the function searches YAML files specified to the output_yaml top-level
parameter in the YAML front matter, _output.yml or _output.yaml, and then uses
the first existing one.
intermediates_dirIntermediate files directory. If a path is specified
then intermediate files will be written to that path. If NULL,
intermediate files are written to the same directory as the input file.
knit_root_dirThe working directory in which to knit the document;
uses knitr's root.dir knit option. If NULL then the behavior
will follow the knitr default, which is to use the parent directory of the
document.
runtimeThe runtime target for rendering. The static option
produces output intended for static files; shiny produces output
suitable for use in a Shiny document (see run). The default,
auto, allows the runtime target specified in the YAML metadata
to take precedence, and renders for a static runtime target otherwise.
cleanUsing TRUE will clean intermediate files that are created
during rendering.
paramsA list of named parameters that override custom params
specified within the YAML front-matter (e.g. specifying a dataset to read or
a date range to confine output to). Pass "ask" to start an
application that helps guide parameter configuration.
knit_meta(This option is reserved for expert use.) Metadata generated by knitr.
envirThe environment in which the code chunks are to be evaluated
during knitting (can use new.env() to guarantee an empty new
environment).
run_pandocAn option for whether to run pandoc to convert Markdown output.
quietAn option to suppress printing during rendering from knitr,
pandoc command line and others. To only suppress printing of the last
"Output created: " message, you can set rmarkdown.render.message to
FALSE
Ignored. The encoding is always assumed to be UTF-8.
Returns an ordinary list with the following elements:
tutorial_id: The ID of the tutorial, auto-generated or from the
tutorial$id key in the tutorial's YAML front matter.
tutorial_version: The tutorial's version, auto-generated or from the
tutorial$version key in the tutorial's YAML front matter.
items: A data frame with columns order, label, type and data
describing the items (questions and exercises) in the tutorial. This item
is only available in the running tutorial, not during the static
pre-render step.
user_id: The current user.
learnr_version: The current version of the running learnr package.
language: The current language of the tutorial, either as chosen by the
user or as specified in the language item of the YAML front matter.
if (rmarkdown::pandoc_available("1.4")) {
tutorial_rmd <- local({
# Use a temp copy of "Hello learnr" tutorial for this example
src <- system.file(
"tutorials", "hello", "hello.Rmd", package = "learnr"
)
dest <- tempfile(fileext = ".Rmd")
file.copy(src, dest)
dest
})
# ---- This is the example! ------------ #
info <- get_tutorial_info(tutorial_rmd)
# -------------------------------------- #
# clean up the temporary Rmd used in this example
unlink(tutorial_rmd)
# This is the result of the example
info
}
#> $tutorial_id
#> [1] "/tmp/RtmpG5kzq4"
#>
#> $tutorial_version
#> [1] "0.11.6"
#>
#> $items
#> # A tibble: 1 × 4
#> order label type data
#> <int> <chr> <chr> <list>
#> 1 1 addition exercise <r>
#>
#> $user_id
#> [1] "elizabethb"
#>
#> $learnr_version
#> [1] "0.11.6"
#>
#> $language
#> [1] "en"
#>