Creates accessible html ioslides presentations using R markdown's
ioslides_presentation
argument to
render
. Zip archives of the html files may be
created.
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
...
.
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.
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.
# 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)
}