Releases: mfontanini/presenterm
Releases · mfontanini/presenterm
v0.15.1
v0.15.0
Breaking changes
- The behavior for "jump next fast" and "jump previous fast" keybindings (defaults to
nandp) 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 pressings(#678).
New features
- Allow specifying where a snippet's execution output will go (#658).
- Add
includecomment command to import markdown files (#651) (#683). - Allow validating snippets without explicitly executing them by using
--validate-snippetsswitch (#645) (#637). - Support iterm2 image protocol when running in tmux (#661).
- Add support for d2 diagrams (#657).
- Errors encountered when parsing markdown now always display the file, line, and column where the error was found, as well as the markdown line that caused the error (#674) (#653) (#684) (#685).
- Superscript via
^this^and<sup>this</sup>syntaxes is supported when using the kitty terminal. For other terminals we try to use unicode half block characters which cover a portion of the ASCII charset. (#606)(#617 ) (#665). - Allow alternative snippet executors for languages that support execution. This allows, for example, runnig rust code via
rust-scriptor python code viapytest(#614). - Allow using env var
PRESENTERM_CONFIG_FILEto point to the config file (#663) - thanks @Silver-Golden. - Set background color via OSC 11 to avoid having a colored edge around the presentation (#623) (#624) (#627).
- Add support for markdown footnotes (#616).
- Runtime errors are now centered rather than being left aligned with some fixed margin (#638).
- Allow configuring number of newlines in between list items (#628).
- Allow 3 digit hex colors (#609) - thanks @peterc-s.
- Allow configuring font used in PDF export (#608).
- Added
uvas an alternative executor for python code (#662) - thanks @JanNeuendorf. - Allow multiline slide titles (#679).
- Add support for multiline slide titles (#682) - thanks @barr-israel.
- Add support for multiline subtitle (#680) - thanks @barr-israel.
- Add support for syntax highlighting and execution for F# (#650) - thanks @mnebes.
- Use text style/colors in rust-script errors (#644).
- Added
rust-script-pedanticalternative executor for rust (#640).
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
- Add custom introduction slides example (#633).
- Add mention of
winget(#621) - thanks @DeveloperPaul123. - Fix incorrect note callout (#610) - thanks @Sacquer.
- Add a note to export pdf using
uv(#646) - thanks @PitiBouchon. - Clarify why no remote urls work with images (#664) - thanks @ryuheechul.
❤️ Sponsors
Thanks to the following users who supported presenterm via a github sponsorship in this release:
v0.14.0
New features
- Add support for exporting presentations as HTML files (#566) (#595) (#575) (#599) - thanks @JustSimplyKyle.
- Snippet execution output now contains configurable padding and built-in themes default to the same padding as snippets (2 spaces horizontally, one line vertically) (#592) (#593).
- Add highlighting and execution support for Jsonnet (#585) - thanks @imobachgs.
- Allow configuring snippets to be executed sequentially during exports (#584).
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_replacesnippet 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
Breaking changes
- The CLI parameter to generate the JSON schema for the config file (
--generate-config-file-schema) is now hidden behind ajson-schemafeature flag. The JSON schema file for the latest version is already publicly available athttps://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
- Support for slide transitions is now available (#530):
- Add
--outputoption to specify the path where the output file is written to during an export (#526) - thanks @marianozunino. - Allow specifying start/end lines in file snippet type (#565).
- Allow letting pauses become new slides when exporting (#557).
- Allow using images on right in footer (#554).
- Add
max_rowsconfiguration to cap vertical size (#531). - Add julia language highlighting and execution support (#561).
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_dirin theexternal_snippettest (#533) - thanks @Medovi. - Respect
extendsin a theme set viapathin front matter (#532).
Misc
- Refactor async renders (e.g. mermaid/typst/latex
+renderblocks,+execblocks, 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:
❤️ Sponsors
Thanks to the following users who supported presenterm via a github sponsorship in this release:
v0.12.0
Breaking changes
- Using incremental lists now adds an extra pause before and after a list. Use the
defaults.incremental_listsconfiguration 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_slidecomment command to avoid including a slide in the final presentation (#505). - Add
alignmentcomment command to specify text alignment for the remainder of a slide (#493) (#522). - Add
--current-themeCLI 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
- Fix typo in README.md (#490) - thanks @eltociear.
- Correctly include layout pic (#495) - thanks @Tuxified.
Misc
Sponsors
It is now possible to sponsor this project via github sponsors.
Thanks to @0atman for being the first project sponsor!
Nightly
This is a nightly build based on ref e215148c5f226605c31a152f578dd9fc426b7d3f
Generated on Sat Dec 6 00:07:05 UTC 2025
v0.11.0
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
- Add support for kitty's font size protocol. This is now used by default in built in themes in a few components such as the intro slide's title and slide titles. See the example presentation gif to check out how this looks like. Terminal suport for this feature is detected on startup and will be ignored if unsupported. This requires kitty >= 0.40.0 (#438) (#460) (#470).
- Allow specifying font size in a comment command, which causes any subsequent text in a slide to use the specified font size. Just like the above, only supported in kitty >= 0.40.0 for now (#458).
- Footers can now contain images in the left and center components. This allows including some form of branding/company logo to your presentations (#450) (#476).
- Footers can now contain inline markdown, which allows using bold, italics,
<span>tags for colors, etc (#466). - Presentation titles can now contain inline markdown (#464).
- Introduce palette.classes in themes to allow specifying combinations of foreground/background colors that can be referenced via the
classattribute in<span>tags (#468). - It's now possible to configure the alignment to use when
max_columnsis configured and the terminal width is larger than it (#475). - Add support for wikilinks (#448).
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-filepoints 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
v0.10.1
v0.10.0
New features
- Support for presentation speaker notes (#389) (#419) (#421) (#425) - thanks @dmackdev.
- Add support for colored text via inline
spanHTML tags (#390). - Add a color palette in themes to allow reusing colors across the theme and using predefined colors inside
spantags (#427). - Add support for github/gitlab style markdown alerts (#423) (#430).
- Allow using
+imageon code blocks to consume their output as an image (#429). - Allow multiline comment commands (#424).
- Allow auto rendering mermaid/typst/latex code blocks (#418).
- Allow capping max columns on presentation (#417).
- Automatically detect kitty support, including when running inside tmux (#406).
- Use kitty image protocol in ghostty (#405).
- Force color output in rust, c, and c++ compiler executions (#401).
- Add graphql code highlighting (#385) - thanks @GV14982.
- Add tcl code highlighting (#387) - thanks @jtplaarj.
- Add Haskell executor (#414) - thanks @feature-not-a-bug.
- Add C# to code executors (#399) - thanks @giggio.
- Add R to executors (#393) - thanks @jonocarroll.
Fixes
- Check for
term_programbeforetermto determine emulator (#420). - Allow jumping back to column in column layout (#396).
- Ignore comments that start with
vim:prefix (#395). - Respect
+no_backgroundon a+exec_replaceblock (#383).
Docs
v0.9.0
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_barin 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_backgroundproperty 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_replacewhich 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_terminalto 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).