4.0 KiB
title | author |
---|---|
Introducing presenterm | Matias |
Introduction slide
An introduction slide can be defined by using a front matter at the beginning of the markdown file:
---
title: My presentation title
sub_title: An optional subtitle
author: Your name which will appear somewhere in the bottom
---
The slide's theme can also be configured in the front matter:
---
theme:
# Specify it by name for built-in themes
name: my-favorite-theme
# Otherwise specify the path for it
path: /home/myself/themes/epic.yaml
# Or override parts of the theme right here
override:
default:
colors:
foreground: white
---
Headers
Using commonmark setext headers allows you to set titles for your slides (like seen above!):
Headers
---
Other headers
All other header types are simply treated as headers within your slide.
Subheaders
And more
Slide commands
Certain commands in the form of HTML comments can be used:
Ending slides
In order to end a single slide, use:
<!-- end_slide -->
Creating pauses
Slides can be paused by using the pause
command:
<!-- pause -->
This allows you to:
- Create suspense.
- Have more interactive presentations.
- Possibly more!
Code highlighting
Code highlighting is enabled for code blocks that include the most commonly used programming languages:
// Rust
fn greet() -> &'static str {
"hi mom"
}
# Python
def greet() -> str:
return "hi mom"
// C++
string greet() {
return "hi mom";
}
And many more!
Dynamic code highlighting
Select specific subsets of lines to be highlighted dynamically as you move to the next slide. Optionally enable line numbers to make it easier to specify which lines you're referring to!
#[derive(Clone, Debug)]
struct Person {
name: String,
}
impl Person {
fn say_hello(&self) {
println!("hello, I'm {}", self.name)
}
}
Shell code execution
Run commands from the presentation and display their output dynamically.
for i in $(seq 1 5)
do
echo "hi $i"
sleep 0.5
done
Images
Image rendering is supported as long as you're using iterm2, your terminal supports the kitty graphics protocol (such as the kitty terminal itself!), or the sixel format.
- Include images in your slides by using

. - Images will be rendered in their original size.
- If they're too big they will be scaled down to fit the screen.
Picture by Alexis Bailey / CC BY-NC 4.0
Column layouts
Column layouts let you organize content into columns.
Here you can place code:
fn potato() -> u32 {
42
}
Plus pretty much anything else:
- Bullet points.
- Images.
- more!
Picture by Alexis Bailey / CC BY-NC 4.0
Because we just reset the layout, this text is now below both of the columns. Code and any other element will now look like it usually does:
print("Hello world!")
Text formatting
Text formatting works as expected:
- This is bold text.
- This is italics.
- This is bold and this is bold and italic.
This is strikethrough text.- Inline code
is also supported
. - Links look like this
Other elements
Other elements supported are:
Tables
Name | Taste |
---|---|
Potato | Great |
Carrot | Yuck |
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.
Thematic breaks
A horizontal line by using ---
.