# \[ANN\] Slipshow!

**URL:** <https://discuss.ocaml.org/t/ann-slipshow/16337>\
**Category:** Community\
**Tags:** announce\
**Created:** [March 20, 2025, 8:55am UTC](https://discuss.ocaml.org/t/ann-slipshow/16337 "2025-03-20T08:55:06Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![panglesd](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/panglesd/32/3931_2.png) [@panglesd](https://discuss.ocaml.org/u/panglesd)\
**Post date:** [August 5, 2025, 8:49am UTC](https://discuss.ocaml.org/t/ann-slipshow/16337/9 "2025-08-05T08:49:01Z")

</div>

It is with some _bitter_ joy that I’m announcing the 0.4.1 version of Slipshow [on opam](https://github.com/ocaml/opam-repository/pull/28181):

## The slides strike back

The main improvements of this version are the introduction of arguments to actions, a frontmatter, and improvements to slides.

All together, they allow to easily design presentations the slides way:

![ezgif-208995c3ed578f](https://github.com/user-attachments/assets/844754a7-7731-45a8-8cc5-97a315d5cd92)

```auto
---
toplevel-attributes: {children:slide children:enter="~duration:0"}
---

# Slide 1

Content

---

# Slide 2

Content

---

# Slide 3

You get it

```

So, why “_bitter_ joy”?

I was reluctant to add good support for traditional slide-based presentation. There are already very good and mature solutions for this, including some with similar technical foundations as Slipshow. I was more interested in developping the new things: Slips!

However, Slipshow starts to have useful features that competitor don’t always have (for instance: a self-contained html output! But more, and more to come). Also, for people who already have slide-based presentations, it makes it easier to migrate them, and use a single tool for old and new presentations!

Finally, I wanted to make Slipshow a bit more versatile and added attributes, frontmatter, and a new options: `toplevel-attributes`. The proper slide support is actually just a nice consequence of this versatility! 🥳

Here is the full changelog:

- Fix `children:` not working sometimes

- Add `--toplevel-attributes` to control the attributes on the toplevel  
container

- Render slide titles as slide titles

- Add arguments to actions

- Add frontmatter

## OCaml-specific notes on action arguments

In this release, I add the ability to give arguments to actions. For instance, an action can be to focus on a specific element:

```plaintext
{#my_element}
Some content

{focus="my_element"}

```

The “positional” arguments is the list of IDs that must be focused. To add other kind of arguments , they need to be named:

```plaintext
{#my_element}
Some content

{focus="~duration:2 ~margin:5 my_element"}

```

It was fun to integrate OCaml syntax in slipshow 😉 This way, people coming to OCaml after learning slipshow will feel familiar with the syntax!

---

_[View the full topic](https://discuss.ocaml.org/t/ann-slipshow/16337)._
