mirror of
https://github.com/mfontanini/presenterm.git
synced 2025-05-05 23:42:59 +00:00
chore: prepare for 0.13.0 changes (#568)
This commit is contained in:
commit
4bf1f10d83
50
CHANGELOG.md
50
CHANGELOG.md
@ -1,3 +1,51 @@
|
|||||||
|
# v0.13.0 - 2025-04-25
|
||||||
|
|
||||||
|
## 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](https://github.com/mfontanini/presenterm/issues/563)).
|
||||||
|
|
||||||
|
## New features
|
||||||
|
|
||||||
|
* Support for [slide transitions](https://mfontanini.github.io/presenterm/features/slide-transitons.html) is now available ([#530](https://github.com/mfontanini/presenterm/issues/530)):
|
||||||
|
* Add fade slide transition ([#534](https://github.com/mfontanini/presenterm/issues/534)).
|
||||||
|
* Add slide horizontally slide transition animation ([#528](https://github.com/mfontanini/presenterm/issues/528)).
|
||||||
|
* Add `collapse_horizontal` slide transition ([#560](https://github.com/mfontanini/presenterm/issues/560)).
|
||||||
|
* Add `--output` option to specify the path where the output file is written to during an export ([#526](https://github.com/mfontanini/presenterm/issues/526)).
|
||||||
|
* Allow specifying [start/end lines](https://mfontanini.github.io/presenterm/features/code/highlighting.html#including-external-code-snippets) in file snippet type ([#565](https://github.com/mfontanini/presenterm/issues/565)) - thanks @marianozunino.
|
||||||
|
* Allow letting [pauses become new slides](https://mfontanini.github.io/presenterm/configuration/settings.html#pause-behavior) when exporting ([#557](https://github.com/mfontanini/presenterm/issues/557)).
|
||||||
|
* Allow [using images on right in footer](https://mfontanini.github.io/presenterm/features/themes/definition.html#footer-images) ([#554](https://github.com/mfontanini/presenterm/issues/554)).
|
||||||
|
* Add [`max_rows` configuration](https://mfontanini.github.io/presenterm/configuration/settings.html#maximum-presentation-height) to cap vertical size ([#531](https://github.com/mfontanini/presenterm/issues/531)).
|
||||||
|
* Add julia language highlighting and execution support ([#561](https://github.com/mfontanini/presenterm/issues/561)).
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* Center overflow lines when using centered text ([#546](https://github.com/mfontanini/presenterm/issues/546)).
|
||||||
|
* Don't add extra space before heading if prefix in theme is empty ([#542](https://github.com/mfontanini/presenterm/issues/542)).
|
||||||
|
* Use no typst background in terminal-* built in themes ([#535](https://github.com/mfontanini/presenterm/issues/535)).
|
||||||
|
* Use `std::env::temp_dir` in the `external_snippet` test ([#533](https://github.com/mfontanini/presenterm/issues/533)) - thanks @Medovi.
|
||||||
|
* Respect `extends` in a theme set via `path` in front matter ([#532](https://github.com/mfontanini/presenterm/issues/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](https://github.com/mfontanini/presenterm/issues/556)).
|
||||||
|
* Get rid of `textproperties` ([#529](https://github.com/mfontanini/presenterm/issues/529)).
|
||||||
|
* Add links to presentations using presenterm ([#544](https://github.com/mfontanini/presenterm/issues/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](https://github.com/mfontanini/presenterm/issues/550)).
|
||||||
|
* Pre-scale generated images ([#553](https://github.com/mfontanini/presenterm/issues/553)).
|
||||||
|
* Cache resized ASCII images ([#547](https://github.com/mfontanini/presenterm/issues/547)).
|
||||||
|
|
||||||
|
## ❤️ Sponsors
|
||||||
|
|
||||||
|
Thanks to the following users who supported _presenterm_ via a [github sponsorship](https://github.com/sponsors/mfontanini) in this release:
|
||||||
|
|
||||||
|
* [@0atman](https://github.com/0atman)
|
||||||
|
* [@orhun](https://github.com/orhun)
|
||||||
|
* [@fipoac](https://github.com/fipoac)
|
||||||
|
|
||||||
# v0.12.0 - 2025-03-24
|
# v0.12.0 - 2025-03-24
|
||||||
|
|
||||||
## Breaking changes
|
## Breaking changes
|
||||||
@ -41,7 +89,7 @@
|
|||||||
|
|
||||||
It is now possible to sponsor this project via [github sponsors](https://github.com/sponsors/mfontanini).
|
It is now possible to sponsor this project via [github sponsors](https://github.com/sponsors/mfontanini).
|
||||||
|
|
||||||
Thanks to @0atman for being the first project sponsor!
|
Thanks to [@0atman](https://github.com/0atman) for being the first project sponsor!
|
||||||
|
|
||||||
# v0.11.0 - 2025-03-08
|
# v0.11.0 - 2025-03-08
|
||||||
|
|
||||||
|
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -655,7 +655,7 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "presenterm"
|
name = "presenterm"
|
||||||
version = "0.12.0"
|
version = "0.13.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
@ -4,7 +4,7 @@ authors = ["Matias Fontanini"]
|
|||||||
description = "A terminal slideshow presentation tool"
|
description = "A terminal slideshow presentation tool"
|
||||||
repository = "https://github.com/mfontanini/presenterm"
|
repository = "https://github.com/mfontanini/presenterm"
|
||||||
license = "BSD-2-Clause"
|
license = "BSD-2-Clause"
|
||||||
version = "0.12.0"
|
version = "0.13.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
@ -45,6 +45,7 @@ Visit the [documentation][docs-introduction] to get started.
|
|||||||
* [Slide titles][docs-slide-titles].
|
* [Slide titles][docs-slide-titles].
|
||||||
* [Snippet execution][docs-code-execute] for various programming languages.
|
* [Snippet execution][docs-code-execute] for various programming languages.
|
||||||
* [Export presentations to PDF][docs-pdf-export].
|
* [Export presentations to PDF][docs-pdf-export].
|
||||||
|
* [Slide transitions][docs-slide-transitions].
|
||||||
* [Pause][docs-pauses] portions of your slides.
|
* [Pause][docs-pauses] portions of your slides.
|
||||||
* [Custom key bindings][docs-key-bindings].
|
* [Custom key bindings][docs-key-bindings].
|
||||||
* [Automatically reload your presentation][docs-hot-reload] every time it changes for a fast development loop.
|
* [Automatically reload your presentation][docs-hot-reload] every time it changes for a fast development loop.
|
||||||
@ -52,7 +53,7 @@ Visit the [documentation][docs-introduction] to get started.
|
|||||||
|
|
||||||
See the [introduction page][docs-introduction] to learn more.
|
See the [introduction page][docs-introduction] to learn more.
|
||||||
|
|
||||||
# Presenterm in Action
|
# Presenterm in action
|
||||||
|
|
||||||
Here are some talks and demos that feature _presenterm_:
|
Here are some talks and demos that feature _presenterm_:
|
||||||
|
|
||||||
@ -76,6 +77,7 @@ Gave a talk using _presenterm_? We would love to feature it here! Open a PR or i
|
|||||||
[docs-code-highlight]: https://mfontanini.github.io/presenterm/features/code/highlighting.html
|
[docs-code-highlight]: https://mfontanini.github.io/presenterm/features/code/highlighting.html
|
||||||
[docs-code-execute]: https://mfontanini.github.io/presenterm/features/code/execution.html
|
[docs-code-execute]: https://mfontanini.github.io/presenterm/features/code/execution.html
|
||||||
[docs-selective-highlight]: https://mfontanini.github.io/presenterm/features/code/highlighting.html#selective-highlighting
|
[docs-selective-highlight]: https://mfontanini.github.io/presenterm/features/code/highlighting.html#selective-highlighting
|
||||||
|
[docs-slide-transitions]: https://mfontanini.github.io/presenterm/features/slide-transitons.html
|
||||||
[docs-layout]: https://mfontanini.github.io/presenterm/features/layout.html
|
[docs-layout]: https://mfontanini.github.io/presenterm/features/layout.html
|
||||||
[docs-mermaid]: https://mfontanini.github.io/presenterm/features/code/mermaid.html
|
[docs-mermaid]: https://mfontanini.github.io/presenterm/features/code/mermaid.html
|
||||||
[docs-latex]: https://mfontanini.github.io/presenterm/features/code/latex.html
|
[docs-latex]: https://mfontanini.github.io/presenterm/features/code/latex.html
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
- [Themes](./features/themes/introduction.md)
|
- [Themes](./features/themes/introduction.md)
|
||||||
- [Definition](./features/themes/definition.md)
|
- [Definition](./features/themes/definition.md)
|
||||||
- [PDF export](./features/pdf-export.md)
|
- [PDF export](./features/pdf-export.md)
|
||||||
|
- [Slide transitions](./features/slide-transitions.md)
|
||||||
- [Speaker notes](./features/speaker-notes.md)
|
- [Speaker notes](./features/speaker-notes.md)
|
||||||
- [Configuration](./configuration/introduction.md)
|
- [Configuration](./configuration/introduction.md)
|
||||||
- [Options](./configuration/options.md)
|
- [Options](./configuration/options.md)
|
||||||
|
@ -61,13 +61,25 @@ defaults:
|
|||||||
If you would like your presentation to be left or right aligned instead of centered when the terminal is too wide, you
|
If you would like your presentation to be left or right aligned instead of centered when the terminal is too wide, you
|
||||||
can use the `max_columns_alignment` key:
|
can use the `max_columns_alignment` key:
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
defaults:
|
defaults:
|
||||||
max_columns: 100
|
max_columns: 100
|
||||||
|
# Valid values: left, center, right
|
||||||
max_columns_alignment: left
|
max_columns_alignment: left
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Maximum presentation height
|
||||||
|
|
||||||
|
The `max_rows` and `max_rows_alignment` properties are analogous to `max_columns*` to allow capping the maximum number
|
||||||
|
of rows:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
defaults:
|
||||||
|
max_rows: 100
|
||||||
|
# Valid values: top, center, bottom
|
||||||
|
max_rows_alignment: left
|
||||||
|
```
|
||||||
|
|
||||||
## Incremental lists behavior
|
## Incremental lists behavior
|
||||||
|
|
||||||
By default, [incremental lists](../features/commands.md) will pause before and after a list. If you would like to change
|
By default, [incremental lists](../features/commands.md) will pause before and after a list. If you would like to change
|
||||||
@ -81,6 +93,27 @@ defaults:
|
|||||||
pause_after: true
|
pause_after: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Slide transitions
|
||||||
|
|
||||||
|
Slide transitions allow animating your presentation every time you move from a slide to the next/previous one. The
|
||||||
|
configuration for slide transitions is the following:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
transition:
|
||||||
|
# how long the transition should last.
|
||||||
|
duration_millis: 750
|
||||||
|
|
||||||
|
# how many frames should be rendered during the transition
|
||||||
|
frames: 45
|
||||||
|
|
||||||
|
# the animation to use
|
||||||
|
animation:
|
||||||
|
style: <style_name>
|
||||||
|
```
|
||||||
|
|
||||||
|
See the [slide transitions page](../features/slide-transitions.md) for more information on which animation styles are
|
||||||
|
supported.
|
||||||
|
|
||||||
# Key bindings
|
# Key bindings
|
||||||
|
|
||||||
Key bindings that _presenterm_ uses can be manually configured in the config file via the `bindings` key. The following
|
Key bindings that _presenterm_ uses can be manually configured in the config file via the `bindings` key. The following
|
||||||
@ -94,6 +127,16 @@ bindings:
|
|||||||
# the keys that cause the presentation to move backwards.
|
# the keys that cause the presentation to move backwards.
|
||||||
previous: ["h", "k", "<left>", "<page_up>", "<up>"]
|
previous: ["h", "k", "<left>", "<page_up>", "<up>"]
|
||||||
|
|
||||||
|
# the keys that cause the presentation to move "fast" to the next slide. this will ignore:
|
||||||
|
#
|
||||||
|
# * Pauses.
|
||||||
|
# * Dynamic code highlights.
|
||||||
|
# * Slide transitions, if enabled.
|
||||||
|
next_fast: ["n"]
|
||||||
|
|
||||||
|
# same as `next_fast` but jumps fast to the previous slide.
|
||||||
|
previous_fast: ["p"]
|
||||||
|
|
||||||
# the key binding to jump to the first slide.
|
# the key binding to jump to the first slide.
|
||||||
first_slide: ["gg"]
|
first_slide: ["gg"]
|
||||||
|
|
||||||
@ -130,6 +173,8 @@ default won't apply anymore and only what you've defined will be used.
|
|||||||
|
|
||||||
# Snippet configurations
|
# Snippet configurations
|
||||||
|
|
||||||
|
The configurations that affect code snippets in presentations.
|
||||||
|
|
||||||
## Snippet execution
|
## Snippet execution
|
||||||
|
|
||||||
[Snippet execution](../features/code/execution.md#executing-code-blocks) is disabled by default for security reasons.
|
[Snippet execution](../features/code/execution.md#executing-code-blocks) is disabled by default for security reasons.
|
||||||
@ -232,15 +277,29 @@ speaker_notes:
|
|||||||
always_publish: true
|
always_publish: true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Presentation exports
|
||||||
|
|
||||||
|
The configurations that affect PDF exports.
|
||||||
|
|
||||||
## PDF export size
|
## PDF export size
|
||||||
|
|
||||||
The size of exported PDFs can be configured via the `export.dimensions` key:
|
The size of exported PDFs can be configured via the `export.dimensions` key:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
export:
|
export:
|
||||||
dimensions:
|
dimensions:
|
||||||
columns: 80
|
columns: 80
|
||||||
rows: 30
|
rows: 30
|
||||||
```
|
```
|
||||||
|
|
||||||
See [the PDF export page](../features/pdf-export.md) for more information.
|
See [the PDF export page](../features/pdf-export.md) for more information.
|
||||||
|
|
||||||
|
## Pause behavior
|
||||||
|
|
||||||
|
By default pauses will be ignored in generated PDF files. If instead you'd like every pause to generate a new page in
|
||||||
|
the export, set the `export.pauses` attribute:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
export:
|
||||||
|
pauses: new_slide
|
||||||
|
```
|
||||||
|
@ -30,6 +30,7 @@ Code highlighting is supported for the following languages:
|
|||||||
| java | ✓ |
|
| java | ✓ |
|
||||||
| javascript | ✓ |
|
| javascript | ✓ |
|
||||||
| json | |
|
| json | |
|
||||||
|
| julia | ✓ |
|
||||||
| kotlin | ✓ |
|
| kotlin | ✓ |
|
||||||
| latex | |
|
| latex | |
|
||||||
| lua | ✓ |
|
| lua | ✓ |
|
||||||
@ -140,6 +141,18 @@ language: rust
|
|||||||
```
|
```
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
If you'd like to include only a subset of the file, you can use the optional fields `start_line` and `end_line`:
|
||||||
|
|
||||||
|
~~~markdown
|
||||||
|
```file +exec +line_numbers
|
||||||
|
path: snippet.rs
|
||||||
|
language: rust
|
||||||
|
# Only shot lines 5-10
|
||||||
|
start_line: 5
|
||||||
|
end_line: 10
|
||||||
|
```
|
||||||
|
~~~
|
||||||
|
|
||||||
## Showing a snippet without a background
|
## Showing a snippet without a background
|
||||||
|
|
||||||
Using the `+no_background` flag will cause the snippet to have no background. This is useful when combining it with the
|
Using the `+no_background` flag will cause the snippet to have no background. This is useful when combining it with the
|
||||||
|
@ -5,8 +5,8 @@ Presentations can be converted into PDF by using [weasyprint](https://pypi.org/p
|
|||||||
to install extra dependencies for the tool to work.
|
to install extra dependencies for the tool to work.
|
||||||
|
|
||||||
> [!note]
|
> [!note]
|
||||||
> If you were using _presenterm-export_ before, that tool already required _weasyprint_ so it is already installed in
|
> If you were using _presenterm-export_ before it was deprecated, that tool already required _weasyprint_ so it is
|
||||||
> whatever virtual env you were using and there's nothing to be done.
|
> already installed in whatever virtual env you were using and there's nothing to be done.
|
||||||
|
|
||||||
|
|
||||||
After you've installed _weasyprint_, run _presenterm_ with the `--export-pdf` parameter to generate the output PDF:
|
After you've installed _weasyprint_, run _presenterm_ with the `--export-pdf` parameter to generate the output PDF:
|
||||||
@ -15,7 +15,8 @@ After you've installed _weasyprint_, run _presenterm_ with the `--export-pdf` pa
|
|||||||
presenterm --export-pdf examples/demo.md
|
presenterm --export-pdf examples/demo.md
|
||||||
```
|
```
|
||||||
|
|
||||||
The output PDF will be placed in `examples/demo.pdf`.
|
The output PDF will be placed in `examples/demo.pdf`. Alternatively you can use the `--output` flag to specify where you
|
||||||
|
want the output file to be written to.
|
||||||
|
|
||||||
> [!note]
|
> [!note]
|
||||||
> If you're using a separate virtual env to install _weasyprint_ just make sure you activate it before running
|
> If you're using a separate virtual env to install _weasyprint_ just make sure you activate it before running
|
||||||
@ -28,3 +29,7 @@ By default, the size of each page in the generated PDF will depend on the size o
|
|||||||
If you would like to instead configure the dimensions by hand, set the `export.dimensions` key in the configuration file
|
If you would like to instead configure the dimensions by hand, set the `export.dimensions` key in the configuration file
|
||||||
as described in the [settings page](../configuration/settings.md#pdf-export-size).
|
as described in the [settings page](../configuration/settings.md#pdf-export-size).
|
||||||
|
|
||||||
|
## Pause behavior
|
||||||
|
|
||||||
|
See the [settings page](../configuration/settings.md#pause-behavior) to learn how to configure the behavior of pauses in
|
||||||
|
generated PDFs.
|
||||||
|
24
docs/src/features/slide-transitions.md
Normal file
24
docs/src/features/slide-transitions.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Slide transitions
|
||||||
|
|
||||||
|
Slide transitions allow animating your presentation every time you move from a slide to the next/previous one. See the
|
||||||
|
[configuration page](../configuration/settings.md) to learn how to configure transitions.
|
||||||
|
|
||||||
|
The following animations are supported:
|
||||||
|
|
||||||
|
## `fade`
|
||||||
|
|
||||||
|
Fade the current slide into the next one.
|
||||||
|
|
||||||
|
[](https://asciinema.org/a/RvxLw0FHOopjdF4ixWbCkWuSw)
|
||||||
|
|
||||||
|
## `slide_horizontal`
|
||||||
|
|
||||||
|
Slide horizontally to the next/previous slide.
|
||||||
|
|
||||||
|
[](https://asciinema.org/a/T43ttxPWZ8TsM2auTqNZSWrmZ)
|
||||||
|
|
||||||
|
## `collapse_horizontal`
|
||||||
|
|
||||||
|
Collapse the current slide into the center of the screen horizontally.
|
||||||
|
|
||||||
|
[](https://asciinema.org/a/VB8i3kGMvbkbiYYPpaZJUl2dW)
|
@ -163,7 +163,7 @@ using another brace. e.g. `{{potato}} farms` will be displayed as `{potato} farm
|
|||||||
|
|
||||||
#### Footer images
|
#### Footer images
|
||||||
|
|
||||||
Besides text, images can also be used in the left and center positions. This can be done by specifying an `image` key
|
Besides text, images can also be used in the left/center/right positions. This can be done by specifying an `image` key
|
||||||
under each of those attributes:
|
under each of those attributes:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@ -173,7 +173,8 @@ footer:
|
|||||||
image: potato.png
|
image: potato.png
|
||||||
center:
|
center:
|
||||||
image: banana.png
|
image: banana.png
|
||||||
right: "{current_slide} / {total_slides}"
|
right:
|
||||||
|
image: apple.png
|
||||||
# The height of the footer to adjust image sizes
|
# The height of the footer to adjust image sizes
|
||||||
height: 5
|
height: 5
|
||||||
```
|
```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user