| JJ Allaire | d708ef0 | 2016-01-30 14:30:26 -0500 | [diff] [blame] | 1 | % Generated by roxygen2: do not edit by hand |
| junkka | d4b3a16 | 2015-03-16 07:49:11 +0100 | [diff] [blame] | 2 | % Please edit documentation in R/revealjs_presentation.R |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 3 | \name{revealjs_presentation} |
| 4 | \alias{revealjs_presentation} |
| 5 | \title{Convert to a reveal.js presentation} |
| 6 | \usage{ |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 7 | revealjs_presentation( |
| 8 | incremental = FALSE, |
| 9 | center = FALSE, |
| 10 | slide_level = 2, |
| Marc Kupietz | 499082c | 2026-08-30 15:26:44 +0300 | [diff] [blame] | 11 | chapter_numbering = TRUE, |
| Christophe Dervieux | aa008e4 | 2021-09-23 16:52:37 +0200 | [diff] [blame] | 12 | toc = FALSE, |
| 13 | toc_depth = 3, |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 14 | fig_width = 8, |
| 15 | fig_height = 6, |
| 16 | fig_retina = if (!fig_caption) 2, |
| 17 | fig_caption = FALSE, |
| Marc Kupietz | f667b98 | 2026-08-08 17:16:28 +0200 | [diff] [blame] | 18 | self_contained = FALSE, |
| 19 | theme = "ids", |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 20 | transition = "convex", |
| 21 | background_transition = "fade", |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 22 | reveal_options = NULL, |
| Marc Kupietz | 03dbc5d | 2026-08-21 15:44:25 +0200 | [diff] [blame] | 23 | reveal_plugins = c("notes", "search", "menu", "zoom"), |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 24 | highlight = "default", |
| Marc Kupietz | 725acd1 | 2026-08-28 14:03:21 +0300 | [diff] [blame] | 25 | df_print = "kable", |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 26 | mathjax = "default", |
| 27 | template = "default", |
| 28 | css = NULL, |
| 29 | includes = NULL, |
| 30 | keep_md = FALSE, |
| 31 | lib_dir = NULL, |
| 32 | pandoc_args = NULL, |
| 33 | extra_dependencies = NULL, |
| 34 | md_extensions = NULL, |
| 35 | ... |
| 36 | ) |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 37 | } |
| 38 | \arguments{ |
| 39 | \item{incremental}{\code{TRUE} to render slide bullets incrementally. Note |
| 40 | that if you want to reverse the default incremental behavior for an |
| JJ Allaire | 2915275 | 2016-03-08 15:06:38 -0500 | [diff] [blame] | 41 | individual bullet you can precede it with \code{>}. For example: |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 42 | \emph{\verb{> - Bullet Text}}. See more in |
| 43 | \href{https://pandoc.org/MANUAL.html#incremental-lists}{Pandoc's Manual}} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 44 | |
| 45 | \item{center}{\code{TRUE} to vertically center content on slides} |
| 46 | |
| JJ Allaire | 4c17805 | 2016-01-30 19:35:39 -0500 | [diff] [blame] | 47 | \item{slide_level}{Level of heading to denote individual slides. If |
| 48 | \code{slide_level} is 2 (the default), a two-dimensional layout will be |
| 49 | produced, with level 1 headers building horizontally and level 2 headers |
| 50 | building vertically. It is not recommended that you use deeper nesting of |
| 51 | section levels with reveal.js.} |
| 52 | |
| Marc Kupietz | 499082c | 2026-08-30 15:26:44 +0300 | [diff] [blame] | 53 | \item{chapter_numbering}{\code{TRUE} (the default) numbers the \verb{#} chapter |
| 54 | headings automatically ("1. Introduction", "2. Methods", ...), skipping |
| 55 | references, appendix and thank-you chapters. \code{FALSE} turns the numbering |
| 56 | off -- headings keep exactly what was typed, including any manually |
| 57 | typed numbers. A number starts the enumeration at that value: |
| 58 | \code{chapter_numbering = 5} numbers the first chapter "5." (useful for |
| 59 | continuation decks).} |
| 60 | |
| Christophe Dervieux | aa008e4 | 2021-09-23 16:52:37 +0200 | [diff] [blame] | 61 | \item{toc}{\code{TRUE} to include a table of contents in the output (only |
| 62 | level 1 headers will be included in the table of contents).} |
| 63 | |
| 64 | \item{toc_depth}{Depth of headers to include in table of contents} |
| 65 | |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 66 | \item{fig_width}{Default width (in inches) for figures} |
| 67 | |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 68 | \item{fig_height}{Default height (in inches) for figures} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 69 | |
| JJ Allaire | 82a8dee | 2016-07-12 10:25:36 -0400 | [diff] [blame] | 70 | \item{fig_retina}{Scaling to perform for retina displays (defaults to 2, which |
| 71 | currently works for all widely used retina displays). Set to \code{NULL} to |
| 72 | prevent retina scaling. Note that this will always be \code{NULL} when |
| 73 | \code{keep_md} is specified (this is because \code{fig_retina} relies on |
| 74 | outputting HTML directly into the markdown document).} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 75 | |
| 76 | \item{fig_caption}{\code{TRUE} to render figures with captions} |
| 77 | |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 78 | \item{self_contained}{Whether to generate a full LaTeX document (\code{TRUE}) |
| 79 | or just the body of a LaTeX document (\code{FALSE}). Note the LaTeX |
| 80 | document is an intermediate file unless \code{keep_tex = TRUE}.} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 81 | |
| Marc Kupietz | 9fdf0f7 | 2026-08-28 07:04:25 +0300 | [diff] [blame] | 82 | \item{theme}{Visual theme. The dedicated IDS corporate design theme |
| 83 | ("ids") is the default and the only supported theme.} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 84 | |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 85 | \item{transition}{Slide transition ( |
| 86 | "convex", "fade", "slide", "concave", "zoom", or "none" |
| 87 | )} |
| junkka | d4b3a16 | 2015-03-16 07:49:11 +0100 | [diff] [blame] | 88 | |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 89 | \item{background_transition}{Slide background-transition ( |
| 90 | "convex", "fade", "slide", "concave", "zoom", or "none" |
| 91 | )} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 92 | |
| JJ Allaire | 35c0b49 | 2017-02-10 09:30:24 -0500 | [diff] [blame] | 93 | \item{reveal_options}{Additional options to specify for reveal.js (see |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 94 | \url{https://revealjs.com/config/} for details). Options for plugins can also |
| 95 | be passed, using plugin name as first level key (e.g \code{list(slideNumber = FALSE, menu = list(number = TRUE))}).} |
| JJ Allaire | 37f45b7 | 2016-01-30 18:17:45 -0500 | [diff] [blame] | 96 | |
| JJ Allaire | 35c0b49 | 2017-02-10 09:30:24 -0500 | [diff] [blame] | 97 | \item{reveal_plugins}{Reveal plugins to include. Available plugins include |
| Marc Kupietz | 03dbc5d | 2026-08-21 15:44:25 +0200 | [diff] [blame] | 98 | "notes", "search", "zoom", "chalkboard", and "menu". Defaults to |
| 99 | \code{c("notes", "search", "menu", "zoom")}; pass \code{NULL} to render without |
| 100 | any plugins. Note that \code{self_contained} must be set to \code{FALSE} in order |
| 101 | to use Reveal plugins.} |
| JJ Allaire | 82a8dee | 2016-07-12 10:25:36 -0400 | [diff] [blame] | 102 | |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 103 | \item{highlight}{Syntax highlighting style passed to Pandoc. |
| 104 | |
| 105 | Supported built-in styles include "default", "tango", "pygments", "kate", |
| 106 | "monochrome", "espresso", "zenburn", "haddock", and "breezedark". |
| 107 | |
| 108 | Two custom styles are also included, "arrow", an accessible color scheme, |
| 109 | and "rstudio", which mimics the default IDE theme. Alternatively, supply a |
| 110 | path to a \samp{.theme} file to use |
| 111 | \href{https://pandoc.org/MANUAL.html#syntax-highlighting}{a custom Pandoc |
| 112 | style}. Note that custom theme requires Pandoc 2.0+. |
| 113 | |
| 114 | Pass \code{NULL} to prevent syntax highlighting.} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 115 | |
| Marc Kupietz | 725acd1 | 2026-08-28 14:03:21 +0300 | [diff] [blame] | 116 | \item{df_print}{Method used to print data frames in the document. The |
| 117 | default, \code{"kable"}, renders data frames as plain HTML tables styled by |
| 118 | the presentation theme, so that results look reasonable on slides without |
| 119 | any extra code. Since \code{"kable"} prints all rows, consider showing only |
| 120 | \code{head(x)} on slides with many-rowed results. Other supported methods are |
| 121 | \code{"default"} (plain text output), \code{"tibble"}, and \code{"paged"} (an |
| 122 | interactive paged table, see \code{\link[rmarkdown:html_document]{rmarkdown::html_document()}}).} |
| 123 | |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 124 | \item{mathjax}{Include mathjax. The "default" option uses an https URL from a |
| 125 | MathJax CDN. The "local" option uses a local version of MathJax (which is |
| 126 | copied into the output directory). You can pass an alternate URL or pass |
| 127 | \code{NULL} to exclude MathJax entirely.} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 128 | |
| JJ Allaire | 4c17805 | 2016-01-30 19:35:39 -0500 | [diff] [blame] | 129 | \item{template}{Pandoc template to use for rendering. Pass "default" to use |
| 130 | the rmarkdown package default template; pass \code{NULL} to use pandoc's |
| 131 | built-in template; pass a path to use a custom template that you've |
| 132 | created. Note that if you don't use the "default" template then some |
| 133 | features of \code{revealjs_presentation} won't be available (see the |
| 134 | Templates section below for more details).} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 135 | |
| Christophe Dervieux | 21239cf | 2021-09-15 15:34:01 +0200 | [diff] [blame] | 136 | \item{css}{CSS and/or Sass files to include. Files with an extension of .sass |
| 137 | or .scss are compiled to CSS via \code{sass::sass()}. Also, if \code{theme} is a |
| 138 | \code{\link[bslib:bs_theme]{bslib::bs_theme()}} object, Sass code may reference the relevant Bootstrap |
| 139 | Sass variables, functions, mixins, etc.} |
| JJ Allaire | fad5523 | 2015-10-19 07:47:26 -0400 | [diff] [blame] | 140 | |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 141 | \item{includes}{Named list of additional content to include within the |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 142 | document (typically created using the \code{\link[rmarkdown]{includes}} function).} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 143 | |
| 144 | \item{keep_md}{Keep the markdown file generated by knitting.} |
| 145 | |
| 146 | \item{lib_dir}{Directory to copy dependent HTML libraries (e.g. jquery, |
| JJ Allaire | 091cb12 | 2016-02-09 13:04:23 -0500 | [diff] [blame] | 147 | bootstrap, etc.) into. By default this will be the name of the document with |
| Marc Kupietz | f667b98 | 2026-08-08 17:16:28 +0200 | [diff] [blame] | 148 | \verb{_files} appended to it.} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 149 | |
| 150 | \item{pandoc_args}{Additional command line options to pass to pandoc} |
| JJ Allaire | 8d1c2f4 | 2016-01-30 14:56:45 -0500 | [diff] [blame] | 151 | |
| JJ Allaire | 35c0b49 | 2017-02-10 09:30:24 -0500 | [diff] [blame] | 152 | \item{extra_dependencies}{Additional function arguments to pass to the base R |
| 153 | Markdown HTML output formatter \code{\link[rmarkdown:html_document_base]{rmarkdown::html_document_base()}}.} |
| JJ Allaire | 375805c | 2016-11-15 08:56:43 -0500 | [diff] [blame] | 154 | |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 155 | \item{md_extensions}{Markdown extensions to be added or removed from the |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 156 | default definition of R Markdown. See the \code{\link[rmarkdown]{rmarkdown_format}} for |
| Atsushi Yasumoto | 7053f45 | 2020-02-15 00:08:46 +0900 | [diff] [blame] | 157 | additional details.} |
| 158 | |
| JJ Allaire | 8d1c2f4 | 2016-01-30 14:56:45 -0500 | [diff] [blame] | 159 | \item{...}{Ignored} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 160 | } |
| 161 | \value{ |
| christophe dervieux | d26add3 | 2021-09-23 16:55:00 +0200 | [diff] [blame] | 162 | R Markdown output format to pass to \code{\link[rmarkdown:render]{rmarkdown::render()}} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 163 | } |
| 164 | \description{ |
| 165 | Format for converting from R Markdown to a reveal.js presentation. |
| 166 | } |
| 167 | \details{ |
| JJ Allaire | 4c17805 | 2016-01-30 19:35:39 -0500 | [diff] [blame] | 168 | In reveal.js presentations you can use level 1 or level 2 headers for slides. |
| 169 | If you use a mix of level 1 and level 2 headers then a two-dimensional layout |
| 170 | will be produced, with level 1 headers building horizontally and level 2 |
| 171 | headers building vertically. |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 172 | |
| JJ Allaire | 4c17805 | 2016-01-30 19:35:39 -0500 | [diff] [blame] | 173 | For additional documentation on using revealjs presentations see |
| christophe dervieux | d26add3 | 2021-09-23 16:55:00 +0200 | [diff] [blame] | 174 | \url{https://github.com/rstudio/revealjs} |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 175 | } |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 176 | \section{About plugins}{ |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 177 | The plugins \code{notes}, \code{search}, \code{menu} and \code{zoom} are activated by default; |
| 178 | only \code{chalkboard} is opt-in. Setting \code{reveal_plugins} replaces the default |
| 179 | set -- pass \code{NULL} to render without any plugins. |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 180 | \subsection{Built-in plugins with reveal.js}{ |
| 181 | \subsection{Zoom}{ |
| 182 | |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 183 | Activated by default: ALT + Click can be used to zoom on a slide. |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 184 | } |
| 185 | |
| 186 | \subsection{Notes}{ |
| 187 | |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 188 | Activated by default: shows a \href{https://revealjs.com/speaker-view/}{speaker view} in a separated |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 189 | window. This speaker view contains a timer, current slide, next slide, and |
| 190 | speaker notes. It also duplicate the window to have presentation mode |
| 191 | synchronized with main presentation. |
| 192 | |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 193 | Use |
| 194 | |
| 195 | \if{html}{\out{<div class="sourceCode markdown">}}\preformatted{::: notes |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 196 | Content of speaker notes |
| 197 | ::: |
| 198 | }\if{html}{\out{</div>}} |
| 199 | |
| Marc Kupietz | 6b65c03 | 2026-08-25 09:43:28 +0300 | [diff] [blame] | 200 | to create notes only viewable in presentation mode. Notes placed before |
| 201 | the first heading are attached to the title slide. |
| 202 | |
| 203 | On mobile browsers (touch devices), a button next to the fullscreen |
| 204 | toggle overlays the current slide with its speaker notes (plus the slide |
| 205 | title and, if present, the planned time from a timing comment), which is |
| 206 | useful for practicing a talk on a phone or tablet. It follows along as |
| 207 | you change slides and only appears if the deck contains notes at all. |
| Marc Kupietz | eaaa2b4 | 2026-08-26 09:41:27 +0300 | [diff] [blame] | 208 | |
| Marc Kupietz | 010db0b | 2026-08-26 09:56:45 +0300 | [diff] [blame] | 209 | Pressing \code{r} -- or, on touch devices, tapping the list button next to |
| 210 | the speaker notes button -- toggles a transcript view: a single |
| 211 | scrollable page containing every slide's content and speaker notes. |
| 212 | Text-to-speech ("read aloud") browser extensions cannot walk a |
| 213 | reveal.js deck, since hidden slides are not part of the visible page |
| 214 | text -- the transcript gives them something they can read from start |
| 215 | to finish. |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 216 | } |
| 217 | |
| Marc Kupietz | b066e74 | 2026-08-23 09:57:06 +0300 | [diff] [blame] | 218 | } |
| 219 | |
| 220 | \subsection{Slide timing}{ |
| 221 | |
| 222 | Speaker time can be planned per slide and per speaker by adding a comment |
| 223 | with a speaker code and the expected duration (in \code{MM:SS}, \code{HH:MM:SS}, or |
| 224 | plain seconds format) anywhere inside a slide: |
| 225 | |
| 226 | \if{html}{\out{<div class="sourceCode markdown">}}\preformatted{## My slide title |
| 227 | |
| 228 | Some content |
| 229 | |
| 230 | <!-- MK 00:30 --> |
| 231 | }\if{html}{\out{</div>}} |
| 232 | |
| 233 | This means Marc Kupietz will need 30 seconds for that slide. For talks |
| 234 | presented by a single speaker, the speaker code can be omitted: |
| Marc Kupietz | 6b65c03 | 2026-08-25 09:43:28 +0300 | [diff] [blame] | 235 | \verb{<!-- 00:30 -->}. Comments placed before the first heading are applied to |
| 236 | the title slide. |
| Marc Kupietz | b066e74 | 2026-08-23 09:57:06 +0300 | [diff] [blame] | 237 | |
| 238 | Typically you start from a known total time budget and adjust the |
| 239 | individual slides to it. You can set this budget yourself with the |
| 240 | reveal.js \code{totalTime} option (in seconds): |
| 241 | |
| 242 | \if{html}{\out{<div class="sourceCode yaml">}}\preformatted{output: |
| 243 | revealjs.ids::revealjs_presentation: |
| 244 | reveal_options: |
| 245 | totalTime: 3600 # one hour |
| 246 | }\if{html}{\out{</div>}} |
| 247 | |
| 248 | During rendering, comments are converted into \code{data-timing} attributes on |
| 249 | the slides' \verb{<section>} elements (several speakers per slide are summed |
| 250 | up), and the calculated grand total is passed to reveal.js as the |
| 251 | \code{totalTime} config value. This activates the pacing timer in the |
| 252 | \href{https://revealjs.com/speaker-view/}{speaker view}, which shows how you |
| 253 | are doing relative to your plan. A summary of the total time per speaker |
| 254 | is printed during rendering. If the document sets \code{totalTime} or |
| 255 | \code{defaultTiming} itself (via \code{reveal_options}), those take precedence. |
| 256 | |
| 257 | The function \code{\link[=slide_timing]{slide_timing()}} computes these totals directly from an |
| 258 | \code{.Rmd} source file without rendering it. |
| Marc Kupietz | 4fc867c | 2026-08-25 10:30:18 +0300 | [diff] [blame] | 259 | } |
| 260 | |
| Marc Kupietz | de3c6c1 | 2026-08-30 14:40:33 +0300 | [diff] [blame] | 261 | \subsection{Vertical content centering}{ |
| 262 | |
| 263 | Slides with little content look lost when everything is glued below the |
| 264 | title bar, while packed slides must start at the top. reveal.js' own |
| 265 | \code{center} option cannot express this -- it also vertically centers the |
| 266 | headings. Instead, the body content of each slide (everything after the |
| 267 | heading block except speaker notes) is grouped and, whenever there is |
| 268 | free space, centered in the area between the heading and the footer: |
| 269 | slides that are too packed simply start directly below the heading and |
| 270 | overflow downwards, exactly as before. Centered content never reaches |
| 271 | into the footer; content too tall to fit above it may, as it always |
| 272 | could. Heading-only section-divider slides keep their own centered-title |
| 273 | layout. No configuration is needed and nothing changes about how slides |
| 274 | are authored. |
| 275 | } |
| 276 | |
| Marc Kupietz | de3ffa4 | 2026-08-30 13:47:57 +0300 | [diff] [blame] | 277 | \subsection{Chapter numbering}{ |
| 278 | |
| 279 | Like in the old Google Docs slide workflow, chapter headings (\verb{#}) are |
| 280 | numbered automatically: the first chapter becomes "1. Introduction", the |
| 281 | second "2. Methods", and so on. References, appendix and thank-you |
| 282 | chapters (References/Literatur/Referenzen/Publikationen/ |
| 283 | Herausgeberschaften/Appendix/Anhang, and headings containing |
| 284 | "Thank you"/"Vielen Dank") keep their bare titles and are not counted. |
| 285 | Manually typed leading numbers (\verb{# 2. Methods}) are stripped before |
| 286 | renumbering, so decks migrated from the old pipeline and repeated |
| 287 | numbering runs stay stable. The numbers are added when the presentation |
| 288 | is opened: the menu plugin and the transcript view show them, too, and |
| 289 | the overview slide's table of contents uses them as its ordered list's |
| 290 | enumeration. Decks rendered with \code{slide_level = 1} (one \verb{#} heading per |
| 291 | slide) are left unnumbered -- there, headings denote slides, not |
| Marc Kupietz | 499082c | 2026-08-30 15:26:44 +0300 | [diff] [blame] | 292 | chapters. The numbering can be turned off with \code{chapter_numbering: false} |
| 293 | in the yaml header, or started at another number with e.g. |
| 294 | \code{chapter_numbering: 5} (useful for continuation decks). |
| Marc Kupietz | de3ffa4 | 2026-08-30 13:47:57 +0300 | [diff] [blame] | 295 | } |
| 296 | |
| Marc Kupietz | 4fc867c | 2026-08-25 10:30:18 +0300 | [diff] [blame] | 297 | \subsection{Overview slides}{ |
| 298 | |
| 299 | Like in the original Google Docs slide workflow, a slide titled |
| 300 | "Overview" or "Überblick" is automatically turned into a table of |
| 301 | contents: its body content is replaced at presentation time with a |
| Marc Kupietz | de3ffa4 | 2026-08-30 13:47:57 +0300 | [diff] [blame] | 302 | clickable, ordered list of all \verb{#} chapter headings, whose enumeration |
| 303 | repeats the chapter numbers. Adding |
| Marc Kupietz | 24057e5 | 2026-08-25 10:51:06 +0300 | [diff] [blame] | 304 | \code{{data-overview-subheadings=true}} to the heading also includes the |
| 305 | \verb{##} sub-headings below their chapters, laid out in two columns. |
| Marc Kupietz | de3ffa4 | 2026-08-30 13:47:57 +0300 | [diff] [blame] | 306 | References, appendix and thank-you chapters (References/Literatur/ |
| 307 | Literaturverzeichnis/Referenzen/Publikationen/Herausgeberschaften/ |
| 308 | Appendix/Anhang, and headings containing "Thank you"/"Vielen Dank") are |
| 309 | left out, together with their sub-slides. |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 310 | \subsection{Search}{ |
| 311 | |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 312 | Activated by default: pressing \code{CTRL + SHIFT + F} shows a search box. |
| 313 | It will search in the whole presentation, and highlight matched words. The |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 314 | matches will also be highlighted in overview mode (pressing ESC to see all |
| 315 | slides in one scrollable view) |
| 316 | } |
| 317 | |
| 318 | } |
| 319 | |
| 320 | \subsection{Menu}{ |
| 321 | |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 322 | Activated by default: a slideout menu plugin for Reveal.js to quickly jump |
| 323 | to any slide by title. |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 324 | |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 325 | Version is |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 326 | currently used and documentation for configurations can be found at |
| 327 | \href{https://github.com/denehyg/reveal.js-menu/blob/2.1.0/README.md}{denehyg/reveal.js-menu} |
| 328 | \subsection{Known limitations}{ |
| 329 | |
| 330 | Some configurations cannot be modified in the current template: |
| 331 | \itemize{ |
| 332 | \item \code{loadIcons: false} the fontawesome icons are loaded by \pkg{rmarkdown} |
| 333 | when this plugin is used |
| 334 | \item \code{custom: false} |
| 335 | \item \code{themes: false} |
| 336 | \item \code{transitions: false} |
| 337 | } |
| 338 | } |
| 339 | |
| 340 | } |
| 341 | |
| 342 | \subsection{Chalkboard}{ |
| 343 | |
| Marc Kupietz | b9a8cba | 2026-08-28 06:51:28 +0300 | [diff] [blame] | 344 | An opt-in plugin adding a chalkboard and slide annotation |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 345 | |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 346 | Version is |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 347 | currently used and documentation for configurations can be found at |
| Marc Kupietz | f667b98 | 2026-08-08 17:16:28 +0200 | [diff] [blame] | 348 | \href{https://github.com/rajgoel/reveal.js-plugins/tree/4.2.5/4.1.5/chalkboard}{rajgoel/reveal.js-plugins} |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 349 | |
| 350 | By default, chalkboard and annotations modes will be accessible using keyboard |
| 351 | shortcuts, respectively, pressing B, or pressing C. |
| Christophe Dervieux | 3778209 | 2023-03-24 17:36:16 +0100 | [diff] [blame] | 352 | In addition, buttons on the bottom left can be added by using the following |
| 353 | |
| 354 | \if{html}{\out{<div class="sourceCode yaml">}}\preformatted{reveal_plugins: |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 355 | - chalkboard |
| 356 | reveal_options: |
| 357 | chalkboard: |
| 358 | toggleNotesButton: true |
| 359 | toggleChalkboardButton: true |
| 360 | }\if{html}{\out{</div>}} |
| 361 | } |
| Marc Kupietz | ad0f24b | 2026-08-23 10:09:05 +0300 | [diff] [blame] | 362 | |
| Marc Kupietz | 59e95a6 | 2026-08-29 10:19:05 +0300 | [diff] [blame] | 363 | \subsection{Title slide: QR code and additional logos}{ |
| 364 | |
| 365 | Three optional yaml entries personalise the title slide for external |
| 366 | audiences (ported from \pkg{posterdown.ids}): |
| 367 | \itemize{ |
| 368 | \item \verb{website: <url>} -- a linked QR code pointing to the URL is placed in |
| 369 | the top left of the title slide. Uses the \pkg{qrcode} package. |
| 370 | \item \verb{partner_logo: <path-or-url>} -- when a presentation is given by |
| 371 | authors from two institutions, the partner institution's logo is shown |
| 372 | next to the IDS logo, in the top right of every slide. |
| 373 | \item \verb{funder_logo: <path-or-url>} -- a funder logo (e.g. "Text+") is placed |
| 374 | in the bottom left of the title slide, opposite the Leibniz |
| 375 | Gemeinschaft membership logo. It is lifted above the footer band on |
| 376 | print (pdf) pages. |
| 377 | } |
| 378 | |
| 379 | Local logo files (svg, png, jpg, gif, webp) are embedded in the html as |
| 380 | data URIs, so they do not need to be shipped with the presentation; http |
| 381 | URLs are used as-is. A QR code anywhere else on a slide can be produced |
| 382 | with \code{\link[=qrlink]{qrlink()}} from inline R code. The navigation chrome (arrows, slide |
| 383 | number, menu button) is hidden on the title slide for a bare first |
| 384 | impression. |
| 385 | } |
| 386 | |
| Marc Kupietz | ad0f24b | 2026-08-23 10:09:05 +0300 | [diff] [blame] | 387 | \subsection{Bibliography and citations}{ |
| 388 | |
| 389 | Documents with a \verb{bibliography:} in their YAML header are formatted with |
| 390 | the bundled IDS citation style (\code{ids.csl}, based on the style developed |
| 391 | for ICLC-10 2023 in Mannheim) by default. To use a different style, |
| 392 | specify it as usual with \verb{csl:} in the YAML header. |
| 393 | } |
| Christophe Dervieux | e1893ae | 2021-10-07 17:09:02 +0200 | [diff] [blame] | 394 | } |
| 395 | |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 396 | \examples{ |
| 397 | \dontrun{ |
| 398 | |
| 399 | library(rmarkdown) |
| Marc Kupietz | 03dbc5d | 2026-08-21 15:44:25 +0200 | [diff] [blame] | 400 | library(revealjs.ids) |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 401 | |
| 402 | # simple invocation |
| 403 | render("pres.Rmd", revealjs_presentation()) |
| 404 | |
| 405 | # specify an option for incremental rendering |
| 406 | render("pres.Rmd", revealjs_presentation(incremental = TRUE)) |
| 407 | } |
| JJ Allaire | d708ef0 | 2016-01-30 14:30:26 -0500 | [diff] [blame] | 408 | |
| JJ Allaire | 2ec4024 | 2014-09-15 09:18:39 -0400 | [diff] [blame] | 409 | } |