diff --git a/R/rmarkdown.R b/R/rmarkdown.R index 5f0122505..d8641d986 100644 --- a/R/rmarkdown.R +++ b/R/rmarkdown.R @@ -56,8 +56,7 @@ render_rmarkdown <- function(pkg, input, output, ..., seed = NULL, copy_images = update_html( path, tweak_rmarkdown_html, - output_dir = path_dir(output_path), - input_dir = path_dir(input_path), + input_path = path_dir(input_path), pkg = pkg ) } diff --git a/R/tweak-page.R b/R/tweak-page.R index c7ed6c13e..1deecea4f 100644 --- a/R/tweak-page.R +++ b/R/tweak-page.R @@ -37,38 +37,19 @@ tweak_page <- function(html, name, pkg = list(bs_version = 3)) { } } -tweak_rmarkdown_html <- function(html, input_dir, output_dir, pkg = list(bs_version = 3)) { +tweak_rmarkdown_html <- function(html, input_path, pkg = list(bs_version = 3)) { # Tweak classes of navbar toc <- xml2::xml_find_all(html, ".//div[@id='tocnav']//ul") xml2::xml_attr(toc, "class") <- "nav nav-pills nav-stacked" + # Make sure all images use relative paths img <- xml2::xml_find_all(html, "//img") src <- xml2::xml_attr(img, "src") - - # Drop the logo and any inline images - is_ok <- !grepl("^data:", src) & xml2::xml_attr(img, "class", default = "") != "logo" - img <- img[is_ok] - src <- src[is_ok] - - # Fix up absoluate paths to be relative to input_dir abs_src <- is_absolute_path(src) if (any(abs_src)) { purrr::walk2( img[abs_src], - path_rel(src[abs_src], input_dir), - xml2::xml_set_attr, - attr = "src" - ) - } - - # Fix up paths that are relative to input_dir instead of output_dir - output_dir <- path_real(output_dir) - input_abs_path <- purrr::map_chr(src, ~ path_abs(., input_dir)) - up_path <- !abs_src & path_has_parent(input_abs_path, output_dir) - if (any(up_path)) { - purrr::walk2( - img[up_path], - path_rel(path_abs(src[up_path], input_dir), output_dir), + path_rel(src[abs_src], input_path), xml2::xml_set_attr, attr = "src" ) diff --git a/tests/testthat/test-tweak-page.R b/tests/testthat/test-tweak-page.R index fe8c3fbeb..5db30340c 100644 --- a/tests/testthat/test-tweak-page.R +++ b/tests/testthat/test-tweak-page.R @@ -125,7 +125,7 @@ test_that("h1 section headings adjusted to h2 (and so on)", {