26 Commits
Author SHA1 Message Date
Steffen Becker 7a9e30d998 chore: release 0.4.0
Everything since 0.3.0 on 2026-09-09: a cover page as the file draws it — page-placed
frames, themed shape colours, floating tables, drawing groups — the run-through wrap
modes as pickable frames, a text box's vertical anchor, the fonts a saved document
carries with it, the header band's height and the table inside it, and the selection
surviving an attribute change.
2026-09-12 02:35:43 +02:00
Steffen Becker fe00c8bc44 chore: release 0.3.0
Everything since 0.2.0 on 2026-09-06: the run of load and typing latency work,
each tab editing its own document, the format prompt on a first save, the
unsaved-close warning, and two fixes.
2026-09-09 23:18:08 +02:00
Steffen Becker 5db1c37468 perf: the pagination pass no longer restyles or churns the whole document
A `:has()` left of `+` in editor.css made Chromium restyle every element
under .tiptap on each inserted child, so the band-clearing rule keys on a
data-wrap-band attribute the imageLine plugin writes. getLineRects reuses
one Range instead of leaving hundreds alive. TipTap's Placeholder, which
hit-tested the viewport on every keystroke, is replaced by placeholder.ts.
docPosBeforeElement is memoised per pass. At 124 pages the pass after a
split drops from 410 to 150 ms and the split keystroke from 219 to 50 ms.
2026-09-08 20:16:35 +02:00
Steffen Becker 52d20bb584 chore: release 0.2.0
Everything since the 0.1.0 launch on 2026-08-17: named list styles, chapter
numbering, the letter templates and DIN 5008 marks, password protection in both
formats, comment threads with margin balloons, the book layout, the inline text
box, and the run of Word / LibreOffice interoperability, round-trip and page-layout
fixes behind the parity corpus, the fuzzed export options and the browser runs.
0.1.0 keeps its own date and scope; its open-items list drops password protection,
which now ships.
2026-09-06 20:12:33 +02:00
Steffen Becker 4b163e6d10 feat: a document can be saved encrypted with a password (ODF)
Writes LibreOffice's whole-package form: AES-256-GCM keyed by Argon2id over
SHA-256 of the password, the deflated package as one encrypted-package entry.
Reads that plus the per-entry AES-CBC/GCM form with PBKDF2 that every earlier
version writes; the nonce sits ahead of the ciphertext, which no manifest says.
Blowfish and unknown algorithms report an unsupported-encryption error.
2026-09-04 19:30:03 +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 026f6b6d83 test: headless-Chromium smoke test for the UI layer
tests/smoke/run.mjs boots the production build in Playwright Chromium and
checks what jsdom cannot: the bundle boots, typing and the bold shortcut
reach ProseMirror, autosave survives a reload, a corpus ODT imports and
paginates; any uncaught page error fails the run. Wired as npm run
test:smoke and a CI job (build + chromium install), playwright-core is
now a devDependency.
2026-08-15 21:58:47 +02:00
Steffen Becker 0da75ed456 refactor: the project is called edentext
Renames the product in the docs, the page title and the DOCX creator, and moves
the whole storage namespace from odf-editor- to edentext-. The prefix is a
per-origin namespace, so it stays the product name rather than a generic one.
2026-08-13 21:43:12 +02:00
Steffen Becker 8e6c4817d8 feat: add lazy tiff to png decoding 2026-07-10 13:02:27 +02:00
Steffen Becker 7faa16c89d feat: add german spell check 2026-07-05 14:15:30 +02:00
Steffen Becker 9700487353 feat: docx export 2026-06-30 02:21:10 +02:00
Steffen Becker 98e7ee2458 feat: add hyperlinks 2026-06-27 19:55:56 +02:00
Steffen Becker fd2683a01b test: set up basic tests 2026-06-24 23:07:18 +02:00
Steffen Becker 0a35a65c83 feat: add spell-check 2026-06-18 23:34:45 +02:00
Steffen Becker 2526144ab9 feat: add pdf-export 2026-06-17 21:07:20 +02:00
Steffen Becker 3088da0ac9 feat: import odt 2026-06-12 21:17:29 +02:00
Steffen Becker 872414ef23 feat: add buttons for superscript and subscript 2026-06-10 02:19:03 +02:00
Steffen Becker b28a33b104 feat: add strikethrough 2026-06-09 23:29:15 +02:00
Steffen Becker e2f522854f feat: tables 2026-06-06 12:22:45 +02:00
Steffen Becker 355f12afd7 feat: text highlighting 2026-06-06 12:19:05 +02:00
Steffen Becker 1ca69b09cb chore: normalize package-lock.json to npm 10.8.2 format 2026-06-06 12:19:05 +02:00
Steffen Becker 863e1498a8 fix: update odf-kit from 13.4 to 13.5 to fix landscape orientation bag 2026-06-06 12:18:33 +02:00
Steffen Becker 416a405d0f feat: introduce text alignment 2026-05-28 00:17:51 +02:00
Steffen Becker 747ac44a34 feat: add font selection to extended toolbar 2026-05-25 22:40:20 +02:00
Steffen Becker 0098374ac8 feat: add bullet and ordered list support 2026-05-25 20:50:08 +02:00
Steffen Becker 9596814753 chore: set up Vite + Svelte 5 TypeScript project 2026-05-25 20:42:54 +02:00