Creates accessible html ioslides presentations using R markdown's
ioslides_presentation argument to
render. Zip archives of the html files may be
created.
Arguments
- x
A character vector containing the names (no extension) of the
.Rmdfiles to convert if they are in the current working directory, or paths to the files, either absolute or relative to the current working directory, e.g.,DIRECTORY/file1. The.htmlfiles are created in the same directory as their respective.Rmdfile. Ifxis missing then an html file is created from each of the.Rmdfiles in the current working directory.- zip
A logical scalar or character vector indicating whether html files should be put into a zip archive. If
zip = FALSEthen no zip archive is created. Otherwise, an archive is created in each unique directory involved inx. Ifzip = TRUEthen any archive created has the nameaccessr_ioslides.zip. Ifzipis a character vector of zip file names (no extension) then these names are used to name the zip archives. The names are recycled to the length of the number of unique directories, if necessary.A logical scalar. If
pdf = TRUEthen each html file is printed to a PDF file usingchrome_print. Google Chrome (or an alternative browser specified inpdf_argsby thebrowserargument tochrome_printmust be installed prior to use of this option. An error message likeError in servr::random_port(NULL) : Cannot find an available TCP portmeans that therandom_portfunction in theservrpackage could not find an internet connection that Chrome considers secure. Perhaps you are using a coffee shop's wifi.- zip_pdf
As
zip, but relates to the creation of zip archives for any PDF files created. Ifzip_pdf = TRUEthen each archive is namedaccessr_ioslides_pdf.zip.- pdf_args
A list of arguments passed to
chrome_print.inputcannot be passed because it is set insidermd2html.- add
A logical scalar that determines what happens if the output zip file already exists. If
add = TRUEthen files are added to the zip file and ifadd = FALSEthen the zip file is deleted and will only contain newly-created files.- quiet
Argument of the same name passed to
renderto determine what is printed during rendering from knitr.- rm_html
A logical scalar. If
rm_html = TRUEand a zip archive of html files is produced then the individual html files are deleted. Otherwise, they are not deleted.- rm_pdf
A logical scalar. If
rm_pdf = TRUEand a zip archive of pdf files is produced then the individual pdf files are deleted. Otherwise, they are not deleted.- inc_rmd
A logical scalar. If
inc_rmd = TRUEthen the source Rmd files are included in the zip file created. Otherwise, they are not included.- params
A list of named parameters to pass as the argument
paramstorender.- ...
Additional arguments passed to
ioslides_presentation. Pass (the default)slide_level = 1if you want a level one header # to create a new non-segue slide.If
css = "black"is passed thenaccessr's css fileblack.cssis used, which results in black text being used in the slides.This function is not vectorised with respect to arguments in
....
Value
In addition to creating the html files, and perhaps zip files, a list containing the following (character vector) components is returned invisibly:
- files
(absolute) paths and file names of the files added to a zip file.
- zips
(relative) paths and names of all the zip files.
Details
Information such as title, author, lang etc in
the YAML header in the Rmd file are used but output is ignored.
The simplest setup is to have the .Rmd files in the current
working directory, in which case rmd2ioslides() will create ioslides
presentations from all these Rmd files, but the .Rmd files may be
in different directories.
The render function, with the argument
output_file = ioslides_presentation
creates the ioslides html files.
The function ioslides_presentation has an
argument slide_level that sets the header level used as a slide
separator. The Lua filter ioslides_presentation.lua in
the rmarkdown package uses
any content between headers of level slide_level to create a segue
slide, which has a grey background and is intended only to contain a section
heading.
In particular, under the default, slide_level = 2, content
between a level one header # and the next level two header ## is formatted
as a separate grey segue slide. If we do not want segue slides then we must
avoid using level one headers. However, for reasons of document
accessibility, we may want to use level one headers to separate slides.
For example, if we wish to create an ioslides presentation and a Word
document from the same source Rmd file then the Word document will only meet
fully accessibility requirements if the headings in the document start at
level one.
In rmarkdown version 2.26, passing slide_level = 1 to
ioslides_presentation does not force a new
non-segue slide when a level one header # is used: it places
all content between # and the next ## on a grey segue slide and the
behaviour content of the resulting slides is not as intended. Passing
slide_level = 1 to rmd2ioslides() replaces rmarkdown's Lua filter
ioslides_presentation.lua with one that has been modified, so that
passing slide_level = 1 will start a new non-segue slide.
A modified default.css css file is also used
that adjusts the font sizes for the header levels accordingly, so that the
level one header has a larger font than the level two header.
For values of slide_level greater than or equal to 2,
ioslides_presentation will behave as usual.
If slide_level is not supplied then slide_level = 1 is used.
Examples
# Create an ioslides presentation from example.Rmd
got_hux <- requireNamespace("huxtable", quietly = TRUE)
got_flex <- requireNamespace("flextable", quietly = TRUE)
got_pandoc <- rmarkdown::pandoc_available("1.14")
got_all <- got_hux && got_flex && got_pandoc
# This example needs packages huxtable and flextable
if (got_all) {
ex_file <- system.file(package = "accessr", "examples", "example.Rmd")
file.copy(ex_file, tdir <- tempdir(check = TRUE), overwrite = TRUE)
ex_file <- list.files(tdir, pattern = "example.Rmd", full.names = TRUE)
ex_file <- sub(".Rmd", "", ex_file)
rmd2ioslides(ex_file)
}