Creates accessible html ioslides presentations using R markdown's
ioslides_presentation argument to
render. Zip archives of the html files may be
created.
rmd2ioslides(
x,
zip = if (length(x) == 1 & !add) FALSE else TRUE,
pdf = FALSE,
zip_pdf = zip,
pdf_args = list(),
add = FALSE,
quiet = TRUE,
rm_html = FALSE,
rm_pdf = FALSE,
inc_rmd = FALSE,
params = NULL,
...
)In addition to creating the html files, and perhaps zip files, a list containing the following (character vector) components is returned invisibly:
(absolute) paths and file names of the files added to a zip file.
(relative) paths and names of all the zip files.
A character vector containing the names (no extension) of
the .Rmd files 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 .html
files are created in the same directory as their respective .Rmd
file. If x is missing then an html file is created from each of
the .Rmd files in the current working directory.
A logical scalar or character vector indicating whether html
files should be put into a zip archive. If zip = FALSE then no
zip archive is created. Otherwise, an archive is created in each unique
directory involved in x. If zip = TRUE then any archive
created has the name accessr_ioslides.zip. If zip is 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 = TRUE then each html file is
printed to a PDF file using chrome_print.
Google Chrome (or an alternative browser specified in pdf_args by
the browser argument to chrome_print must
be installed prior to use of this option. An error message like
Error in servr::random_port(NULL) : Cannot find an available TCP
port means that the random_port function in the servr
package could not find an internet connection that Chrome considers
secure. Perhaps you are using a coffee shop's wifi.
As zip, but relates to the
creation of zip archives for any PDF files created. If
zip_pdf = TRUE then each archive is named
accessr_ioslides_pdf.zip.
A list of arguments passed to
chrome_print. input cannot be passed
because it is set inside rmd2html.
A logical scalar that determines what happens if the output
zip file already exists. If add = TRUE then files are added to the
zip file and if add = FALSE then the zip file is deleted and will
only contain newly-created files.
Argument of the same name passed to
render to determine what is printed during
rendering from knitr.
A logical scalar. If rm_html = TRUE and a zip archive
of html files is produced then the individual html files are deleted.
Otherwise, they are not deleted.
A logical scalar. If rm_pdf = TRUE and a zip archive
of pdf files is produced then the individual pdf files are deleted.
Otherwise, they are not deleted.
A logical scalar. If inc_rmd = TRUE then the source
Rmd files are included in the zip file created. Otherwise, they are not
included.
A list of named parameters to pass as the argument
params to render.
Additional arguments passed to
ioslides_presentation. Pass (the default)
slide_level = 1 if you want a level one header # to create a new
non-segue slide.
If css = "black" is passed then accessr's css file
black.css is used, which results in black text being used in the
slides.
This function is not vectorised with respect to arguments in
....
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.
rmd2many, rmd2word,
rmd2slidy, rmd2html for other output formats.
# 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)
}
Run the code above in your browser using DataLab