#' Inserting exercises into a document.
#'
#' Inserts an etude into a mother document
#'
#' @param fname The path name for the etude file. Include the filetype extension (e.g. `.Rmd`).
#' @param title Character string containing the immediate header
#' for the etude, e.g., `"Problem 17.3:"` or `"### Exer A\n\n"`
#' @param package The name of the package (if etude file is provided by a package).
#' This avoids having to call `system.file()`
#' @param quiet Logical flag to control display of `knitr` messages.
#'
#' @export
include_etude <- function(fname, title, package = NULL, quiet=FALSE) {
tooltip <- glue::glue(
"<span title='{fname} in package {ifelse(!is.null(package), package, '')}'>...</span>")
if (!is.null(package)) {
fname <- system.file(fname, package=package)
}
if (missing(title)) {
warning("Using etude file name as title. See title= argument to include_etude()")
title = paste("### Source file:",fname,"\n\n")
}
assign(".the_title.",
paste(title, tooltip),
envir = etude:::title.env)
# return the knitted document
knitr::knit_child(fname, envir = etude:::title.env, quiet=quiet)
}
#' @export
exercise_title <- function() {
if (".the_title." %in% names(title.env))
etude:::title.env$.the_title.
else "TITLE WILL GO HERE:"
}
title.env <- new.env()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.