-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Story-board is a Haskell-DSL for presenting slides.
It is intended as a viable replacement for beamer, PowerPoint, and pandoc, but with stronger scripting ability.
Type | Purpose | Monad? | Monoid? |
---|---|---|---|
Story a |
Layout slide content | Monad | Yes |
Tile a |
Draw Rectangular Picture | Functor | Yes |
Mosaic a |
Piece together Tile s |
Applicative | Yes |
A Story
is a monad for rendering the slide. You can think of a Story
as a state monad
of a statically sized Mosaic
, with commands to fill the spaces inside the Mosaic
, so
you can tell your story.
A Tile
is a fixed-size piece of screen real-estate. A Tile
s size can statically
queried. When rendering, a Tile
may fill a larger space than originally requested (padding).
A Mosaic
is a layout of tiles around a cavity, using an algorithm modeled on the Tk/Tcl packer algorithm.
A Mosaic
is filled outside inwards, using the Applicative Functor or Monoid API.
The Cavity
, the space inside a Mosaic
that is not filled yet, is stretched as needed.
If you know the size of the final Mosaic
, then the Cavity
size can be statically determined.
A Story Board is a list of Story
s.
- Anything that uses blank-canvas (generates at
Canvas
) can be plugged into story-board. - This includes diagrams.