A terminal-based presentation tool written in Ruby. Renders Markdown slides with Kitty text sizing protocol support for beautifully scaled headings.
gem install przn
przn your_slides.md
przn --export your_slides.md
przn --export pdf your_slides.md
przn --export pdf -o output.pdf your_slides.md
Requires a TrueType font (with glyf outlines) for proper rendering. Prawn does not support CFF-based fonts (most .otf files). Fonts are auto-detected in this order: NotoSansJP TTF, HackGen, Arial Unicode.
| Key | Action |
|---|---|
→ ↓ l j Space |
Next slide |
← ↑ h k |
Previous slide |
g |
First slide |
G |
Last slide |
q Ctrl-C |
Quit |
przn's Markdown format is compatible with Rabbit's Markdown mode.
Slides are separated by # (h1) headings.
# Slide 1
content
# Slide 2
more content*emphasis*
**bold**
~~strikethrough~~
`inline code`* item 1
* item 2
* nested item
- also works as bullets
1. ordered
2. listFenced code blocks:
```ruby
puts "hello"
```Indented code blocks (4 spaces) with optional kramdown IAL:
def hello
puts "world"
end
{: lang="ruby"}> quoted text
> continues here| Header 1 | Header 2 |
|----------|----------|
| cell 1 | cell 2 |term
: definitionUses Rabbit-compatible {::tag} notation. Supported size names: xx-small, x-small, small, large, x-large, xx-large, xxx-large, xxxx-large, and numeric 1-7.
{::tag name="x-large"}Big text{:/tag}
{::tag name="7"}Maximum size{:/tag}On Kitty-compatible terminals, sized text is rendered using the OSC 66 text sizing protocol. On other terminals, the markup is silently ignored.
{:.center}
centered text
{:.right}
right-aligned text{::comment}
This text is hidden from the presentation.
{:/comment}Visible text {::note}(speaker note){:/note}The gem is available as open source under the terms of the MIT License.