mirror of
https://github.com/mfontanini/presenterm.git
synced 2025-05-05 15:32:58 +00:00
Some checks are pending
Deploy docs / build-and-deploy (push) Waiting to run
Merge checks / Checks (push) Waiting to run
Merge checks / Validate nix flake (push) Waiting to run
Merge checks / Validate bat assets (push) Waiting to run
Merge checks / Validate JSON schemas (push) Waiting to run
This caches:
* Ascii images so we don't reload them every time we're doing slide
transitions.
* Ascii image resizes, so if we go to a slide that contains an image and
we're using slide transitions, the next transition that includes that
image won't require resizing it to that same sizes.
The one performance "issue" still present when using slide transitions
is that we still need to pay for that first image -> ascii image
conversion and that first ascii image resize the first time we
transition to a slide that contains an image. This is currently
noticeable in debug mode and not in release mode (at least in my machine
™️), but it would be sweet if it wasn't there ever. For this we need to
run through all slides, find all images, ascii convert them and resize
them to the current terminal size. The same should be done when the
terminal is resized.
presenterm
presenterm lets you create presentations in markdown format and run them from your terminal, with support for image and animated gifs, highly customizable themes, code highlighting, exporting presentations into PDF format, and plenty of other features. This is how the demo presentation looks like when running in the kitty terminal:
Check the rest of the example presentations in the examples directory.
Documentation
Visit the documentation to get started.
Features
- Define your presentation in a single markdown file.
- Images and animated gifs on terminals like kitty, iterm2, and wezterm.
- Customizable themes including colors, margins, layout (left/center aligned content), footer for every slide, etc. Several built-in themes can give your presentation the look you want without having to define your own.
- Code highlighting for a wide list of programming languages.
- Font sizes for terminals that support them.
- Selective/dynamic code highlighting that only highlights portions of code at a time.
- Column layouts.
- mermaid graph rendering.
- LaTeX and typst formula rendering.
- Introduction slide that displays the presentation title and your name.
- Slide titles.
- Snippet execution for various programming languages.
- Export presentations to PDF.
- Pause portions of your slides.
- Custom key bindings.
- Automatically reload your presentation every time it changes for a fast development loop.
- Define speaker notes to aid you during presentations.
See the introduction page to learn more.
Presenterm in Action
Here are some talks and demos that feature presenterm:
- Bringing Terminal Aesthetics to the Web With Rust by Orhun Parmaksız
- 7 Rust Terminal Tools That You Should Use by Orhun Parmaksız
- Renaissance of Terminal User Interfaces with Rust by Orhun Parmaksız
Gave a talk using presenterm? We would love to feature it here! Open a PR or issue to get it added.
Description
Languages
Rust
99.2%
Shell
0.4%
Nix
0.2%
JavaScript
0.2%