org-reveal/Readme.org

6.1 KiB

Introduction to Org-Reveal

Reveal.js and Org-Reveal

  • Reveal.js is a tool for creating good look HTML presentations, authored by Hakim El Hattab.
    For an example of reveal.js presentation, click here.
  • Org-Reveal exports your Org documents to reveal.js presentations.
    So you can create beautiful presentations with 3D effects from simple but powerful org contents.

Requirements and Installation

  • Reveal.js.
  • Latest org-mode.
  • ox-reveal.el.
  • And, of course, emacs.

Obtain Reveal.js

Download Reveal.js packages from here.

Extract reveal.js folders from the downloaded zip file.

Obtain org-mode

Note: Org-reveal relies on the LATEST org-mode export frame work. Pre-packaged org-mode may be out-of-date.

If not sure, use the freshest development codes from git repository.

$ git clone git://orgmode.org/org-mode.git

Follow the online instruction to build and install Org-mode.

TODO Obtain Org-reveal

Obtain latest Org-reveal from github.

Copy ox-reveal.el to the Org-mode install directory.

Add the following statement to your .emacs file.

(require 'ox-reveal)

Configuration

Set the location of Reveal.js

Org-reveal must know where reveal.js is before exporting Org contents.

Default location is ./reveal.js, relative to the Org file.

Change variable org-reveal-root 's value will change the location globally. For example, add the following statement to your .emacs file:

(setq org-reveal-root "d:/reveal.js")

By setting option REVEAL_ROOT, the location is only affected within the Org file.

#+REVEAL_ROOT: d:/reveal.js

First Try

Modifications to .emacs will take effect at next time Emacs starts up.

To wake-up Org-reveal now, type "M-x load-library", then type "ox-reveal".

Now you can export this manual into Reveal.js presentation by typing "C-c C-e R R".

Open the generated "Readme.html" in your browser and enjoy the cool slides.

The HLevel

Org-reveal maps each heading and its contents to one Reveal.js slides. Since Reveal.js arrange slides into a 2-dimentional matrix, Org-reveal use HLevel value to decide map headings to hozirontal or vertical slides.

  • Headings of level less or equal to HLevel are mapped to hozirontal slides.
  • Headings of deeper levels are mapped to vertical slides.

HLevel's default value is 1, means only level 1 headings are arranged horizontally, deeper headings are mapped to vertical slides below its parent level 1 heading.

HLevel's Affects on Slides Layout

Assume we have a simple Org file as below:

* H1
* H2
** H2.1
*** H2.1.1
* H3

If HLevel is 1, the default value, headings H2.1 and H2.1.1 will be mapping to vertical slides below the slides of heading H2.

/emacs/org-reveal/media/commit/238fa41446db51a8111650b696a7b495e0b5761b/images/hlevel.png

If HLevel is changed to 2, slide of heading H2.1 will be changed to the main hozirontal queue, and slide of heading H2.1.1 will be a vertical slide below it.

/emacs/org-reveal/media/commit/238fa41446db51a8111650b696a7b495e0b5761b/images/hlevel2.png

Configure HLevel's Value

  • Change variable org-reveal-hlevel's value to set HLevel globally.
    For example, add the following statement to your .emacs file.
(setq org-reveal-hlevel 2)
  • Setting Org files local HLevel to option REVEAL_HLEVEL.
#+REVEAL_HLEVEL 2

Select Theme and Transition

Themes and transitions are set globally throughout the whole file by setting options REVEAL_THEME and REVEAL_TRANS.

For example, check the heading parting of this documents.

Available themes can be find in "css/theme/" in the reveal.js directory.

Available transitions are: default|cube|page|concave|zoom|linear|fade|none.

Fragmented Contents

Make contents fragmented, show up one-by-one, by setting option ATTR_REVEAL with property ":frag frag-style", as illustrated below.

Paragraphs can be fragmented.

Items can be fragmented, too.

Availabe fragment styles are:

  • grow
  • shrink
  • roll-in
  • fade-out
  • highlight-red
  • highlight-green
  • highlight-blue

Data State

Set property reveal_data_state to headings to change this slide's style, as illustrated above.

Plug-ins

Reveal.js provides several plug-in functions.

  • reveal-control : Show/hide browse control pad.
  • reveal-progress : Show/hide progress bar.
  • reveal-history : Enable/disable slide history track.
  • reveal-center : Enable/disable slide centering.

Configure Plug-ins

Each plug-ins can be set on/off by adding #+OPTIONS tags or settinng custom variables.

  • #+OPTIONS tags:
    reveal_control, reveal_progress, reveal_history, reveal_center
  • Custom variables:
    org-reveal-control, org-reveal-progress, org-reveal-history, org-reveal-center

Source Codes

Org-reveal use Org-Babel to highlight source codes.

Codes copied from Haskell Wiki.

  fibs = 0 : 1 : next fibs
         where next (a : t@(b:_)) = (a+b) : next t

If you saw odd indentation, please set variable org-html-indent to nil and export again.

Thanks

Courtesy to:

the powerfull Org-mode,

and the impressive Reveal.js