Changelog
Generated from CHANGELOG.md in the project repository. Never maintained twice.
0.7.1
24 October 2026
- addedCoverPage: optional indicator strip (
with_indicator_gauges) below the module gauges for values that are shown but not graded, in smaller neutral rings. - changedCoverPage: up to six module gauges share one row (more still wrap in rows of four).
- fixedTable of contents: the contents page no longer lists its own heading or the report title; both stay PDF bookmarks.
- fixedAuditTable: a row moves to the next page as a whole instead of splitting a cell across the page break.
0.7.0
24 October 2026
- breakingPacks: a request's
pack_idmust name a loaded pack, and an unknowntemplate_idwith a pack is an error (defaultkeeps the built-in layout); before, both were ignored. - breakingPacks: the loader refuses packs whose manifest lists missing files or whose components and templates do not define their Typst function. Templates are keyed by their manifest name (
seo-report), not their file name. - breakingComponents:
ComponentDescriptorhas the new fieldsfn_nameandnormalize; without thebarcodesfeature,barcodeis no longer registered. - addedPacks: pack components (also inside grids and flow groups, and as overrides of built-in components), the template selected by
template_id, its default theme and pack assets are rendered. Details: PACKS_README. - addedPacks: the bundled
standardandseo-auditpacks load and render. - addedCLI:
render --pack-path <DIR>; a request withpack_idloads that pack. - changedComponents: a component is registered by one
component_catalog!call next to its struct; the grid and flow-group dispatchers are generated from the catalog. - changedCrate: no stray PDFs and rendered example outputs in the published package.
- changedDocs: all documentation lives on the project site; new pages for template packs and report patterns. The README is a short entry point.
- changedContributors: CI runs on pull requests and
mainonly; beta tests and coverage run on demand. - changedContributors: component structs live in one module per catalog category; public paths (
components::*,components::advanced::*) are unchanged. - fixedPacks: the default search path
~/.renderreport/packsresolves the home directory; before, the~was taken literally.
0.6.2
23 October 2026
- fixedWrong/right block: short examples (up to 900 characters) stay on one page; split across a page break, the label sat alone on one page and the code on the next.
- fixedDivider with
thickness: "0pt"renders as weak spacing instead of a zero-width line. At the end of a full page the line was still content and opened an otherwise blank page.
0.6.1
13 October 2026
- addedComponent data from JSON needs only the fields its Rust builder requires: the engine fills in defaults and derived fields (a score card's
computed_status, a callout's type, a word search's grid) before rendering. Unknown fields are kept; data that does not fit is passed on unchanged. - addedCLI:
renderreport render --typwrites the generated Typst source instead of the PDF. - fixedTypst errors read as message, failing component and hints instead of the diagnostic's debug form with internal span ids.
- fixedTheme tokens
font.body,font.headingandfont.monoaccept a plain font name from JSON or TOML; before, it was written to Typst unquoted and the render failed. Rust themes no longer lose their fonts in a JSON round trip. - fixedREADME: Rust 1.92, version 0.6 and 80 components instead of outdated values.
- fixedBar charts: vertical bars stand on a shared baseline instead of hanging from the top; every series is drawn (grouped bars in legend colours), not only the first; values keep one decimal.
- fixedCLI: errors show their cause down to the Typst diagnostic instead of only
failed to render PDF. - fixednpm README: describes the CLI the package installs instead of a Node API it does not ship.
0.6.0
12 October 2026
- breaking
engine::world::FontCacheno longer exposes itsbookandfontsfields. - breaking
rust-versionraised to 1.92. - addedWord search: allowed reading directions shown as arrows on the puzzle page.
- addedWord search: with translations, the word list becomes a vocabulary table; grid and table share one page where possible.
- addedReports without a title or cover page take the first section's title as the PDF document title.
- addeddocs.rs documents the
cliandbarcodesfeatures. - changedThe Typst world is built on embedded-typst: font files from disk are read lazily, in-memory
.typfiles can be imported, anddatetime.today(offset: …)honours the offset. - changedWord search: words on the same line keep at least one letter between them; the word list keeps spaces as entered (
GUINEA PIG); larger grid letters. - changedWasm
render_wordsearch: no running header, smaller top margin, level-1 heading. - removedPrebuilt CLI binary for macOS Intel (
x86_64-apple-darwin).
0.5.2
17 September 2026
- added
Engine::with_config_and_fontstakes font bytes in addition to the configured fonts. - added
install.shinstalls the CLI from the latest release and verifies its checksum. - fixedFont collections are no longer re-read and re-parsed for every face.
0.5.1
15 September 2026
- fixedAdjacent page breaks no longer leave a blank page.
0.5.0
30 August 2026
- breaking
benchmark-table: the extra ranking columns are defined by the caller.
0.4.1
30 August 2026
- added
benchmark-table: optional HTML-conformance column.
0.4.0
29 August 2026
- changedTypst 0.15; every PDF is written as tagged PDF with PDF/UA-1 enforced.
0.3.2
17 August 2026
- fixed
checklist-panel: the card body can break across pages instead of overflowing.
0.3.1
30 July 2026
- changedWord search: better random placement and a word list heading for translation mode.
- changedLicence is MIT only.
0.3.0
30 July 2026
- added
word-searchcomponent. - addedWasm bindings (
render,render_wordsearch) with an embedded font fallback. - fixedPanics and swallowed errors found in a code review; MSRV declared.