[ANN] Slipshow!

It is with some bitter joy that I’m announcing the 0.4.1 version of Slipshow on opam:

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

---
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! :partying_face:

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

    You can now do

    ---
    theme: vanier
    dimension: 16:9
    css: my_pres.css
    ---
    
    The content here.
    

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:

{#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:

{#my_element}
Some content

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

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

12 Likes