You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
vendor Subcommand: cargo fy-docs vendor (re)writes the embedded fy-spec template into docs/fy-spec/lib.typ; vendor --check verifies without writing and exits non-zero on drift, so CI can pin the template version. Requires no typst binary.
SSE Live Reload: the dev server pushes build ids over a /events Server-Sent-Events stream, replacing the 1.5-second polling loop. The single live.js client ships with static builds too and stays silent when no server answers.
Typst Precheck: every compiling command verifies up front that typst exists and is at least 0.14, failing with an actionable message instead of a raw flag error.
Windows CI Job and a typst pinned to 0.15.1 in CI, so "tested against Typst 0.15" is enforced rather than implied.
Real-Binary Integration Tests: fresh build, broken-source exit code, and vendor drift checks run against the actual executable, skipping gracefully where typst is absent.
fy-spec Single Source of Truth: the template's typst.toml and examples/basic.typ moved into this repository's docs/fy-spec/; the HTML class contract between lib.typ and base.css is documented as a dogfood spec chapter.
Changed
Exit Codes: build and html now exit non-zero when compilation fails (previously exit 0 after writing an error page), so CI pipelines catch broken documents. The dev server still survives failures and renders error pages.
Dev-mode rebuilds inherit the startup --lang / --with-pdf options instead of silently rebuilding every language after the first save.
Compile failures write error pages per language (index_<lang>.html); successfully built targets keep their fresh pages and the multi-language landing page is never overwritten by error output.
Output files are written atomically (sibling temp file + rename), so a dev-server reload can never serve a half-written page.
The watcher excludes docs/target/ and docs/release/ by path, not only by file extension.
UI language derives from the document's language target instead of scanning for CJK characters (Japanese documents no longer get Chinese controls).
Minimum Typst raised from 0.13 to 0.14: the --pdf-standard 2.0 flag fy-docs passes first shipped there.
README corrected: PDF filenames include the language suffix, the options table lists --with-pdf/--no-open, and the version floor is stated accurately.
Fixed
Redirect landing page values are escaped for JavaScript string contexts (backslash, control characters) and the default target is escaped in both its script and <noscript> forms; an unusual language directory can no longer produce invalid JavaScript.
Compile-thread panics degrade to per-language error pages with a log line instead of aborting the whole process.
_temp_*.html intermediates are removed on every path, including extraction failures.
<body> extraction tolerates attributes on the opening tag, so a typst export format drift cannot break page assembly.
Cargo.toml parsing is unified: init now resolves workspace = true inherited versions like build does, and the two duplicate .gitignore helpers collapsed into one.
Removed
Retired the standalone fy-spec repository; every project vendors its template copy via cargo fy-docs vendor, and this repository is the template's only home.