Changelog
What changed, and when.
Every released version of the cascade extension, and what each one changed.
2
2.1
2.1.1 (2026-09-23)
Bug Fixes
- fix: Read the cascade depth attribute through the schema, so a rejected value is reported instead of silently changing which headings repeat. (#42)
- fix: Report a key nested inside an option as a warning rather than an error, so one nested typo does not invalidate the whole configuration. This matches how the extension already reports an unknown key at the top of its own block. (#42)
Documentation
- docs: Serve the extension’s social card as the Open Graph image, so a shared link shows the card rather than the first image on the page. (#39)
- docs: Correct the documented default of keep-hrule from true to false. (#42)
- docs: Add worked examples for every cascade behaviour. Correct what the pages say about a slide-level heading marked
.no-cascade. (#43)
Refactoring
- build: Update the vendored Lua modules to 2.3.0, which includes the
schema-checkfix for an extension whose entry points are in a subdirectory. A module no longer carries a version line in its header, so its checksum changes only when its code changes. (#40) - build: Fetch the schema validator from a Quarto Wizard release asset rather than a raw path inside its repository, which a refactor could move without notice. The vendored file is unchanged. (#41)
- build: Update the vendored Lua modules to 2.5.0, which adds the accessors that read what the schema resolves an option, an element’s attributes and a format’s options to. The schema validator moves to its own release train and is pinned at
schema-v2.2.0, which accepts onlytrueandfalseas a boolean. (#42)
2.1.0 (2026-09-07)
New Features
- feat: Check the document configuration against the extension schema and report what it does not accept. (#35)
2.0
2.0.0 (2026-08-03)
WARNING
A document that sets shift-heading-level-by, at the top level or under a format, now has to mirror the value as extensions.cascade.shift. Without it the chain is read one level off and each --- produces a duplicate section slide.
New Features
- feat: add the
extensions.cascade.shiftoption, declaring theshift-heading-level-byapplied to the document. Quarto treatsshift-heading-level-byas a Pandoc option, applies it after filters run, and passes it to no filter, wherever it is written; the filter has to be told. A value that is not a whole number, or that moves the slide level outside the range 1 to 6, is reported and ignored.
Bug Fixes
- fix: drop the AST scan that guessed the slide level, which raised it on any slide whose heading was directly followed by a deeper heading. The slide heading was then read as a section parent and dropped from the chain, and the
---produced no continuation slide at all. The slide level now comes from the RevealJSslide-leveland theshiftoption alone, so it no longer depends on the shape of the document. - fix: report a
depththat is not a whole number of zero or more, instead of accepting it silently. A negativedepthrepeated no heading at all, and a non-numeric one was read as no limit, in both cases without a word.
1
1.0
1.0.2 (2026-08-03)
Bug Fixes
- fix: repeat a leading heading inside every reopened div when
---splits it, with its identifier removed. A callout whose title is written as a heading kept that title on the first slide only and fell back to the generic name of its type on continuation slides.
1.0.1 (2026-08-01)
Documentation
- docs: Add a documentation website under
docs/, built on theatelierproject type and published to https://m.canouil.dev/quarto-revealjs-cascade/, including a Reveal.js deck built by the site so every behaviour can be stepped through. - docs: Trim
README.mdto a landing page pointing at the website, andexample.qmdto a short starting point to copy. - docs: Add the Pages workflow, which renders
docs/on pull requests and deploys it from the release tag. - docs: Add the Quarto Extensions Updates workflow, scanning
docsfor the website’s own dependencies.
1.0.0 (2026-05-31)
New Features
- feat: warn when the cloned heading chain skips a level on a continuation slide (for example, a
##followed by a####with no###between them). The output is still produced; the warning surfaces a source structure that is likely accidental. - feat: add the per-heading
cascade-depthattribute, which overrides the document-levelextensions.cascade.depthfor the chain that starts at that heading. - feat: reuse the canonical shared
logging.luamodule from_modules/for warning output, in line with the other extensions in the monorepo.
Documentation
- docs: document behaviour of
---inside code blocks and Markdown tables (passed through unchanged). - docs: document that orphaned parent headings can produce empty slides and how to avoid them.
0
0.5
0.5.0 (2026-05-24)
New Features
- feat: add the
.no-cascadeheading class to opt a heading out of cascade repetition. A heading marked.no-cascadestays on its own slide but is never repeated on continuation slides nor carried in the parent chain for subsequent---slides. - feat: add the
extensions.cascade.depthoption to limit how many heading levels of the chain are repeated on continuation slides. When set toN, only the topNlevels relative to the slide level are repeated; when unset, the full chain is repeated.
0.4
0.4.1 (2026-05-14)
Bug Fixes
- fix: strip
---nested inside Divs whenkeep-hrule: falsefor non-reveal.js formats. Previously only top-level horizontal rules were removed, so rules inside callouts,column-margin, and other Divs leaked into the output.
0.4.0 (2026-05-14)
New Features
- feat: split slides on
---nested inside a Div (reveal.js only). The enclosing Div is closed, the heading chain is repeated, and an identical Div is reopened around the content that follows. Works for every Div except.panel-tabsetand cross-reference targets (a Div whose identifier looks liketbl-…,fig-…,thm-…, …). The filter now runs at thepre-astentry point.
0.3
0.3.2 (2026-04-27)
Bug Fixes
- fix: cascade chain on
---slides whenshift-heading-level-byis set under a format-scoped option (e.g.format.revealjs.shift-heading-level-by). Quarto strips format-scoped options fromdoc.metabefore user filters run, so the 0.3.1 fix silently fell back toshift = 0and incorrectly cloned section-level headings on---slides. Slide level detection now combines the metadata path with an AST scan that escalates the slide level when the source structure indicates a deeper effective level.
0.3.1 (2026-04-18)
Bug Fixes
- fix: cascade heading chain on
---slides when the source has no level 1 heading (e.g. starts at## h2). Previously the filter bumped its internal slide level past the writer’s, so the cloned headings never created slide breaks and everything collapsed into a single slide. The filter now derives the slide level fromPANDOC_WRITER_OPTIONS.slide_levelandshift-heading-level-bydirectly.
0.3.0 (2026-04-09)
Bug Fixes
- fix: exclude section-level headings (topmost heading level) from cascade repetition on
---slides. Works correctly withshift-heading-level-by.
0.2
0.2.0 (2026-04-08)
Bug Fixes
- fix: repeat heading chain on
---slides when no level 1 heading exists in the source.
0.1
0.1.1 (2026-04-08)
Chores
- chore: tweak
example.qmd.
0.1.0 (2026-04-08)
New Features
- feat: Initial release.