Skip to content

@hakimel hakimel released this May 29, 2020

Changes

  • Enables caching for JavaScript builds, making subsequent builds ~50% faster.
  • In auto-sliding presentations, the data-autoslide attribute now takes precedence over automatic detection of <video> durations.
  • Remove overzealous reset styles when printing to PDF.
  • Reveal.configure and Reveal.isReady are now available in the pre-initialized reveal.js API, to match v3.x behavior.
  • Switches to serving demo presentation assets from a CDN.

Bug fixes

  • Fixes polyfills and adds IE 11 support.
  • Fixes the progress bar direction in right-to-left mode.
Assets 2

@hakimel hakimel released this May 25, 2020 · 18 commits to master since this release

Bug fixes

  • Fixed issues when printing speaker notes to PDF (#2671 by @s-l-lee)
  • Fixed incorrect auto-animations when there are multiple auto-animated presentations on the same page
Assets 2

@hakimel hakimel released this May 20, 2020 · 26 commits to master since this release

Breaking Changes 🚨

This release includes a small number of breaking changes. Please read the Upgrade Instructions if you want to migrate an existing presentation.

Highlights

  • New website, docs and logo! https://revealjs.com/ 🚀
  • Auto-Animate lets you create complex animations by automatically transitioning between matched elements across slides. Duration, delay and easing can be set on a per-slide or per-element basis.
  • We now support multiple presentations on the same page.
    • This also introduces a new embedded config option, which allows presentations to reside within a portion of a page. Previously reveal.js always covered 100% of the page width and height.
    • The new keyboardCondition: 'focused' config option lets presentations capture keyboard events only when they're focused by the viewer.
  • The reveal.js core and built-in plugins have been rewritten as ES modules. This makes the project easier to maintain and makes reveal.js itself easier to include in a bundle. Two bundles are provided:
    • dist/reveal.js uses UMD and has broad cross browser support (ES5).
    • dist/reveal.esm.js is an ES module. More info
  • Code highlights are now automatically scrolled into view and it looks soooo good. You've got to try it out.

Changes

  • The Reveal.initialize method now returns a promise that resolves once reveal.js is ready and all plugins have finished initializing.
  • Switches build systems from to gulp, using rollup for bundling.
  • Moves all compiled CSS (reveal.css, reset.css and themes) from css/ to dist/. See Upgrade Instructions.
  • Moves all print CSS into reveal.js. The old script-based print styles can be removed. by @quilicicf
  • Adds a new slidetransitionend event.
  • Adds a new r-stack layout helper for placing elements on top of each other.
  • Adds support for data-visibility="uncounted" to exclude slides from the progress bar and slide number count. #2543 by @lassepe
  • Adds Reveal.getComputedSlideSize API method.
  • Renames the Reveal.addEventListener and Reveal.removeEventListener API methods to Reveal.on and Reveal.off. Old names are aliased for backwards compatibility.
  • Removes the default border style from <img>s. Can be added with the r-frame class.
  • Removes bower.json.

Plugins

  • New syntax for registering plugins.
  • All built-in plugins—such as markdown and highlight—are now available as ES modules. More info
  • Notes: No longer depends on resolving an external notes.html file to work. Everything is baked into the plugin JS.
  • Highlight: Upgraded to highlight.js 10.0.1.
  • Highlight: Moved highlight themes from lib/css/monokai.css to plugin/highlight/monokai.css.
  • Highlight: 'highlight.js' library is now installed from npm instead of being saved in the repo.
  • Markdown: Support for line numbers and highlights in syntax highlighted code.
  • Markdown: Support for boolean data- attributes. by @Bagira80
  • Markdown: 'marked' library is now installed from npm instead of being saved in the repo.
  • Multiplex: Moved out to https://github.com/reveal/multiplex
  • Notes Server: Moved out to https://github.com/reveal/notes-server

Bug fixes

  • Fixes a bug that prevented links from working in exported PDFs. #2628 by @telliott22
  • Fixes a bug where navigationMode: 'linear' incorrectly hid valid vertical directions. #2582 by @earboxer
  • Fixes an issue that caused reveal.js to incorrectly block keyboard events when an element with contentedtable=false was focused. #2650
Assets 2
May 19, 2020
Merge pull request #2651 from hakimel/dev
reveal.js 4.0.0

@hakimel hakimel released this Jan 31, 2020 · 283 commits to master since this release

Fixes a security vulnerability in the postMessage API. The follow methods are now blacklisted and can not be called via the postMessage API: registerPlugin, registerKeyboardShortcut, addKeyBinding, addEventListener.

Assets 2

@hakimel hakimel released this Jan 29, 2020 · 286 commits to master since this release

This version contains no changes. It was only released to bump the published version on npm.

3.9.0 was published to npm with local edits 🤦‍♂️

Assets 2

@hakimel hakimel released this Jan 29, 2020 · 287 commits to master since this release

Changes:

  • Adds step-by-step code highlights! Step through multiple line highlights on the same code block.
  • Adds postMessage callbacks. Makes it possible to use the postMessage API to invoke reveal.js methods with return values.
  • The pacing timer functionality now accepts a total time for the whole presentation. Timing was previously worked out on a per-slide level. (#2400 by longtime reveal.js contributor @fghaas!)
  • Background iframes no longer preload by default. They load when you arrive at the given slide. This unifies the behavior of in-slide and background iframes. Learn how to turn on preloading.
  • The slide number format specified through slideNumber is now honored in PDF exports. (#2337 by @dougalsutherland)
    (4c557a5)
  • Adds data-fragment=<index> to any slide with fragments in it. This lets you target specific fragment states with CSS like section[data-fragment="2"] { ... }.
  • Adds Reveal.getHorizontalSlides() and Reveal. getVerticalSlides() for getting all horizontal/vertical slides in a deck.
  • Adds Reveal.hasHorizontalSlides() and Reveal. hasVerticalSlides() for checking whether or not a deck contains any horizontal or vertical slides.
  • Adds mobileViewDistance configuration option. Mobile view distance was previously hardcoded at 2. (#2513 by @TuurDutoit)
  • Adds allow="autoplay" to iframes to comply with Chrome's Autoplay Policy Changes (#2437 by @TehDmitry)
  • Switches to CSS transforms to scale decks up on HDPI displays. Previous use of CSS zoom produced sharper results but led to side effects such as iframes not scaling with the deck content.
  • Switches first/last slide keyboard shortcuts from ⌘←/⌘→ to Shift←/Shift→. The old shortcut conflicted with browser back/forward.
  • Updates highlight.js from 9.11.0 to 9.18.0

Bug fixes:

  • Fixes an issue where the navigation down-arrow was blocked by the progress bar (#2410 by @NoriSte).
  • Fixes swipe navigation for decks with navigationMode set to linear (#2416 by @earboxer).
  • Fixes vertical overflow in iPadOS Safari.
  • Fixes inconsistent fragment slide animations by translating by a fixed unit.
  • Fixes failing npm install because of outdated dependencies.
  • Fixes exception when highlighting empty code blocks.

And more...

Assets 2

@hakimel hakimel released this Apr 1, 2019 · 362 commits to master since this release

Changes:

  • The cursor is now automatically hidden after five seconds of inactivity. The timeout can be adjusted with hideCursorTime: <milliseconds>, or you can disable the feature entirely with hideInactiveCursor: false.
  • Presentations can be zoomed on touch devices using the standard pinch-to-zoom gestures.
  • New navigationMode: <default/linear/grid> config option. Set to "grid" to navigate across adjacent vertical stacks. Learn more in the docs. (#2307)
  • New hash: <boolean> config option. When set to true, reveal.js will reflect the current slide in the address bar without pushing each slide change to the browser history. (#2286 by @asottile)
  • New preloadIframes config option for flagging if iframes should be preloaded or not. Can be set per-frame using the data-preload attribute. More info. (#2354 by @maxrothman)
  • A resize event is now dispatched anytime the presentation scale changes. (#2300 by @mw75)
  • The "Resume" button in the pause overlay is hidden if controls are set to false. (#2215 by @anderslemke)
  • New keyboard shortcut: CMD/CTRL + left or right arrow to go to first or last slide.
  • Adds Reveal.getRevealElement() for retrieving the presentation's root element (<div class="reveal">).
  • Removes Head JS as it is no longer required to load dependencies.
  • Removes classList polyfill since browser support caught up.
  • Removes the reset styles from reveal.css to make styles easier to override. Reset styles are now included as a separate reset.css file. (6abc6e0 #1952 & #2248)
  • The zoom transition now zooms between all slides, previously it zoomed between horizontal slides and used a slide transition between vertical.
  • Upgrade to Socket.IO 2.2.0.

Plugin Changes:

  • Adds a new API for registering plugins Reveal.registerPlugin( 'myPlugin', MyPluginInstance ). If a registered plugin returns a promise when initialized, reveal.js will wait for that promise to be fulfilled before firing the ready event. Learn more in the docs.
  • Code highlighting: Support for line numbers! Just add data-line-numbers to your code blocks.
  • Code highlighting: Highlight specific lines by providing a comma separated list of line numbers to data-line-numbers. Line ranges, like 5-15, are supported too.
  • Speaker view: No longer requires a web server, it now works when opened directly from the filesystem. (#2104 by @jurca)
  • Markdown: External .md files are now loaded asynchronously.
  • Markdown: Upgrade to marked 0.6.0. (@sestegra)
  • MathJax config options can now be set via the reveal.js math config option. (#2090 by @bnjmnt4n)

Bug fixes:

  • Fixes npm security warnings by updating all dependencies.
  • Fixes an issue that prevented the same internal link from being clicked twice. (#2350 by @rparree)
  • Fixes an issue with data-transition not working on vertical slides. (b6ce0a9 #1947)
  • Fixes an issue that needless caused the slide method—and all of its corresponding performance heavy DOM operations—to be invoked twice for each slide change. (#2263 by @mbotsch)
  • Fixes a layout bug with overlaid speaker notes when reveal.js is smaller than the browser window.
  • Fixes an error that caused Reveal.getProgress() to return a value higher than 1 when there were fragments on the last slide.
  • The speaker view no longer stops working when opened multiple times. (#2251 by @oyron)
  • Prevents presentations from overflowing vertically in some mobile browsers.
  • Elements using .stretch now show up in the overview mode. (@sanand0)

And more...

Assets 2

@hakimel hakimel released this Aug 1, 2018 · 500 commits to master since this release

Changes:

  • Key Binding API (#1885 by @ denehyg)
  • Adds pdfSeparateFragments option for exporting fragments on separate PDF pages (@koehlma)
  • Adds fragmentInURL option for including fragments in the URL (@dougalsutherland)
  • Adds hashOneBasedIndex option for switching slide URLs from 0 to 1-based index (@sean-parent)
  • Adds data-background-opacity attribute for fading out background media
  • Adds a "Resume presentation" button to the pause overlay
  • Adds two new fragment styles
    • semi-fade-out: starts fully visible and fades out to 50% opacity
    • fade-in-then-semi-out: fades in like a normal fragment and remains visible but faded out when you move to the next fragment
  • New API method Reveal.syncSlide: same use as Reveal.sync but more efficient when you've only made changes to one specific slide
  • New API method Reveal.syncFragments: same use as Reveal.sync but more efficient when you've only made changes to fragments on one specific slide
  • Removes arbitrary restrictions on slide IDs, all IDs are now valid
  • The slide number is now an anchor pointing to the current hash, making it possible to copy the current slide URL even when history is disabled (#2133 by @sean-parent)
  • Whitespace is now allowed in background image names (@RobertBaron)

Bug fixes:

  • The left/right navigation arrows no longer appear when there are no horizontal slides
  • Navigating to the same slide twice in a row no longer drops its "present" class
  • The loop option now works correctly in presentations with only vertical slides
  • More graceful error handling of duplicate slide IDs
  • Interactive iframe backgrounds now work in vertical slides

And more...

Assets 2

@hakimel hakimel released this Nov 23, 2017 · 602 commits to master since this release

Changes:

  • New project domain: revealjs.com.
  • New presentation control arrows:
    • Redesigned for improved aesthetics and clarity.
    • Arrows bounce to attract attention until the viewer first navigates. The downwards arrow bounces the first time you arrive at a vertical stack too, making vertical slides harder to miss. This can be turned off by setting the controlsTutorial config option to false.
    • Arrows automatically change color to contrast the slide background. Step left/right here to test.
    • Initialize reveal.js with controlsLayout: "edges" to have the controls appear along the edges of the screen instead of the bottom right corner. Try it out.
      revealjs-controls
  • New mobile-friendly layout for presentations shared with visible speaker notes.
  • The showNotes config option no longer shows the notes UI if there are no notes.
  • Improved search plugin: added CTRL+SHIFT+F shortcut, now searches inside of <span>. (#1909 by @linux-man)
  • Lazy-loaded videos are now unloaded when they move out of view.
  • Set the autoSlide option to false to prevent ALL auto-sliding (including data-autoslide attributes).
  • New API method Reveal.isSpeakerNotes() to check if the current instance of reveal.js is running inside of the speaker view.
  • New API methods Reveal.loadSlide()/Reveal.unloadSlide() for manually triggering the content on a slide to load or unload.
  • Always show video/audio controls on mobile devices.
  • Themes now use default quotation marks for <q>.

Bug fixes:

  • Fixed an issue that prevented Reveal.configure() from being called directly before or after Reveal.initialize().
  • Don't apply text-transform uppercase inside of code tags. (#1978 by @sfairchild)
  • Mobile Safari browser chrome no longer covers presentation content in landscape mode.
  • Fixed a feature test exception that prevented speaker notes from working in Safari.

And more...

Assets 2
You can’t perform that action at this time.