magical markdown slides
1# Quickstart
2
3Get started with slides-rs in minutes.
4
5## Installation
6
7Currently, you'll need to build from source:
8
9```bash
10git clone https://github.com/yourusername/slides-rs.git
11cd slides-rs
12cargo build --release
13```
14
15The binary will be available at `target/release/slides`.
16
17## Creating Your First Deck
18
19Create a new markdown file called `presentation.md`:
20
21````markdown
22---
23theme: default
24author: Your Name
25---
26
27# Welcome to Slides
28
29A modern terminal-based presentation tool
30
31---
32
33## Features
34
35- Parse markdown into slides
36- Interactive TUI navigation with full keyboard support
37- Speaker notes with toggle visibility
38- Live presentation timer
39- Status bar with slide count and navigation hints
40- Print to stdout
41- Syntax highlighting (coming soon)
42
43---
44
45## Code Example
46
47```rust
48fn main() {
49 println!("Hello, slides!");
50}
51```
52
53Supports multiple languages with syntax highlighting.
54
55---
56
57## Lists and Formatting
58
59- Unordered lists with bullets
60- **Bold text** for emphasis
61- *Italic text* for style
62- `inline code` for commands
63
64---
65
66# Thank You
67
68Questions?
69````
70
71## Presenting Your Slides
72
73Run the interactive TUI presenter:
74
75```bash
76slides present presentation.md
77```
78
79### Navigation Keys
80
81- `→`, `j`, `Space`, `n` - Next slide
82- `←`, `k`, `p` - Previous slide
83- `0-9` - Jump to slide (single digit)
84- `Shift+N` - Toggle speaker notes
85- `q`, `Ctrl+C`, `Esc` - Quit presentation
86
87## Printing to Stdout
88
89Print all slides to stdout with formatting:
90
91```bash
92slides print presentation.md
93```
94
95Adjust output width:
96
97```bash
98slides print presentation.md --width 100
99```
100
101Use a specific theme:
102
103```bash
104slides print presentation.md --theme dark
105```
106
107## Slide Separators
108
109Slides are separated by three dashes on a line by themselves:
110
111```markdown
112# Slide 1
113
114Content here
115
116---
117
118# Slide 2
119
120More content
121```
122
123## Front Matter
124
125Optional metadata at the start of your file:
126
127YAML format:
128
129```yaml
130---
131theme: dark
132author: Jane Doe
133---
134```
135
136TOML format:
137
138```toml
139+++
140theme = "monokai"
141author = "John Smith"
142+++
143```
144
145## Supported Markdown
146
147Currently supported:
148
149- Headings (H1-H6)
150- Paragraphs with inline formatting (bold, italic, strikethrough, code)
151- Code blocks with language tags
152- Lists (ordered and unordered with nesting)
153- Horizontal rules
154- Blockquotes
155- Tables
156
157## Speaker Notes
158
159Add speaker notes to any slide using the `::: notes` directive:
160
161```markdown
162# Your Slide Title
163
164Main content visible to the audience.
165
166::: notes
167These are your speaker notes.
168Press Shift+N to toggle their visibility.
169They appear in a separate panel during presentation.
170:::
171```
172
173## Status Bar
174
175The status bar at the bottom displays:
176
177- Filename of the current presentation
178- Current slide number / Total slides
179- Active theme name
180- Navigation hints
181- Notes visibility indicator (✓ when shown)
182- Elapsed presentation time (HH:MM:SS)
183
184## Environment Variables
185
186Customize defaults with environment variables:
187
188```bash
189# Set default theme
190export SLIDES_THEME=dark
191
192# Set default author (used if not in frontmatter)
193export USER=YourName
194```