magical markdown slides
Quickstart#
Get started with lantern in minutes.
Installation#
Currently, you'll need to build from source:
git clone https://github.com/yourusername/lantern.git
cd lantern
cargo build --release
The binary will be available at target/release/lantern.
Creating Your First Deck#
Create a new markdown file called presentation.md:
---
theme: default
author: Your Name
---
# Welcome to Slides
A modern terminal-based presentation tool
---
## Features
- Parse markdown into slides
- Interactive TUI navigation with full keyboard support
- Speaker notes with toggle visibility
- Live presentation timer
- Status bar with slide count and navigation hints
- Print to stdout
- Syntax highlighting (coming soon)
---
## Code Example
```rust
fn main() {
println!("Hello, lantern!");
}
```
Supports multiple languages with syntax highlighting.
---
## Lists and Formatting
- Unordered lists with bullets
- **Bold text** for emphasis
- *Italic text* for style
- `inline code` for commands
---
# Thank You
Questions?
Presenting Your Slides#
Run the interactive TUI presenter:
lantern present presentation.md
Navigation Keys#
→,j,Space,n- Next slide←,k,p- Previous slideShift+N- Toggle speaker notesq,Ctrl+C,Esc- Quit presentation
Printing to Stdout#
Print all slides to stdout with formatting:
lantern print presentation.md
Adjust output width:
lantern print presentation.md --width 100
Use a specific theme:
lantern print presentation.md --theme nord
Slide Separators#
Slides are separated by three dashes on a line by themselves:
# Slide 1
Content here
---
# Slide 2
More content
Front Matter#
Optional metadata at the start of your file:
YAML format:
---
theme: dark
author: Jane Doe
---
TOML format:
+++
theme = "monokai"
author = "John Smith"
+++
Supported Markdown#
Currently supported:
- Headings (H1-H6)
- Paragraphs with inline formatting (bold, italic, strikethrough, code)
- Code blocks with language tags
- Lists (ordered and unordered with nesting)
- Horizontal rules
- Blockquotes
- Tables with automatic column width calculation and proper Unicode borders
Speaker Notes#
Add speaker notes to any slide using the ::: notes directive:
# Your Slide Title
Main content visible to the audience.
::: notes
These are your speaker notes.
Press Shift+N to toggle their visibility.
They appear in a separate panel during presentation.
:::
Status Bar#
The status bar at the bottom displays:
- Filename of the current presentation
- Current slide number / Total slides
- Active theme name
- Navigation hints
- Notes visibility indicator (✓ when shown)
- Elapsed presentation time (HH:MM:SS)
Environment Variables#
Customize defaults with environment variables:
# Set default theme
export LANTERN_THEME=nord
# Set default author (used if not in frontmatter)
export USER=YourName
Themes#
See the Themes reference for details on all available themes and customization options.