Skip to main content

Revelation

PyPI PyPI - Python Version PyPI - License Downloads Downloads Downloads Actions Status Coverage Status Code style: black

revelation is a cli tool that makes your revealjs presentations nice and easy using markdown and serving it locally.

Features

  • Presentation server to run it locally when you are offline.
  • Presentation creation from template with a single command.
  • Custom theming support with css.
  • Export to static html tool.
  • Debug mode with server auto refresh.
  • Configurable Revealjs plugins

Installation

You can install it with uv:

uv tool install revelation

Or with pipx:

pipx install revelation

And you can also install it with regular pip:

pip install revelation

Usage

Install/Update revealjs files

Revelation depends on revealjs to run its presentation and every command bellow will check and install it if revealjs isn't installed yet.

But, you can also manually install or even update it to a different version with the installreveal command:

revelation installreveal

The files will be placed into the home directory in .local/share/revelation/static. There you can add additional plugins for revealjs.

Creating a new Presentation

To create a new presentation you can use mkpresentation command that will setup a new presentation using the base layout for you:

revelation mkpresentation mypresentation

Running the Presentation

You can start presenting with the start command on your presentation markdown file:

cd mypresentation
revelation start slides.md

Static Export

To export the presentation as static HTML content use the command:

revelation mkstatic slides.md

PDF Export

Presentations can be exported to PDF via a special print stylesheet. This feature will be described using Google Chrome or Chromium, but I got the same results using Firefox.

  1. Run the presentation with revelation.
  2. Open your browser with the print-pdf as query string like : localhost:5000/?print-pdf.
  3. Open the in-browser print dialog (CTRL+P or CMD+P).
  4. Change the Destination setting to Save as PDF.
  5. Change the Layout to Landscape.
  6. Change the Margins to None.
  7. Enable the Background graphics option.
  8. Click Save.

Alternatively you can use the decktape project.

Presentation Setup

The base presentation file structure looks like this:

presentation/
|- media/
|- theme/
|- config.py
|- slides.md

The slides.md File

This is your presentation file written using markdown with some especial tags described on markdown section and is placed on your presentation root folder.

Split your slides by setting up a slide separator and vertical slide separator into REVEAL_CONFIG. Default separator are --- and ---~.

The media folder

By default, revelation looks for a folder called media inside your presentation root folder. All media placed inside it can be referenced on your presentation by the path /media:

![Python Logo](media/python.png)

You can define a custom media path using the --media option on revelation start command.

The theme folder

You can create your custom theme file and place it inside a theme folder and reference it at the configuration file by the option --theme.

The config.py File

The configuration file located in the root folder of your presentation, allows you to customize your presentation. This file is optional and have the following configuration options:

  • REVEAL_META: Metadata of your presentation, mostly to identify the author and title.
  • REVEAL_THEME: A string where you can select the theme you would like to use. All revealjs base themes are available.
  • REVEAL_CONFIG: A python dictionary with the revealjs configuration attributes but using python types (e.g.: true is python boolean True)
  • REVEAL_PLUGINS: A list of dictonaries with optional fields
    • initialize_as: String used for Reveal.initialize in plugins field. Typical Reveal<Plugin name>.
    • initialize_with: Dictionary appended on directonary fo Reveal.initialize.
    • scripts: List of JavaScript files pointing to the revealjs plugin directory.
    • styles: List of CSS files pointing to the revealjs plugin directory.

Once you create a new presentation, all configuration values will be there for you to customize.

Configure plugins

When creating a new presentation with revelation mkpresentation the config.py contains a list with preconfigured plugins in REVEAL_PLUGINS.

For example to enable the charts you must do the following steps:

  • Download the charts plugin files
  • Download charts.js
  • Create a plugin folder in the static directory of revelation (.local/share/revelation/static/revealjs/plugin)
  • Add the following entry in the REVEAL_PLUGINS dictionary in your config.py
"Chart": {
    "scripts": [
        "chart/chart.js",
        "chart/plugin.js",
    ],
    "initialize_as": "RevealChart",
    "initialize_with": {
        "chart": {
            "defaults": {
                "color": "green"
            },
        },
    },
}

Markdown

The markdown used on the presentation files support everything that revealjs docs allows to place inside the data-template section.

Release files for revelation 2.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for revelation 2.3.1
File Size Uploaded
revelation-2.3.1.tar.gz 28.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for revelation 2.3.1
File Interpreter ABI Platform
revelation-2.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 45.1 kB

Release files / revelation-2.3.1.tar.gz

Download URL revelation-2.3.1.tar.gz
Size 28.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c6cc41a6e06aa13fe9f9590873ca206073fcb22586907e92cd1f307df041265d
BLAKE2b-256 checksum
How to use checksums
16172fecbfa3f520ec4c07a3d6ac958d0823ac184ef9eed346d2c782b96f7519
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release files / revelation-2.3.1-py3-none-any.whl

Download URL revelation-2.3.1-py3-none-any.whl
Size 16.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07dfe1ca88e87dc98cf2928a24acb969c1e7cde03229d2fe9acc12304db5bbf3
BLAKE2b-256 checksum
How to use checksums
9008e024e44377977cea527fdca3a4dd3cdcb6302963d4a4edf04ae081200125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.28.1

Release history Release notifications | RSS feed

This release

2.3.1 This release

2 release files

2.3.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

3 release files

0.1.2

3 release files

0.1.1

3 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page