2025-03-08 13:16:33 -08:00

3.3 KiB

title author
Introducing _presenterm_ Matias

Customizability

presenterm allows configuring almost anything about your presentation:

  • The colors used.
  • Layouts.
  • Footers, including images in the footer.

This is an example on how to configure a footer:

footer:
  style: template
  left:
    image: doge.png
  center: '<span class="noice">Colored</span> _footer_'
  right: "{current_slide} / {total_slides}"
  height: 5

palette:
  classes:
    noice:
      foreground: red

Headers

Markdown headers can be used to set slide titles like:

Headers
-------

Headers

Each header type can be styled differently.

Subheaders

And more

Code highlighting

Highlight code in 50+ programming languages:

// Rust
fn greet() -> &'static str {
    "hi mom"
}
# Python
def greet() -> str:
    return "hi mom"

Code snippets can have different styles including no background:

// C++
string greet() {
    return "hi mom";
}

Dynamic code highlighting

Dynamically highlight different subsets of lines:

#[derive(Clone, Debug)]
struct Person {
    name: String,
}

impl Person {
    fn say_hello(&self) {
        println!("hello, I'm {}", self.name)
    }
}

Snippet execution

Code snippets can be executed on demand:

  • For 20+ languages, including compiled ones.
  • Display their output in real time.
  • Comment out unimportant lines to hide them.
# use std::thread::sleep;
# use std::time::Duration;
fn main() {
    let names = ["Alice", "Bob", "Eve", "Mallory", "Trent"];
    for name in names {
        println!("Hi {name}!");
        sleep(Duration::from_millis(500));
    }
}

Images

Images and animated gifs are supported in terminals such as:

  • kitty
  • iterm2
  • wezterm
  • ghostty
  • Any sixel enabled terminal

Picture by Alexis Bailey / CC BY-NC 4.0

Column layouts

Use column layouts to structure your presentation:

  • Define the number of columns.
  • Adjust column widths as needed.
  • Write content into every column.
fn potato() -> u32 {
    42
}


Layouts can be reset at any time.

print("Hello world!")

Text formatting

Text formatting works including:

  • Bold text.
  • Italics.
  • Bold and italic.
  • Strikethrough.
  • Inline code.
  • Links
  • Colored text.
  • Background color can be changed too.

More markdown

Other markdown elements supported are:

Block quotes

Lorem ipsum dolor sit amet. Eos laudantium animi ut ipsam beataeet et exercitationem deleniti et quia maiores a cumque enim et aspernatur nesciunt sed adipisci quis.

Alerts

Caution

Github style alerts

Tables

Name Taste
Potato Great
Carrot Yuck

The end