Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/KmolYuan/reveal-yaml-rs
- Owner: KmolYuan
- License: mit
- Created: 2021-04-21T14:05:36.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T03:35:33.000Z (over 1 year ago)
- Last Synced: 2024-10-06T01:35:10.032Z (about 1 month ago)
- Topics: cli-app, markdown, reveal-js, reveal-md, schema, slides, yaml
- Language: Rust
- Homepage: https://crates.io/crates/reveal-yaml
- Size: 3.71 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
```