magical markdown slides
1# Quickstart
2
3Get started with lantern in minutes.
4
5## Installation
6
7Currently, you'll need to build from source:
8
9```bash
10git clone https://github.com/yourusername/lantern.git
11cd lantern
12cargo build --release
13```
14
15The binary will be available at `target/release/lantern`.
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, lantern!");
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
76lantern present presentation.md
77```
78
79### Navigation Keys
80
81- `→`, `j`, `Space`, `n` - Next slide
82- `←`, `k`, `p` - Previous slide
83- `Shift+N` - Toggle speaker notes
84- `q`, `Ctrl+C`, `Esc` - Quit presentation
85
86## Printing to Stdout
87
88Print all slides to stdout with formatting:
89
90```bash
91lantern print presentation.md
92```
93
94Adjust output width:
95
96```bash
97lantern print presentation.md --width 100
98```
99
100Use a specific theme:
101
102```bash
103lantern print presentation.md --theme nord
104```
105
106## Slide Separators
107
108Slides are separated by three dashes on a line by themselves:
109
110```markdown
111# Slide 1
112
113Content here
114
115---
116
117# Slide 2
118
119More content
120```
121
122## Front Matter
123
124Optional metadata at the start of your file:
125
126YAML format:
127
128```yaml
129---
130theme: dark
131author: Jane Doe
132---
133```
134
135TOML format:
136
137```toml
138+++
139theme = "monokai"
140author = "John Smith"
141+++
142```
143
144## Supported Markdown
145
146Currently supported:
147
148- Headings (H1-H6)
149- Paragraphs with inline formatting (bold, italic, strikethrough, code)
150- Code blocks with language tags
151- Lists (ordered and unordered with nesting)
152- Horizontal rules
153- Blockquotes
154- Tables with automatic column width calculation and proper Unicode borders
155
156## Speaker Notes
157
158Add speaker notes to any slide using the `::: notes` directive:
159
160```markdown
161# Your Slide Title
162
163Main content visible to the audience.
164
165::: notes
166These are your speaker notes.
167Press Shift+N to toggle their visibility.
168They appear in a separate panel during presentation.
169:::
170```
171
172## Status Bar
173
174The status bar at the bottom displays:
175
176- Filename of the current presentation
177- Current slide number / Total slides
178- Active theme name
179- Navigation hints
180- Notes visibility indicator (✓ when shown)
181- Elapsed presentation time (HH:MM:SS)
182
183## Environment Variables
184
185Customize defaults with environment variables:
186
187```bash
188# Set default theme
189export LANTERN_THEME=nord
190
191# Set default author (used if not in frontmatter)
192export USER=YourName
193```
194
195## Themes
196
197See the [Themes](./appendices/themes.md) reference for details on all available themes and customization options.