blob: c1c1ff25d42ea2972a6daac1bed118872f5ff439 [file] [log] [blame]
JJ Allaired708ef02016-01-30 14:30:26 -05001% Generated by roxygen2: do not edit by hand
junkkad4b3a162015-03-16 07:49:11 +01002% Please edit documentation in R/revealjs_presentation.R
JJ Allaire2ec40242014-09-15 09:18:39 -04003\name{revealjs_presentation}
4\alias{revealjs_presentation}
5\title{Convert to a reveal.js presentation}
6\usage{
Atsushi Yasumoto7053f452020-02-15 00:08:46 +09007revealjs_presentation(
8 incremental = FALSE,
9 center = FALSE,
10 slide_level = 2,
Christophe Dervieuxaa008e42021-09-23 16:52:37 +020011 toc = FALSE,
12 toc_depth = 3,
Atsushi Yasumoto7053f452020-02-15 00:08:46 +090013 fig_width = 8,
14 fig_height = 6,
15 fig_retina = if (!fig_caption) 2,
16 fig_caption = FALSE,
Marc Kupietzf667b982026-08-08 17:16:28 +020017 self_contained = FALSE,
18 theme = "ids",
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +020019 transition = "convex",
20 background_transition = "fade",
Atsushi Yasumoto7053f452020-02-15 00:08:46 +090021 reveal_options = NULL,
Marc Kupietz03dbc5d2026-08-21 15:44:25 +020022 reveal_plugins = c("notes", "search", "menu", "zoom"),
Atsushi Yasumoto7053f452020-02-15 00:08:46 +090023 highlight = "default",
24 mathjax = "default",
25 template = "default",
26 css = NULL,
27 includes = NULL,
28 keep_md = FALSE,
29 lib_dir = NULL,
30 pandoc_args = NULL,
31 extra_dependencies = NULL,
32 md_extensions = NULL,
33 ...
34)
JJ Allaire2ec40242014-09-15 09:18:39 -040035}
36\arguments{
37\item{incremental}{\code{TRUE} to render slide bullets incrementally. Note
38that if you want to reverse the default incremental behavior for an
JJ Allaire29152752016-03-08 15:06:38 -050039individual bullet you can precede it with \code{>}. For example:
Christophe Dervieux37782092023-03-24 17:36:16 +010040\emph{\verb{> - Bullet Text}}. See more in
41\href{https://pandoc.org/MANUAL.html#incremental-lists}{Pandoc's Manual}}
JJ Allaire2ec40242014-09-15 09:18:39 -040042
43\item{center}{\code{TRUE} to vertically center content on slides}
44
JJ Allaire4c178052016-01-30 19:35:39 -050045\item{slide_level}{Level of heading to denote individual slides. If
46\code{slide_level} is 2 (the default), a two-dimensional layout will be
47produced, with level 1 headers building horizontally and level 2 headers
48building vertically. It is not recommended that you use deeper nesting of
49section levels with reveal.js.}
50
Christophe Dervieuxaa008e42021-09-23 16:52:37 +020051\item{toc}{\code{TRUE} to include a table of contents in the output (only
52level 1 headers will be included in the table of contents).}
53
54\item{toc_depth}{Depth of headers to include in table of contents}
55
JJ Allaire2ec40242014-09-15 09:18:39 -040056\item{fig_width}{Default width (in inches) for figures}
57
Atsushi Yasumoto7053f452020-02-15 00:08:46 +090058\item{fig_height}{Default height (in inches) for figures}
JJ Allaire2ec40242014-09-15 09:18:39 -040059
JJ Allaire82a8dee2016-07-12 10:25:36 -040060\item{fig_retina}{Scaling to perform for retina displays (defaults to 2, which
61currently works for all widely used retina displays). Set to \code{NULL} to
62prevent retina scaling. Note that this will always be \code{NULL} when
63\code{keep_md} is specified (this is because \code{fig_retina} relies on
64outputting HTML directly into the markdown document).}
JJ Allaire2ec40242014-09-15 09:18:39 -040065
66\item{fig_caption}{\code{TRUE} to render figures with captions}
67
Atsushi Yasumoto7053f452020-02-15 00:08:46 +090068\item{self_contained}{Whether to generate a full LaTeX document (\code{TRUE})
69or just the body of a LaTeX document (\code{FALSE}). Note the LaTeX
70document is an intermediate file unless \code{keep_tex = TRUE}.}
JJ Allaire2ec40242014-09-15 09:18:39 -040071
Marc Kupietzf667b982026-08-08 17:16:28 +020072\item{theme}{Visual theme ("ids", "simple", "dark", "black", "sky", "beige", "serif", "solarized", "blood", "moon", "night", "league", or "white")}
JJ Allaire2ec40242014-09-15 09:18:39 -040073
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +020074\item{transition}{Slide transition (
75"convex", "fade", "slide", "concave", "zoom", or "none"
76)}
junkkad4b3a162015-03-16 07:49:11 +010077
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +020078\item{background_transition}{Slide background-transition (
79"convex", "fade", "slide", "concave", "zoom", or "none"
80)}
JJ Allaire2ec40242014-09-15 09:18:39 -040081
JJ Allaire35c0b492017-02-10 09:30:24 -050082\item{reveal_options}{Additional options to specify for reveal.js (see
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +020083\url{https://revealjs.com/config/} for details). Options for plugins can also
84be passed, using plugin name as first level key (e.g \code{list(slideNumber = FALSE, menu = list(number = TRUE))}).}
JJ Allaire37f45b72016-01-30 18:17:45 -050085
JJ Allaire35c0b492017-02-10 09:30:24 -050086\item{reveal_plugins}{Reveal plugins to include. Available plugins include
Marc Kupietz03dbc5d2026-08-21 15:44:25 +020087"notes", "search", "zoom", "chalkboard", and "menu". Defaults to
88\code{c("notes", "search", "menu", "zoom")}; pass \code{NULL} to render without
89any plugins. Note that \code{self_contained} must be set to \code{FALSE} in order
90to use Reveal plugins.}
JJ Allaire82a8dee2016-07-12 10:25:36 -040091
Christophe Dervieux37782092023-03-24 17:36:16 +010092\item{highlight}{Syntax highlighting style passed to Pandoc.
93
94 Supported built-in styles include "default", "tango", "pygments", "kate",
95 "monochrome", "espresso", "zenburn", "haddock", and "breezedark".
96
97 Two custom styles are also included, "arrow", an accessible color scheme,
98 and "rstudio", which mimics the default IDE theme. Alternatively, supply a
99 path to a \samp{.theme} file to use
100 \href{https://pandoc.org/MANUAL.html#syntax-highlighting}{a custom Pandoc
101 style}. Note that custom theme requires Pandoc 2.0+.
102
103 Pass \code{NULL} to prevent syntax highlighting.}
JJ Allaire2ec40242014-09-15 09:18:39 -0400104
Atsushi Yasumoto7053f452020-02-15 00:08:46 +0900105\item{mathjax}{Include mathjax. The "default" option uses an https URL from a
106MathJax CDN. The "local" option uses a local version of MathJax (which is
107copied into the output directory). You can pass an alternate URL or pass
108\code{NULL} to exclude MathJax entirely.}
JJ Allaire2ec40242014-09-15 09:18:39 -0400109
JJ Allaire4c178052016-01-30 19:35:39 -0500110\item{template}{Pandoc template to use for rendering. Pass "default" to use
111the rmarkdown package default template; pass \code{NULL} to use pandoc's
112built-in template; pass a path to use a custom template that you've
113created. Note that if you don't use the "default" template then some
114features of \code{revealjs_presentation} won't be available (see the
115Templates section below for more details).}
JJ Allaire2ec40242014-09-15 09:18:39 -0400116
Christophe Dervieux21239cf2021-09-15 15:34:01 +0200117\item{css}{CSS and/or Sass files to include. Files with an extension of .sass
118or .scss are compiled to CSS via \code{sass::sass()}. Also, if \code{theme} is a
119\code{\link[bslib:bs_theme]{bslib::bs_theme()}} object, Sass code may reference the relevant Bootstrap
120Sass variables, functions, mixins, etc.}
JJ Allairefad55232015-10-19 07:47:26 -0400121
JJ Allaire2ec40242014-09-15 09:18:39 -0400122\item{includes}{Named list of additional content to include within the
Atsushi Yasumoto7053f452020-02-15 00:08:46 +0900123document (typically created using the \code{\link[rmarkdown]{includes}} function).}
JJ Allaire2ec40242014-09-15 09:18:39 -0400124
125\item{keep_md}{Keep the markdown file generated by knitting.}
126
127\item{lib_dir}{Directory to copy dependent HTML libraries (e.g. jquery,
JJ Allaire091cb122016-02-09 13:04:23 -0500128bootstrap, etc.) into. By default this will be the name of the document with
Marc Kupietzf667b982026-08-08 17:16:28 +0200129\verb{_files} appended to it.}
JJ Allaire2ec40242014-09-15 09:18:39 -0400130
131\item{pandoc_args}{Additional command line options to pass to pandoc}
JJ Allaire8d1c2f42016-01-30 14:56:45 -0500132
JJ Allaire35c0b492017-02-10 09:30:24 -0500133\item{extra_dependencies}{Additional function arguments to pass to the base R
134Markdown HTML output formatter \code{\link[rmarkdown:html_document_base]{rmarkdown::html_document_base()}}.}
JJ Allaire375805c2016-11-15 08:56:43 -0500135
Atsushi Yasumoto7053f452020-02-15 00:08:46 +0900136\item{md_extensions}{Markdown extensions to be added or removed from the
Christophe Dervieux37782092023-03-24 17:36:16 +0100137default definition of R Markdown. See the \code{\link[rmarkdown]{rmarkdown_format}} for
Atsushi Yasumoto7053f452020-02-15 00:08:46 +0900138additional details.}
139
JJ Allaire8d1c2f42016-01-30 14:56:45 -0500140\item{...}{Ignored}
JJ Allaire2ec40242014-09-15 09:18:39 -0400141}
142\value{
christophe dervieuxd26add32021-09-23 16:55:00 +0200143R Markdown output format to pass to \code{\link[rmarkdown:render]{rmarkdown::render()}}
JJ Allaire2ec40242014-09-15 09:18:39 -0400144}
145\description{
146Format for converting from R Markdown to a reveal.js presentation.
147}
148\details{
JJ Allaire4c178052016-01-30 19:35:39 -0500149In reveal.js presentations you can use level 1 or level 2 headers for slides.
150If you use a mix of level 1 and level 2 headers then a two-dimensional layout
151will be produced, with level 1 headers building horizontally and level 2
152headers building vertically.
JJ Allaire2ec40242014-09-15 09:18:39 -0400153
JJ Allaire4c178052016-01-30 19:35:39 -0500154For additional documentation on using revealjs presentations see
christophe dervieuxd26add32021-09-23 16:55:00 +0200155\url{https://github.com/rstudio/revealjs}
JJ Allaire2ec40242014-09-15 09:18:39 -0400156}
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200157\section{About plugins}{
158\subsection{Built-in plugins with reveal.js}{
159\subsection{Zoom}{
160
161When activated, ALT + Click can be used to zoom on a slide.
162}
163
164\subsection{Notes}{
165
166Show a \href{https://revealjs.com/speaker-view/}{speaker view} in a separated
167window. This speaker view contains a timer, current slide, next slide, and
168speaker notes. It also duplicate the window to have presentation mode
169synchronized with main presentation.
170
Christophe Dervieux37782092023-03-24 17:36:16 +0100171Use
172
173\if{html}{\out{<div class="sourceCode markdown">}}\preformatted{::: notes
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200174Content of speaker notes
175:::
176}\if{html}{\out{</div>}}
177
178to create notes only viewable in presentation mode.
179}
180
181\subsection{Search}{
182
183When opt-in, it is possible to show a search box when pressing \code{CTRL + SHIFT + F}. It will seach in the whole presentation, and highlight matched words. The
184matches will also be highlighted in overview mode (pressing ESC to see all
185slides in one scrollable view)
186}
187
188}
189
190\subsection{Menu}{
191
192A slideout menu plugin for Reveal.js to quickly jump to any slide by title.
193
Christophe Dervieux37782092023-03-24 17:36:16 +0100194Version is
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200195currently used and documentation for configurations can be found at
196\href{https://github.com/denehyg/reveal.js-menu/blob/2.1.0/README.md}{denehyg/reveal.js-menu}
197\subsection{Known limitations}{
198
199Some configurations cannot be modified in the current template:
200\itemize{
201\item \code{loadIcons: false} the fontawesome icons are loaded by \pkg{rmarkdown}
202when this plugin is used
203\item \code{custom: false}
204\item \code{themes: false}
205\item \code{transitions: false}
206}
207}
208
209}
210
211\subsection{Chalkboard}{
212
213A plugin adding a chalkboard and slide annotation
214
Christophe Dervieux37782092023-03-24 17:36:16 +0100215Version is
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200216currently used and documentation for configurations can be found at
Marc Kupietzf667b982026-08-08 17:16:28 +0200217\href{https://github.com/rajgoel/reveal.js-plugins/tree/4.2.5/4.1.5/chalkboard}{rajgoel/reveal.js-plugins}
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200218
219By default, chalkboard and annotations modes will be accessible using keyboard
220shortcuts, respectively, pressing B, or pressing C.
Christophe Dervieux37782092023-03-24 17:36:16 +0100221In addition, buttons on the bottom left can be added by using the following
222
223\if{html}{\out{<div class="sourceCode yaml">}}\preformatted{reveal_plugins:
Christophe Dervieuxe1893ae2021-10-07 17:09:02 +0200224 - chalkboard
225reveal_options:
226 chalkboard:
227 toggleNotesButton: true
228 toggleChalkboardButton: true
229}\if{html}{\out{</div>}}
230}
231}
232
JJ Allaire2ec40242014-09-15 09:18:39 -0400233\examples{
234\dontrun{
235
236library(rmarkdown)
Marc Kupietz03dbc5d2026-08-21 15:44:25 +0200237library(revealjs.ids)
JJ Allaire2ec40242014-09-15 09:18:39 -0400238
239# simple invocation
240render("pres.Rmd", revealjs_presentation())
241
242# specify an option for incremental rendering
243render("pres.Rmd", revealjs_presentation(incremental = TRUE))
244}
JJ Allaired708ef02016-01-30 14:30:26 -0500245
JJ Allaire2ec40242014-09-15 09:18:39 -0400246}