9 Commits
Author SHA1 Message Date
Steffen Becker c9ab7d7ab7 docs: public README
Centred logo header, badges, the live-app link, feature overview,
licensing and CLA pointers. README.md leaves .gitignore — it used to
be a private scratch file, now it is the repo's front page.
2026-08-17 18:59:48 +02:00
Steffen Becker 82993aeda3 chore: coverage report via npm run test:coverage
@vitest/coverage-v8 with include over src/ so untested files show up
at 0%; text summary plus the browsable coverage/ HTML (gitignored).
2026-08-15 23:01:50 +02:00
Steffen Becker 58e8569c9b chore: update .gitignore
.claude, .devcontainer, .github/prompts, README.md and the two root
Playwright scratch scripts are local tooling. They stay on disk and are
ignored, so no `git add -A` sweeps them back in.
2026-08-15 19:47:58 +02:00
Steffen Becker 64cc010f01 docs: a real-world document's name stays out of the repo
The parity findings named the six files the corpus is built from, so every
measurement carried a document title into the history. They move to a
gitignored FINDINGS.md beside the corpus itself; the README keeps the harness.

A test that needs a document builds one, so nothing under src/ or tests/
reads the gitignored corpus — CI greps for exactly that.
2026-08-11 22:25:33 +00:00
Steffen Becker a350b8f59e fix: a page-anchored frame sits on its page instead of in the text
ODF text:anchor-type="page" is a cover graphic or a watermark: out of
flow, placed from its page's corner, behind the text. In flow, the two
full-page frames of a fixture's covers cost three pages.
2026-08-10 07:38:54 +00:00
Steffen Becker 361b14dc17 test: compare the rendered page against LibreOffice
Everything else in tests/ compares documents at the model level; nothing checked
what a page actually looks like. run.mjs renders the same file through soffice
and through the real app in Chromium, reads both back as word boxes, and diffs
page count, line count, line text and line position.

The corpus stays out of the repo: make-fixtures.mjs authors the baseline .docx
files, and real-world documents are whatever you drop into the gitignored
fixtures/ yourself.
2026-08-08 08:35:34 +00:00
Steffen Becker 8acae13b9a refactor: organize lib/editor 2026-06-24 23:34:24 +02:00
Steffen Becker 6305e58307 dx: add debug feature for analysis of page break 2026-05-27 19:00:34 +02:00
Steffen Becker 9596814753 chore: set up Vite + Svelte 5 TypeScript project 2026-05-25 20:42:54 +02:00