New transcript view, toggled with r (or, on touch devices, with a list button next to the speaker notes button): a single scrollable page containing every slide's content and speaker notes. Text-to-speech ("read aloud") browser extensions cannot walk a reveal.js deck (hidden slides are not part of the visible page text), but they can read the transcript from start to finish -- e.g. to have the whole talk including notes read aloud while practicing.
Slides titled "Overview" or "Überblick" are now automatically turned into a table of contents (ported from the old Google Docs slide workflow): their body content is replaced at presentation time with a clickable list of all # chapter headings. Adding {data-overview-subheadings=true} to the heading also includes the ## sub-headings, laid out in two columns. References and appendix chapters (References/Literatur/Literaturverzeichnis/Appendix/Anhang) are excluded, together with their sub-slides.
Speaker notes (::: notes) and timing comments placed before the first heading are now attached to the title slide instead of ending up on a separate empty phantom slide after it, so the title itself can have a time budget and a welcome note (shown in the speaker view and the mobile notes overlay, and included in slide_timing() and the pacing timer).
Disable reveal.js' automatic scroll view on narrow screens (scrollActivationWidth: 0): when a phone activated scroll view during load, it restructured the slides DOM and the slides menu degenerated to italic "Slide 1..N" fallback entries. Phones now get the regular swipeable slide view, where menu, speaker notes overlay, and pacing timer work as usual. Re-enable with reveal_options: list(scrollActivationWidth = 600) or force scroll view with view: "scroll".
ids theme: on touch devices, a new button next to the fullscreen toggle overlays the current slide with its speaker notes (plus the slide title and planned time, if annotated with a timing comment) -- for practicing talks on mobile browsers, where reveal.js' separate speaker view window is awkward. The overlay follows slide changes and only appears when the deck contains notes.
Documents with a bibliography: in their YAML header are now formatted with the bundled IDS citation style by default (ids.csl, based on the style developed for ICLC-10 2023 in Mannheim). A csl: entry in the document's YAML header still takes precedence.
Speaker timing comments in the source .Rmd (e.g. <!-- JD 00:30 --> for "John Doe needs 30 seconds for this slide", or just <!-- 00:30 --> for single-speaker talks, ported from the old Google Docs workflow) are now converted into data-timing attributes on the rendered slides' <section> elements, activating the pacing timer in the reveal.js speaker view (the calculated grand total is passed as the totalTime config value; a totalTime or defaultTiming set by the document itself, e.g. to start from a known time budget, takes precedence). A per-speaker time summary is printed during rendering, and the new slide_timing() function computes slide, speaker, and grand totals directly from an .Rmd file without rendering it.
ids theme: bold ("highlighted") text now uses orange Fira Sans Condensed (600, 90% size) instead of just an orange colour in the serif body face, as in the IDS reference decks.
ids theme: highlighted/code text now uses Fira Code (the monospaced Fira Sans variant, loaded from Google Fonts), as in the IDS reference decks; falls back to Fira Mono, then DejaVu Sans Mono. Replaces the generic monospace default.
revealjs to revealjs.ids, so the IDS corporate design edition can be installed alongside upstream rstudio/revealjs. Use it with revealjs.ids::revealjs_presentation in the R Markdown yaml header. Existing documents using revealjs::revealjs_presentation require upstream revealjs (or can be migrated by replacing the prefix).data-preview-image / data-preview-video), controls: "speaker-only", search API extensions, and speaker-view fixes.ids theme: larger Leibniz/WGL logo on the title slide (0.07 -> 0.1 of slide height), now truly pinned to the slide's bottom-right corner (the title frame is stretched to full slide height, so bottom refers to the slide rather than the content box) with margins mirroring the IDS logo at the top right (8px from the right, 10px from the edge).
ids theme: bibliography entries now reliably render "Authors (Year):" as a bold first line followed by a line break, regardless of how citeproc structures the entry. Previously a CSS "break before the first child element" hack (.csl-entry :first-child::before) placed the break arbitrarily (e.g. in the middle of a title), depending on the entry's spans/links. The leading text up to the year is now wrapped explicitly by the theme template (.csl-authors-year, display: block), plus a small margin-bottom between entries.
ids theme: slide transitions now default to slide (slides slide in horizontally instead of the reveal.js default convex rotation). Set transition explicitly to use another effect.
ids theme: second- and higher-level list items are now rendered progressively smaller (each nesting level at 80% of its parent), emphasising list hierarchy as in the IDS reference decks.
ids theme: list markers are now drawn as CSS boxes via li::before (dot/square/ring per level; ordered lists use the list-item counter honoring start/value), so the bullet column is deterministically flush with the slide title's left edge in every browser and at every window size, instead of relying on engine-dependent native ::marker anchoring.
This version of the package comes with reveal.js v4 which is a major update from previous reveal.js v3. Built-in plugins (zoom, search and notes) have been updated, as well as third party plugin included in this package (menu and chalkboard). A lot of bugfixes and improvements have been made in the upstream library and now the R package can benefit from it. However, this cause also some breaking changes for revealjs R package that we described below.
You can see reveal.js releases notes since 3.3 (which was the previous version used in this package) inside their repo: https://github.com/hakimel/reveal.js/tags
Order of menu icons have been changed.
When search: true is set to activate Search plugin, CTRL+SHIFT+F needs to be press to show the search box. Previously, search box was shown by default on slides.
For chalkboard plugin, pen and color configurations are no more supported. If you were using those, it will have no effect. chalkboard now includes several colors by default and this can't be customized easily. Available colors can be easily selected when Note or Chalboard activated. See documentation of the plugin for more information.
Add toc and toc_depth argument in revealjs_presentation() as with rmarkdown::html_document(). Set toc = TRUE to create a slide after the title slide containing a Table Of Content. toc_depth = 3 by default (as Pandoc) - its value must be adjusted with slide_level is you do not get the desired result, depending if you are using 2D slides or not.
smart argument has been removed from revealjs_presentation() has no more used by rmarkdown. smart = TRUE is still the default. If you need to deactivate, use md_extensions = "-smart".
Add title-slide id on the auto generated title slide to ease the styling using CSS.
Support more Pandoc's variable in revealjs_presentation() as documented in Pandoc for HTML slides:
background-image to customize the option parallaxBackgroundImage. This duplicates the variable parallaxBackgroundImage which still get precedence.institute to provide another line in title slide between author and datetoc-title to provide a Title above the toc when toc = TRUEFix template to add the necessary CSS to format columns layout and other Pandoc's features (thanks, @atusy, #82).
Fix an issue with some configurations keys for chalkboard plugin - multiple value are now correctly passed to Pandoc's template (thanks, @grayknight2, @atusy, #62, #88).
Fix issues with quoting of options when passed as variables to Pandoc. This was caused by a change in Pandoc 2.14.0.3 which now sets some default value for reveal.js options (thanks, @iain-palmer, #72).
Update included Document template with several examples of available feature.
Add md_extensions argument in revealjs_presentation() (thanks, @atusy, #75).
Add support for the menu plugin
Correct handling of pdf css for self_contained document
Remove html5shiv.js from template
Update to reveal.js 3.3
Push slide changes to browser history
Respect slide_level option
Support for zoom, search, and notes reveal.js plugins
Ability to specify slideNumber reveal_option as either string or boolean