| 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) |
| } |
| } |