Skip to content

A workflow for reveal.js presentations

Notifications You must be signed in to change notification settings

suhlig/revealing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ffa23ec · Nov 11, 2023

History

66 Commits
May 3, 2021
Apr 13, 2019
Jul 17, 2022
May 22, 2019
Jul 17, 2022
Apr 21, 2019
Jul 16, 2022
Apr 19, 2019
Apr 14, 2019
Jul 16, 2022
Jul 16, 2022
Jul 16, 2022
Apr 17, 2019
Apr 17, 2019
Nov 11, 2023
Apr 26, 2019
Jul 16, 2022

Repository files navigation

revealing - A Workflow for reveal.js Presentations

Build Status

This gem provides a set of Rake tasks to create reveal.js presentations from markdown files. It uses pandoc to create the final presentation. The output is a self-contained set of static HTML files that can be viewed locally uploaded to a web server.

Unique features:

  1. revealing assumes that your presentation is built using Rake. Additional, custom steps (like deployment) can easily be added to the Rakefile that was generated for you.
  2. Efficiency - by carefully modeling the dependencies between source files (your markdown), intermediate build products (processed include statements), and the final output (HTML and resized images), build steps are only run when necessary (e.g. when a corresponding source file was changed).

Examples

Development

  • Create a test project using revealing init
  • Test by referring to the changed tasks:
    rake -f ~/workspace/revealing/lib/revealing/tasks.rb -T

Releasing

  • Make the changes
  • Run tests
  • From a test project, install the updated gem locally and invoke it:
    $ (cd ../revealing; git add .; bake install) && bundle update && bake clobber default
    Verify that everything works.
  • Bump the version in lib/revealing/version.rb
  • git commit
  • gem signin to rubygems.org
  • bundle exec rake release

TODO

  1. Pandoc >= 2.9.3 is required for reveal.js >= 4.0
  2. Expose customization of
    • highlight-style
    • theme
    • slideNumber
    • history
  3. Provide a docker image so that we can run without installing everything
  4. Add guard-livereload to the generated project
  5. Performance: pandoc-ditaa-inline filter could write files to cache dir and read it from there via SHA
    • still keep the SVG inline, but do not call ditaa again if unchanged
  6. Consider mermaid-filter
  7. Allow self-hosted mathjax (copy to target)
  8. Charts using vega-lite
  9. Make the initial set of files more meaningful (e.g. add the project name, git config user.name etc.)
  10. Web interface for live editing