magical markdown slides
1# slides.rs
2
3> A modern, fast, terminal presentation tool inspired by [`maaslalani/slides`](https://github.com/maaslalani/slides), built with Rust.
4
5## Design Principles
6
7__Color as Data:__
8All color use flows through typed wrappers using `owo-colors`. No ad-hoc ANSI escapes.
9
10__Themeable:__
11Multiple built-in color schemes (basic, monokai, dracula, solarized, nord) with automatic light/dark variant detection based on terminal background. Themes can be selected via frontmatter, CLI flags, or environment variables, with optional explicit variant override using `:light` or `:dark` suffix.
12
13__Reproducible:__
14Everything is reproducible in plain text — decks can render without TUI (using `slides print`).
15
16__Composable:__
17Parser → Model → Renderer are independent modules with tests and traits.
18
19__Portable:__
20Runs on any terminal supporting UTF-8; dependencies limited to core crates.
21
22## Testing
23
24This project uses `cargo-llvm-cov` for coverage
25
26Installation:
27
28```sh
29# MacOS
30brew install cargo-llvm-cov
31
32# Linux
33cargo +stable install cargo-llvm-cov --locked
34```
35
36Run tests:
37
38```sh
39cargo llvm-cov
40
41# Open the browser
42cargo llvm-cov --open
43```