Changelog

What changed, and when.

Every released version of the code-window extension, and what each one changed.

1

1.6

1.6.0 (2026-10-05)

New Features
  • feat: Add the --code-window-bg and --code-window-title-bg variables, so a theme can set the window and title bar colours in light and dark modes. (#76)
Bug Fixes
  • fix: Follow the theme’s background in the code window, so the window and its highlighted-lines chip stay readable on a dark Quarto or Reveal.js theme. (#76)
  • fix: Keep the title bar’s own tint on dark Quarto themes and on Reveal.js, where Quarto’s fixed grey replaced it. (#76)
  • fix: Let a theme’s own :root rule override the theming variables, which lost to the extension’s defaults before. (#76)

1.5

1.5.2 (2026-10-04)

Bug Fixes
  • fix: Darken the filename and the highlighted-lines chip in the title bar for HTML and Typst, so both meet the WCAG AA contrast ratio with the usual dark-on-light and light-on-dark body text. The filename was as low as 2.5:1 on a light HTML theme and 3.2:1 on a dark Typst page before. (#74)
  • fix: Wrap a long filename in the title bar instead of scrolling it on a narrow screen, and wrap a long highlighted-lines chip between its ranges instead of cutting it off. The scrolling title bar had no keyboard access, which accessibility checks report. (#74)

1.5.1 (2026-09-23)

New Features
  • feat: Report a key nested inside an option that the schema does not declare, such as a typo in a nested setting. Only top-level keys were checked before. (#60)
Bug Fixes
  • fix: Stand the Skylighting hot-fix down when the filter is off, so a Typst document that sets enabled: false compiles. It failed on an undeclared name before. (#71)
  • fix: Keep a block’s own language where the filter derives no name for it, which means the filter is off, or auto-filename is off, or the output format is neither HTML nor Typst. The block was relabelled as default before, and the language the author wrote was lost. (#66)
  • fix: Keep inline code in a Typst document as a code element, so Pandoc writes the syntax highlighting definitions for it. A document with inline code and no code block failed to compile before. (#65)
  • fix: Remove the code-window attributes from a block that sets code-window-enabled=“false”, and from a block that sets code-window-lines when lines-label is off. They reached the HTML output as data-code-window-* attributes before. (#63)
  • fix: Remove the extension’s own label attribute when the output format gets no window chrome, so a writer that keeps attributes no longer prints it. (#63)
  • fix: Check every code block attribute in the code-window group against the schema, so a value nothing validated before, such as code-window-enabled, is now reported when it is wrong. The extension’s own duplicate warnings for an invalid code-window-style or code-window-collapse are removed, since the schema already names the same mistake. (#60)
  • fix: Honour an explicit code-window-no-auto-filename=“false”, which previously suppressed auto-filename exactly like “true”. (#60)
  • fix: Honour code-window-collapse="false" on a block, which could not turn off a document that sets collapse. The block fell back to the document setting and was folded anyway. (#69)
  • fix: Remove the extension’s own duplicate collapse and style warnings at the document option level, now that the schema reports each mistake once. (#60)
  • fix: Match the code-window-collapse attribute schema to the string Pandoc always provides, so a documented “true” or “false” value no longer warns. (#60)
  • fix: Validate a code block’s attributes on the HTML path the same way the Typst path already does, so an invalid attribute on a block holding executed-cell output is now reported on HTML too, instead of being silently accepted. (#60)
  • fix: Gate the options check on the html and typst formats so non-acting formats stay silent. (#60)
  • fix: Report that nested key as a warning rather than an error, so the typo does not invalidate the whole configuration. (#60)
Documentation
  • docs: Add worked examples for the derived filename, the highlighted-lines chip, the executed-cell output, the enabled option, the Typst wrapper name, and the Typst hot-fixes. (#61)
  • 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. (#58)
Refactoring
  • build: Update the vendored Lua modules to 2.3.0. A module no longer carries a version line in its header, so its checksum changes only when its code changes. (#59)
  • 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 only true and false as a boolean. (#60)

1.5.0 (2026-09-06)

New Features
  • feat: Check the document configuration against the extension schema and report what it does not accept. (#54)
Refactoring
  • build: Declare the vendored Lua modules in _extensions/code-window/_dependencies.yml and move them to _extensions/code-window/_vendor/. Each module names the release it came from, so it can be checked against that release. (#53)

1.4

1.4.0 (2026-09-01)

New Features
  • feat: Add the cell-output option. The output of an executed cell is no longer framed, and cell-output: true frames it again. (#39)
Bug Fixes
  • fix: Remove the internal code-window-auto-label attribute from the rendered document.

1.3

1.3.3 (2026-08-02)

Refactoring
  • refactor: Target the Quarto Wizard v2 extension schema in _schema.yml.

1.3.2 (2026-08-01)

Documentation
  • docs: Document the filter as filters: with the bare code-window name. The long form path/at overrides the entry point of every filter the extension contributes, so the documented at: pre-quarto pulled the Typst title hotfix from post-quarto to pre-quarto; the manifest already carries both entry points.

1.3.1 (2026-08-01)

Bug Fixes
  • fix: Honour a boolean option written as a bare YAML false, such as auto-filename: false, enabled: false, or lines-label: false. The value was read as an absent option, so the default applied instead and only the quoted string worked.
Documentation
  • docs: Correct the reference and the examples page, which said a derived filename frames nothing in HTML. It frames the block through the injected script, as the rest of the HTML chrome does.

  • docs: Add a documentation website under docs/, built on the atelier project type and published to https://m.canouil.dev/quarto-code-window/, framed by the extension itself.

  • docs: Record that the filter claims code blocks at pre-quarto, which prevents typst-render from seeing its own {typst} blocks and double-decorates alongside language-cell-decorator.

  • docs: Trim README.md to a landing page pointing at the website.

  • 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 docs for the website’s own dependencies.

1.3.0 (2026-07-22)

New Features
  • feat: code blocks with no language or an unknown language are now framed like highlighted code cells instead of being left as bare blocks. A no-language block is labelled default; an unknown language keeps its original token as the label. Override per block with an explicit filename, code-window-no-auto-filename="true", or code-window-enabled="false", or globally with auto-filename: false.

1.2

1.2.1 (2026-07-10)

Bug Fixes
  • fix(typst): remove sticky: true from the title-bar block so page-sized code windows start on the current page instead of being postponed, leaving near-empty pages behind (orphaned heading, then an empty window frame). The title bar may now occasionally sit alone at the bottom of a page; the code body still breaks across pages correctly.

1.2.0 (2026-05-31)

New Features
  • feat: render a highlighted-lines chip alongside the filename in the code-window title bar (HTML, Reveal.js, and Typst). Uses Quarto’s code-line-numbers attribute or a new code-window-lines attribute. The chip can be disabled globally via lines-label: false.
  • feat: collapsible code windows via a <details> wrapper (HTML/Reveal.js). Per-block opt-in with the code-window-collapse attribute (true/false/open/closed) or document-wide via the collapse option.
  • feat: expose CSS custom properties (--code-window-macos-icon, --code-window-windows-icon, --code-window-macos-icon-width, --code-window-windows-icon-width, --code-window-icon-height) so users can override the window-button icons.
Documentation
  • docs: document code-line-numbers integration, the new collapse option, and the CSS custom properties for icon overrides.
Refactoring
  • refactor: synchronise shared modules (html, logging, metadata, pandoc-helpers, string) with canonical versions.

1.1

1.1.5 (2026-04-21)

Bug Fixes
  • fix: propagate #| filename: chunk option into the code-window wrapper for HTML and Typst output. Previously, using #| filename: (instead of the filename= Pandoc attribute) caused a double .code-with-filename wrapper in HTML and the wrong auto-generated filename in Typst.

1.1.4 (2026-04-20)

Bug Fixes
  • fix: wrap code-window blocks in a plain Div when they are direct children of a Quarto layout div (layout-ncol, layout-nrow, layout), so that Quarto’s grid assigns one column per code block instead of one column per raw block.

1.1.3 (2026-04-15)

Refactoring
  • refactor: Synchronise shared module (logging.lua) with canonical version.

1.1.2 (2026-04-15)

Bug Fixes
  • fix: use CSS Canvas system colour so code-window chrome and body render against the page background, not a parent container’s background.

1.1.1 (2026-04-13)

Bug Fixes
  • fix: apply Typst code-window styling to code blocks inside lists, blockquotes, and definition lists.

1.1.0 (2026-04-12)

Bug Fixes
  • fix: preserve code-annotation structure for HTML/Reveal.js auto-filename blocks.

1.0

1.0.1 (2026-04-10)

Bug Fixes
  • fix: reduce Reveal.js code-window title bar height by 35% so it is proportional to slide content.

1.0.0 (2026-03-29)

New Features
  • feat: derive Typst window chrome colours from page background for dark theme support.

0

0.4

0.4.0 (2026-03-29)

Bug Fixes
  • fix: unwrap Quarto’s DecoratedCodeBlock Div to prevent double filename wrapping in Typst output.
  • fix: evaluate theorem/example title strings as Typst markup so inline code renders correctly instead of being stringified.
  • fix: normalise code blocks with no or unknown language class to default for consistent styling across all formats.
  • fix: default to # comment symbol for unknown code block languages (default, txt, etc.) in annotation detection.
  • fix: support code annotations with syntax-highlighting: idiomatic (native Typst highlighting) via a show raw.line rule.
New Features
  • feat: replace global hotfix.quarto-version with per-hotfix thresholds for independent auto-disable.
Refactoring
  • refactor: extract language normalisation into dedicated _modules/language.lua module.

0.3

0.3.0 (2026-03-23)

New Features
  • feat: add multiple window decoration styles for code blocks (macos, windows, default).
  • feat: add Typst code-annotations hot-fix with annotation markers, circled numbers, and bidirectional linking.
  • feat: add hotfix.quarto-version threshold to auto-disable temporary hot-fixes when Quarto reaches a specified version.
Bug Fixes
  • fix: HTML-escape auto-generated filename in code block headers to prevent XSS.
  • fix: skylighting hot-fix now respects custom wrapper name instead of hardcoding code-window-circled-number.
Style
  • style: adjust padding and height for title bar in code window.
Refactoring
  • refactor: consolidate skylighting-fix option into nested hotfix configuration key with code-annotations and skylighting toggles.
  • refactor: introduce main.lua entry point for filter assembly and dependency wiring.
  • refactor: move hotfix modules (code-annotations.lua, skylighting-typst-fix.lua) into _modules/hotfix/.
  • refactor: split Typst function definitions so annotation helpers are only injected when at least one hot-fix is active.
  • refactor: update Typst processing to return block sandwich.
  • refactor: use utility functions for code-window extension.
  • refactor: Replace monolithic utils.lua with focused modules (string.lua, logging.lua, metadata.lua, pandoc-helpers.lua, html.lua, paths.lua, colour.lua).

0.1

0.1.1 (2026-03-01)

Style
  • style: tweak traffic lights size.

0.1.0 (2026-02-27)

New Features
  • feat: Initial release.
Back to top