Skip to content

Releases: mfontanini/presenterm

v0.15.1

03 Aug 20:41
68b7b21

Choose a tag to compare

Fixes

  • Disable OSC 11 when running in tmux (#696).
  • Follow custom theme symlinks (#692).

v0.15.0

13 Jul 20:52
3f683b8

Choose a tag to compare

Breaking changes

  • The behavior for "jump next fast" and "jump previous fast" keybindings (defaults to n and p) now jumps straight from one slide to the next/previous one ignoring pauses. Before this used to "reveal" all pauses when jumping forward before going to the next slide. This behavior was weird and unintuitive so now fast jumps go straight into the next/previous slides. The action of "showing all pauses on the current slide" can now be done by pressing s (#678).

New features

Fixes

  • Consider rect start row when capping max terminal rows (#656).
  • Skip speaker notes slide on skip_slide (#625).
  • Don't loop on 0 bytes read when querying capabilities (#620).
  • Make code snippet language specifiers case insensitive (#613) - thanks @peterc-s.
  • Bump dependencies (#681) - thanks @barr-israel.

Chore

  • Refactored code to make it more easily testeable, and added lots of tests to ensure markdown is rendered as expected. This will hopefully reduce the number of errors found after each release (#660) (#659) (#655) (#647).
  • Bump rust version to 1.82 (#611).
  • Perform better validation around matching HTML tags (#668).
  • Don't run nightly job if the git hash hasn't changed (#667) (#675) (#669).
  • Display an error when using http(s) urls in image tags (#666).
  • Update Catppuccin themes to use palettes (#672) - thanks @jmcharter.

Docs

❤️ Sponsors

Thanks to the following users who supported presenterm via a github sponsorship in this release:

v0.14.0

17 May 20:36
c9fd1f6

Choose a tag to compare

New features

Fixes

  • Skip slides with pauses correctly (#598).
  • Avoid printing text if there's no vertical space for it, which otherwise looks bad particularly when using font size > 1 (#594).
  • Execute snippets only once during export (#583).
  • Don't add an extra pause after lists if there's nothing left (#580).
  • Allow interleaved spans and variables in footer (#577).
  • Truly center +exec_replace snippet output (#572).

Docs

  • Added link to public presentation using presenterm (#589) - thanks @pwnwriter.
  • Rename parameter name to the correct one in docs (#570) - thanks @DzuWe.
  • Fix typo in highlighting.md (#586) - thanks @0atman.

Chore

  • Bump dependencies (#596).

❤️ Sponsors

Thanks to the following users who supported presenterm via a github sponsorship in this release:

v0.13.0

25 Apr 13:11
4bf1f10

Choose a tag to compare

Breaking changes

  • The CLI parameter to generate the JSON schema for the config file (--generate-config-file-schema) is now hidden behind a json-schema feature flag. The JSON schema file for the latest version is already publicly available at https://github.com/mfontanini/presenterm/blob/${VERSION}/config-file-schema.json, so anyone can use it without having to generate it by hand. This allows cutting down the number of dependencies in this project quite a bit (#563).

New features

Fixes

  • Center overflow lines when using centered text (#546).
  • Don't add extra space before heading if prefix in theme is empty (#542).
  • Use no typst background in terminal-* built in themes (#535).
  • Use std::env::temp_dir in the external_snippet test (#533) - thanks @Medovi.
  • Respect extends in a theme set via path in front matter (#532).

Misc

  • Refactor async renders (e.g. mermaid/typst/latex +render blocks, +exec blocks, etc) to work truly asynchronously. This causes the output to be polled faster, and causes jumping to a slide that contains an async render to take a likely negligible (but maybe noticeable) amount of time to be jumped to. This was needed for slide transitions to work seemlessly (#556).
  • Get rid of textproperties (#529).
  • Add links to presentations using presenterm (#544) - thanks @orhun.

Performance improvements

  • A few performance improvements had to be done for slide transitions to work seemlessly:
    • Pre-scale ASCII images when transitions are enabled (#550).
    • Pre-scale generated images (#553).
    • Cache resized ASCII images (#547).

❤️ Sponsors

Thanks to the following users who supported presenterm via a github sponsorship in this release:

v0.12.0

25 Mar 01:30
238c85f

Choose a tag to compare

Breaking changes

  • Using incremental lists now adds an extra pause before and after a list. Use the defaults.incremental_lists configuration parameter to go back to the previous behavior (#487) (#498).

New features

  • PDF exports are now generated by invoking weasyprint rather than by using the now deprecated presenterm-export. This gets rid of the need for tmux and opens up the door for other export formats (#509) (#517).
  • PDF export dimensions can now also be specified in the config file rather than always having them inferred by the terminal size (#511).
  • Allow specifying path for temporary files generated during presentation export (#518).
  • Respect font sizes in generated PDF (#510).
  • Add skip_slide comment command to avoid including a slide in the final presentation (#505).
  • Add alignment comment command to specify text alignment for the remainder of a slide (#493) (#522).
  • Add --current-theme CLI parameter to display the theme being used (#489).
  • Add gruvbox dark theme (#483) - thanks @ret2src.

Fixes

  • Fix broken ANSI escape code parsing which would cause command output to sometimes be incorrectly parsed and therefore led to its colors/attributes not being respected (#500).
  • Center lists correctly (#512) (#520).
  • Respect end slide shorthand in speaker notes mode (#494).
  • Use more visible colors in snippet execution output in terminal-light/dark themes (#485).
  • Show error if sixel mode is selected but disabled (#525).

CI

  • Add nightly build job (#496).

Docs

Misc

  • Cleanup text attributes (#519).
  • Refactor snippet processing (#484).

Sponsors

It is now possible to sponsor this project via github sponsors.

Thanks to @0atman for being the first project sponsor!

Nightly

20 Mar 00:08

Choose a tag to compare

Nightly Pre-release
Pre-release

This is a nightly build based on ref e215148c5f226605c31a152f578dd9fc426b7d3f
Generated on Sat Dec 6 00:07:05 UTC 2025

v0.11.0

08 Mar 21:21
0057b8b

Choose a tag to compare

Breaking changes

  • Footer templates are now sanitized, and any variables surrounded in braces that aren't supported (e.g. {potato}) will now cause presenterm to display an error. If you'd like to use braces in contexts where you're not trying to reference a variable you can use double braces, e.g. live at {{PotatoConf}} (#442) (#467) (#469) (#471).

New features

Fixes

  • Don't get stuck if tmux doesn't passthrough (#456).
  • Don't squash image if terminal's font aspect ratio is not 2:1 (#446).
  • Fail if --config-file points to non existent file (#474).
  • Use right script name for kotlin files when executing (#462).
  • Respect lists that start at non 1 indexes (#459).
  • Jump to right slide on code attribute change (#478).

Improvements

  • Remove result return type from builder fns that don't need it (#465).
  • Refactor theme code (#463).
  • Restructure terminal code and add test for margins/layouts (#443).
  • Use fastrand instead of rand (#441).
  • Avoid cloning strings when styling them (#440).

v0.10.1

15 Feb 00:33

Choose a tag to compare

Fixes

  • Don't error out if options in front matter doesn't include auto_render_languages (#454).
  • Bump sixel-rs to 0.4.1 to fix build in aarch64 and riscv64 (#452) - thanks @Xeonacid.

v0.10.0

02 Feb 21:05

Choose a tag to compare

New features

Fixes

  • Check for term_program before term to determine emulator (#420).
  • Allow jumping back to column in column layout (#396).
  • Ignore comments that start with vim: prefix (#395).
  • Respect +no_background on a +exec_replace block (#383).

Docs

  • Document tmux active session bug (#402).
  • Add notes on running bat directly (#397).

v0.9.0

06 Oct 19:33
657155e

Choose a tag to compare

Breaking changes

  • Default themes now no longer use a progress bar based footer. Instead they use indicator of the current page number and the total number of pages. If you'd like to preserve the old behavior, you can override the theme by using footer.style = progress_bar in your theme.
  • Links that include a title (e.g. [my title](http://example.com)) now have their title rendered as well. Removing a link's title will make it look the same as they used to.

New features

  • Use "template" footer in built-in themes (#358).
  • Allow including external code snippets (#328) (#372).
  • Add +no_background property to remove background from code blocks (#363) (#368).
  • Show colored output from snippet execution output (#316).
  • Style markdown inside block quotes (#350) (#351).
  • Allow using all intro slide variables in footer template (#338).
  • Include hidden line prefix in executors file (#337).
  • Show link labels and titles (#334).
  • Add +exec_replace which executes snippets and replaces them with their output (#330) (#371).
  • Always show snippet execution bar (#329).
  • Handle suspend signal (SIGTSTP) (#318).
  • Allow closing with q (#321).
  • Add event, location, and date labels in intro slide (#317).
  • Use transparent background in mermaid charts (#314).
  • Add +acquire_terminal to acquire the terminal when running snippets (#366) (#376).
  • Add PHP executor (#332).
  • Add Racket syntax highlighting (#367).
  • Add TOML highlighting (#361).

Fixes

  • Wrap code snippets if they don't fit in terminal (#320).
  • Allow list-themes/acknowledgements to run without path (#359).
  • Translate tabs in code snippets to 4 spaces (#356).
  • Add padding to right of code block wrapped lines (#354).
  • Don't wrap code snippet separator line (#353).
  • Show block quote prefix when wrapping (#352).
  • Don't crash on code block with only hidden-line-prefixed lines (#347).
  • Canonicalize resources path (#333).
  • Execute script relative to current working directory (#323).
  • Support rendering mermaid charts on windows (#319).

Improvements

  • Add example on how column layouts and pauses interact (#348).
  • Rename jump_to_vertical_center -> jump_to_middle in docs (#342).
  • Document all snippet highlighting keyword (#335).