Reference

Everything the fragmention extension hoists.

The complete fragmention behaviour: the marker span, the elements it is hoisted onto, the fragment classes, and the list-table ordering.

Enabling the filter

filters:
  - fragmention

There is nothing to configure.

The marker span

An empty span at the start of an element:

- []{.fragment fragment-index="1"} The item text.

The span is removed, and what it carried is written onto the element that contained it. Classes become the element’s class, the identifier becomes its id, and every attribute is written with a data- prefix.

The attribute on a marker span.
Attribute Type Description
fragment-index string The RevealJS fragment order. Written as data-fragment-index on the target element.

The data- prefix is applied to every attribute, not to fragment-index alone, so an attribute already written as data-something becomes data-data-something. Any RevealJS fragment class can travel with the marker.

Where it is hoisted to

The four targets.
Written in Lands on Effect
A list item <li> The bullet or number appears with the text.
A definition <dd> The definition and its term reveal together.
A blockquote <blockquote> The whole quote reveals as one.
A list-table cell or row The cell or row The whole cell or row reveals as one.

Ordered and unordered lists behave alike, and nesting works: a nested item takes its own marker span.

Fragment classes

Every RevealJS fragment class is carried across:

- []{.fragment .fade-in fragment-index="1"} Fade in.
- []{.fragment .highlight-red fragment-index="2"} Highlight red.
- []{.fragment .grow fragment-index="3"} Grow.

With list-table

pandoc-ext/list-table consumes empty spans at the start of cells and rows itself, so it has to run first:

filters:
  - list-table
  - fragmention

Fragmention then renames fragment-index to data-fragment-index on the table elements, which is what RevealJS reads. The rename applies to a cell or row that carries the fragment class; one without it is left alone.

When a table is rewritten this way, the filter also adds a stylesheet that makes the borders of a row transparent for as long as that row is still hidden. RevealJS hides a fragment by making it transparent rather than by removing it, so without this the row’s borders draw an empty band on the slide before it arrives.

Limitations

  • RevealJS only.
  • The marker span must be empty and must come first; a span in the middle of an item is left as an ordinary fragment on that text.
  • With list-table, the order of the two filters matters.
Back to top