revealjs.ids (development version)

  • Title slide branding (ported from posterdown.ids): three new optional yaml entries -- website places a linked QR code (generated with the qrcode package) in the top left of the title slide; partner_logo shows a second institution's logo next to the IDS logo in the top right of every slide (for talks by authors from two institutions); funder_logo puts a funder logo in the bottom left of the title slide, opposite the Leibniz Gemeinschaft membership logo. Local logo files are embedded as data URIs, so they need not be shipped; a linked QR code anywhere on a slide can be produced with the new qrlink() function in inline R code. The navigation chrome (arrows, slide number, menu button) is now hidden on the title slide.

  • ids theme: all four title-slide corners now share one inset (8px to both slide edges), measured to the visible ink: IDS (plus partner) logo top right, website QR top left, funder logo bottom left, WGL membership logo bottom right. The funder logo previously sat 20px lower than intended (reveal.js' default image margin adds itself to the offset of an absolutely positioned image), and the QR sat a white plate's padding away from the corner.

  • qrlink(): the QR code svg now carries a viewBox and scales to the box it is placed in. Without one, a code sized down by CSS -- as on the title slide -- kept drawing at its full 300px and only its top left corner remained visible. The svg is cropped to the code's dark modules, so its quiet zone comes from the surrounding layout (the white plate behind the title slide's code, and padding on a.qrcode elsewhere).

  • Auto-generated Overview slides: the table of contents now renders at the normal slide body size and in the theme's link colour, so its entries look like the navigation links they are (they were set to 0.72em and to color: inherit, which made them read as smaller, darker body text). Only the denser two-column variant with sub-headings is still scaled down. The section was also missing from the theme's scss source, where it has now been backfilled.

  • New df_print option (default "kable"): data frames are now printed as theme-styled HTML tables by default, so raw results on slides look reasonable without extra code. Use df_print: default for plain text output (or tibble / paged as in rmarkdown::html_document); "kable" prints all rows, so show only head(x) on slides with many-rowed results.

  • 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.ids 0.9.1.9009

  • Package renamed from 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).

revealjs 0.9.1.9008

REVEAL JS LIBRARY UPDATE

  • Vendored reveal.js updated from 5.1.0 to 5.2.1, keeping the package's local additions (IDS theme, theme fonts, chalkboard/customcontrols/menu plugins, 1280x720 default slide size). New in this release: the lightbox (clickable images/videos opened full-size in an overlay via data-preview-image / data-preview-video), controls: "speaker-only", search API extensions, and speaker-view fixes.

OTHER CHANGES

  • 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.

REVEAL JS LIBRARY UPDATE

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

Known breaking / visible changes

  • 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.

OTHER CHANGES

  • 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 date
  • toc-title to provide a Title above the toc when toc = TRUE
  • Fix 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).

revealjs 0.9

  • Add support for the menu plugin

  • Correct handling of pdf css for self_contained document

  • Remove html5shiv.js from template

revealjs 0.8

  • Add support for the chalkboard plugin

revealjs 0.7

  • 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

revealjs 0.6

  • Fix issue with missing embedded fonts for beige, league, and solarized themes.

revealjs 0.5

  • Initial release to CRAN