Changelog
What changed, and when.
Every released version of the portable-links extension, and what each one changed.
0
0.3
0.3.1 (2026-09-23)
Bug Fixes
- fix: Read the
enabledoption through the schema, so a value that is not a boolean is reported rather than ignored. Comparing the document text meantenabled: noleft the filter rewriting links and said nothing; it is now named as a type error. (#25) - fix: Gate the options check on the acting format union so plain HTML and epub stay silent. (#25)
- 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. (#25)
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. (#21)
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. (#22) - 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. (#24)
- build: Update the vendored Lua modules to 2.5.0, which adds the accessor that reads what the schema resolves an option to. The schema validator moves to its own release train and is pinned at
schema-v2.2.0, which accepts onlytrueandfalseas a boolean. (#25)
0.3.0 (2026-09-07)
New Features
- feat: Check the document configuration against the extension schema and report what it does not accept. (#17)
0.2
0.2.1 (2026-08-01)
Documentation
- docs: Add a documentation website under
docs/, built on theatelierproject type and published to https://m.canouil.dev/quarto-portable-links/, including a Typst rendering of the site whose links the filter rewrites back to it. - 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.
Bug Fixes
- fix: Anchor the
index.qmdrule in.gitignoreto the repository root. Unanchored, it also matcheddocs/index.qmd, the documentation website’s home page.
0.2.0 (2026-05-31)
Bug Fixes
- fix: Warn when
QUARTO_EXECUTE_INFOexists but cannot be parsed (unreadable file or invalid JSON), before falling back to document metadata; previously the fallback was silent and misconfiguration was hard to diagnose. - fix: Anchor the
.qmd/.htmlmatch to end-of-path (.extat end-of-string, or before#/?) so targets such asmethods.qmd.backupare no longer treated as cross-page links.
Documentation
- docs: Clarify that
site-urlbelongs in_quarto.ymlor_quarto.yaml(project config) and never in document front matter; the missing-site-urlwarning now restates this. - docs: Add nested-path, root-relative, current-directory, query-string, and non-match cases to the example, and extend the before/after table accordingly.
Refactoring
- refactor: Extract the HTML slide-format set into the shared
_modules/slide-formats.luamodule so prism and portable-links agree on what counts as a slide format; the canonical source lives inmcanouil-skills/skills/creating-quarto-extension/assets/modulesand is copied into each extension on release. - refactor: Reset
site_urlat the start ofMetaso batch renders cannot leak state across documents.
0.1
0.1.2 (2026-05-24)
Bug Fixes
- fix: Strip a leading
/from root-relative targets so rewritten URLs do not contain a double slash.
0.1.0 (2026-05-22)
New Features
- feat: Rewrite relative
.qmd/.htmlcross-page links to absolutesite-urllinks in non-HTML formats. - feat: Treat HTML slide formats (
revealjs,slidy,s5,dzslides,slideous) as non-HTML so their cross-page links are rewritten.