pdfcraft/xtask/src
Brandon Thomas 1d67833599 Fonts: use craft-fonts as an optional build input; move the Japanese fonts out
Shippori Mincho (and its OFL file) leaves assets/fonts/: the Japanese fonts now
live in storytold/craft-fonts. printcraft-fonts gets craft-fonts' build.rs recipe:
with CRAFT_FONTS_DIR=<checkout> it embeds the manifest's fonts as CRAFT_FONTS
(wasm32: only BIZ UDPGothic Regular); without it CRAFT_FONTS is empty and the
app builds, tests and runs as before, minus the Japanese face.

- SHIPPORI_MINCHO is now Option<&[u8]> from CRAFT_FONTS; japanese_glyph
  (was shippori_glyph) uses document_japanese_font() (Shippori Mincho, then
  BIZ UDMincho, then any Jpan face) and returns GlyphError::NoFont without one.
- Editing PDF text into Japanese without craft-fonts is a clear EditError that
  leaves the page untouched.
- UI: every Jpan craft font (BIZ UDPGothic first) is the last fallback of
  every egui family, sharing the same static bytes.
- Tests: Japanese glyph/edit tests skip without craft-fonts; new UI tests for
  no-tofu Japanese with craft-fonts and working fonts without it.
- CI: the Linux test job checks out craft-fonts at a pinned SHA and runs the
  tests with CRAFT_FONTS_DIR. Releases build every platform with it
  (CRAFT_FONTS_REQUIRED=1) and ship each font's OFL as OFL-<family>.txt.
- ATTRIBUTION.toml gains [[build_input]] (checked by xtask assets); NOTICE,
  AGENTS.md, CLAUDE.md, README and docs say fonts live in craft-fonts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 11:36:23 -04:00
..
demo_pdf CI: as_chunks instead of constant-size chunks_exact (clippy 1.99 chunks_exact_to_as_chunks) 2026-10-04 12:48:43 -04:00
assets.rs Fonts: use craft-fonts as an optional build input; move the Japanese fonts out 2026-10-06 11:36:23 -04:00
fuzz.rs FreeBSD: CI builds and tests PrintCraft in a FreeBSD VM 2026-10-05 10:57:30 -04:00
gates.rs Never crash: the fuzz job's eleven hangs finish (parser retries, inline images, Type 3 fan-out) 2026-10-05 07:35:38 -04:00
layers.rs M5.6/M6.7: Comment and form data exchange: new xfdf crate (L4): XFDF (ISO 19444-1) export/import of comments (replies, pop-ups, ink, quads, line ends, flags, colours) and nested field values; FDF both ways; form data as Acrobat XML, CSV and tab-delimited text. Import replaces comments with the same name and sets values through formats/validation (read-only fields take data). Import/Export commands; doc_export_data/doc_import_data tools (69 tools) 2026-10-02 01:31:56 -04:00
main.rs M10: Scan & OCR ▸ Recognize text: ocrs-based recognition (models fetched by cargo xtask models), invisible searchable text layer, Recognize Text dialog with background progress; ocr_recognize / ocr_status tools 2026-10-03 03:47:58 -04:00
parity.rs M0.8: parity/acrobat-features.toml (826 features) + xtask parity (schema, registry/tool/test cross-checks, tier/area report) in ci; fuzzer skips known-hang seeds 2026-10-01 09:34:02 -04:00
screenshots.rs Community links: Discord button in the title bar, ArtCraft community card on Home, About dialog with ArtCraft mark/wordmark and links, Help menu commands (help.discord/app_page/github/website), CLI --version and MCP websiteUrl, README Community section; 4 Lucide icons (attributed); regenerated screenshots with honest brand attribution 2026-10-01 14:15:05 -04:00
version.rs xtask: version test uses gates::root (fixes the xtask test build) 2026-10-03 00:42:57 -04:00