Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/KmolYuan/reveal-yaml-rs

Rust implementation of Reveal.js YAML server. (independent software)
https://github.com/KmolYuan/reveal-yaml-rs

cli-app markdown reveal-js reveal-md schema slides yaml

Last synced: about 9 hours ago
JSON representation

Rust implementation of Reveal.js YAML server. (independent software)

Awesome Lists containing this project

README

        

# Reveal.yaml

[![dependency status](https://deps.rs/repo/github/KmolYuan/reveal-yaml-rs/status.svg)](https://deps.rs/crate/reveal-yaml/)
[![Documentation](https://docs.rs/reveal-yaml/badge.svg)](https://docs.rs/reveal-yaml/latest/reveal_yaml/project/index.html)

Rust implementation of [Reveal.js](https://github.com/hakimel/reveal.js) YAML server, a command line interface (CLI) tool.

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:

YAML 1.2 backend: (hosted by myself)

What is YAML?
YAML is a structural language that can simply represent sequence and map data structures with indent syntax. YAML also has some inline syntax that is compatible with non-strict JSON language.

What is the old Python version?
This project is transferred from Python language, so you may found it on PyPI. Reveal.yaml is 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.

### Why should I use this?

| Source | Output |
|:-------------------------------|:-------------------------------|
| YAML + media (Images / Videos) | HTML Slide (static) / Showcase |

Have you ever 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, a simple layout function, a powerful support with original Reveal.js function, and a live presentation when editing.

Difference to the before work, the Markdown to HTML translation works by this parser instead of using markdown.js, so **there is no more HTML escaping since they will be handled enough**. Except for using Markdown recursively in your code block, this needs to use the `` tags by yourself.

If you are not decide yet, see the documentation for more information.

## Installation

Download CLI executable from GitHub release:

Wherever the binary placed, it should be visible for the environment variable `PATH`.

If you are a Rust user, install it with cargo is possible. Unfortunately, the binary is build with the cargo toolchain, and you will get a large size than the CI/CD result.

```bash
# Ensure openssl headers are installed in Ubuntu
sudo apt install libssl-dev
cargo install reveal-yaml
```

It recommends download GitHub distribution directly for saving your time. For example, a CI/CD script can write as:

```bash
wget -O reveal-yaml.zip https://github.com/KmolYuan/reveal-yaml-rs/releases/latest/download/reveal-yaml-linux-amd64.zip
unzip reveal-yaml.zip
chmod +x rym
./rym pack
```

The executable can be checked with `rym` command.

## Command Line Interface

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

| Command | Description |
|:--------|:------------------------------------------------|
| help | Show the CLI help message |
| update | Download the Reveal.js resources |
| new | Create a new project and its directory |
| init | Create a new project from an existing directory |
| serve | Serve the current project |
| fmt | Format the current project |
| pack | Pack the current project |

Please see `rym --help`/`rym subcommand --help` for more information.

### Edit Mode (Hot Reload / Auto-reload)

There are `-e`/`--edit` flags on the `serve` command. This option let the server keep watching the project file `reveal.yaml`, then reload the page from the web browser. (via JS & WebSocket)

If this option is not enabled, the server will only resolve once at startup, and always use the cache.

```bash
rym serve --edit
```