Changelog
What changed, and when.
Every released version of the offset-headings extension, and what each one changed.
0
0.4
0.4.2 (2026-08-01)
Bug Fixes
- fix: Raise
quarto-requiredto>=1.9.38. The extension manifest registers the filter atpre-ast, and the_extension.ymlschema only accepts a filter entry point from that version; below it the render fails validation.
0.4.1 (2026-08-01)
Documentation
- docs: Add a documentation website under
docs/, built on theatelierproject type and published to https://m.canouil.dev/quarto-offset-headings/. - 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.
0.4.0 (2026-07-23)
Breaking Changes
- feat!: Remove the
quarto-shiftoption and the compensation for Quarto’s automaticshift-heading-level-by: -1. The compensation could not detect an explicitshift-heading-level-byand silently produced wrong levels when one was set. The filter now only warns when Quarto’s automatic shift can apply, recommendingshift-heading-level-by: 0in the front matter, which disables the shift at the source.
New Features
- feat: Add the
quarto-shift-warningoption (defaulttrue) to silence the automatic heading shift warning onceshift-heading-level-by: 0is set explicitly, since an explicitshift-heading-level-byis invisible to Lua filters.
Documentation
- docs: Rewrite the automatic heading shift section around the explicit
shift-heading-level-by: 0fix. - docs: Set
shift-heading-level-by: 0in the Typst format of both example fixtures.
0.3
0.3.0 (2026-07-23)
New Features
- feat: Add the
quarto-shiftoption to state or disable theshift-heading-level-byQuarto applies after the filter runs.
Bug Fixes
- fix: Compensate for the
shift-heading-level-by: -1Quarto applies to Typst and PDF/LaTeX output when a document has no level-1 heading, so heading levels match across formats. Previously a heading left at level 1 was destroyed by that shift: the first one replaced the document title and the others became plain paragraphs.
Documentation
- docs: Document the interaction with Quarto’s automatic heading shift, including the AsciiDoc book and explicit
shift-heading-level-bylimitations.
0.2
0.2.2 (2026-06-08)
- fix: move lua filter to pre-ast to ensure it runs before any filters (e.g.,
cascade).
0.2.1 (2026-05-31)
Bug Fixes
- fix: Warn and clamp when
max-level(document option or per-heading attribute) is outside the global heading range[1, 6]instead of silently clamping.
Documentation
- docs: State explicit cross-format support (HTML, PDF/LaTeX, Typst, DOCX).
- docs: Document the combine rule: document-level offset and per-heading offsets always add together before clamping.
- docs: Clarify that
max-levelcaps the combined level (original level + document offset + per-heading or cascade offset), not the per-heading offset on its own. - docs: Add a worked example combining cascade,
max-level, anddepthon a single heading. - docs: Add
example-combine.qmdfixture exercising the combine rules, cap, and depth.
0.2.0 (2026-05-24)
New Features
- feat: Add
offset-headings-max-levelattribute andextensions.offset-headings.max-leveloption to cap how deep a positive offset may push a heading. - feat: Add
offset-headings-depthattribute andextensions.offset-headings.depthoption to bound how many descendant levels inherit a cascading offset.
0.1
0.1.0 (2026-05-22)
New Features
- feat: Initial release.