Reveal.yaml

Rust implementation of Reveal.js YAML server.

This project is transferred from Python language and now operates in a way that is easier to maintain and release, and it is Rust. Some old functions might be deprecated, and some functions are improved.

This manager downloads the latest Reveal.js archive to provide serving and packing function, and had same licensed as Reveal.js.

Static demo on gh-pages: https://kmolyuan.github.io/reveal-yaml-rs/

Download CLI executable from GitHub release: https://github.com/KmolYuan/reveal-yaml-rs/releases/

Why should use this?

Using Reveal.js with Markdown, but it is still difficult to maintain HTML slideshows. This work provides a clean YAML file for your slides, an auto-generated outline, and a live demo when editing.

Difference to the before work, the Markdown to HTML translation is done by this parser instead of using markdown.js, so there is no more HTML escaping since they will be handled enough. (except using Markdown in your code block recursively, this needs to use <code> tag by yourself)

Tutorial

Slides in HTML: In Reveal.js, the HTML structure shown as following. The typesetting is done by original HTML and CSS. ```html

...
...
...
...

**Slides in YAML**: The horizontal slides are as listed in the second block, which is an array. A slide can work with at least one attribute structure. yaml

metadata block

description: ...

author: ...

slides block

Sized Attribute

The images and resizeable items are support "sized" attribute, which contains three options: src, width and height. The src option is required, otherwise the feature will be disabled or invalid.

The width and height options are the same as the attributes on the <img> tag, they are optional. yaml img: src: img/icon.png width: 50% # same as width="50%" height: 70 # same as height="70"

Reveal Plugins

The plugins excluding markdown are enabled by default.

Command Line Interface

The command rym stands for "Reveal-Yaml Manager". ```bash

Download the latest Reveal.js archive

rym update

Create a project to current directory

rym new .

Serve the slides

rym serve

Reformat the project file

rym fmt

Pack the project to HTML archive

rym pack ```

Features

Here are the implemented features, or the functions are designed in progress. Generally, the parser will not check extra key values. In addition, almost all values support the null placeholder to present the default value (blank, ~, null).

Some functions are planed to be demonstrated in the help page. Open the help page by adding /help/ after URL, like http://localhost:8080/help/.

Metadata

Metadata contains HTML settings and global slide settings. The definition contains in the first YAML doc, split by horizontal line ---.

Slides