blob: ce5d6c47ae7528771ae7fa4da6f07b78da7a1d7a [file] [log] [blame]
local_temp_rmd_file <- function(..., .env = parent.frame()) {
path <- withr::local_tempfile(.local_envir = .env, fileext = ".Rmd")
xfun::write_utf8(c(...), path)
path
}
local_temp_draft <- function(.env = parent.frame()) {
path <- withr::local_tempfile(.local_envir = .env, fileext = ".Rmd")
# TODO: Use `rmarkdown::draft()` when rmarkdown 2.12 is out.
pkg_file <- getFromNamespace("pkg_file", "rmarkdown")
template_path <- pkg_file("rmarkdown", "templates", "revealjs_presentation",
package = "revealjs")
rmarkdown::draft(path, template_path, edit = FALSE)
}
.render_and_read <- function(input, xml = TRUE, ...) {
skip_if_not_pandoc()
output_file <- withr::local_tempfile(fileext = ".html")
res <- rmarkdown::render(input, output_file = output_file, quiet = TRUE, ...)
if (xml) {
xml2::read_html(res)
} else {
xfun::read_utf8(res)
}
}
# Use to test pandoc availability or version lower than
skip_if_not_pandoc <- function(ver = NULL) {
if (!pandoc_available(ver)) {
msg <- if (is.null(ver)) {
"Pandoc is not available"
} else {
sprintf("Version of Pandoc is lower than %s.", ver)
}
skip(msg)
}
}
# Use to test version greater than
skip_if_pandoc <- function(ver = NULL) {
if (pandoc_available(ver)) {
msg <- if (is.null(ver)) {
"Pandoc is available"
} else {
sprintf("Version of Pandoc is greater than %s.", ver)
}
skip(msg)
}
}