R Under development (unstable) (2024-03-03 r86036 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > # only run this when NOT_CRAN is true (e.g., on Travis CI) > if (Sys.getenv('NOT_CRAN') == 'true') local({ + all_files = function() { + list.files('rmd', all.files = TRUE, full.names = TRUE) + } + files1 = all_files() + on.exit(unlink(setdiff(all_files(), files1), recursive = TRUE), add = TRUE) + + for (f in list.files('rmd', '[.]Rmd$', full.names = TRUE)) { + rmarkdown::render(f, envir = globalenv(), quiet = TRUE) + } + + # split by section works correctly + ## id is used for html file name + sections_files = c("section-1.html", "subsection-1.html", "section-2.html", "sub2.html") + if (any(!file.exists(file.path("rmd", sections_files)))) + stop("Failed to generate sections files") + ## reference is working correctly (see #787) + if (!any(xfun::read_utf8("rmd/subsection-1.html") == '

See chapter 2 now at 2

')) + stop('Failed to reference section when split by sections') + if (!any(xfun::read_utf8("rmd/sub2.html") == '

See figure 2.1

')) + stop('Failed to reference figure when split by sections') + + # Check equation label are working + if (!any(readLines('rmd/equation-label.html') == 'y \\in \\mathbb{Z} \\tag{2}')) { + stop('Failed to render the equation label in equation-label.Rmd') + } + + # footnotes are parsed and moved correctly + ## deleted from last section + if (any(grepl('
', readLines("rmd/subsection-footnotes-2.html")))) { + stop('Failed to parse and delete the footnotes in parse-footnotes.Rmd') + } + ## footnote one is moved to first section + if (!any(readLines('rmd/test-footnote.html') == '
') || + !any(grepl('id="fn1"', readLines('rmd/test-footnote.html')))) { + stop('Failed to move the footnotes back to subsection 1 in parse-footnotes.Rmd') + } + ## footnote two is moved to second section + if (!any(readLines('rmd/subsection-footnotes-1.html') == '
') || + !any(grepl('id="fn2"', readLines('rmd/subsection-footnotes-1.html')))) { + stop('Failed to move the footnotes back to subsection 1 in parse-footnotes.Rmd') + } + # multiline footnote is also moved + if (!any(readLines('rmd/subsection-footnotes-1.html') == '
') || + !any(grepl('id="fn3"', readLines('rmd/subsection-footnotes-1.html')))) { + stop('Failed to move the footnotes back to subsection 1 in parse-footnotes.Rmd') + } + + # number sections now works in markdown_document2 + content = readLines("rmd/number-sections.md") + if (!any(grepl("(## )?1.1 subsection 1", content)) || + !any(grepl("2.1", content))) { + stop("Something wrong in number-sections.Rmd") + } + + # lua filter for custom environment + local({ + reg_env = sprintf('
', paste(bookdown:::all_math_env, collapse = "|")) + if (!any(grepl(reg_env, readLines("rmd/custom-environments.html")))) + stop("Lua filter for custom environment fails to create divs") + i18n = xfun::in_dir("rmd", bookdown:::load_config()$language$label$solution) + reg_span = sprintf('%s\\. ', i18n) + if (!any(grepl(reg_span, readLines("rmd/custom-environments.html")))) + stop("Lua filter for custom environment fails to apply correct translation") + }) + + # tests also some specific format + rmarkdown::render( + "rmd/custom-environments.Rmd", output_format = "bookdown::pdf_document2", + envir = globalenv(), quiet = TRUE + ) + if (!file.exists("rmd/custom-environments.pdf")) + stop("Failed to render custom-environments for pdf document") + + }) > > proc.time() user system elapsed 0.23 0.03 0.25