Skip to content

Export the final version in the original Word format; trustworthy exports - #7

Merged
tschnorpfeil merged 4 commits into
mainfrom
feat/export-overhaul
Oct 23, 2026
Merged

tschnorpfeil merged 4 commits into
mainfrom
feat/export-overhaul

Conversation

@tschnorpfeil

Copy link
Copy Markdown
Owner

Summary

  • Word in the original format: the final version (clean) or tracked changes are written into the user's own .docx. Styles, numbering, links, footnotes, tables and page layout stay as they are. Untouched paragraphs stay byte for byte. The result is read back and compared with the expected text; if anything does not match (e.g. a change inside a footnote or text box), the export falls back to the generated document and tells the user.
  • PDF: final version, side by side (landscape) and inline (portrait).
  • Export menu: grouped into "Final version" and "Comparison", each with a one-line explanation; HTML, Markdown and text under "More formats".
  • Trust: reports count exactly like the list (merged header/footer items), show page ranges and have unique anchors. Header/footer changes go into a Word comment, and there is no cover block, so "Accept all" in Word leaves a clean document.
  • Misleading pairs: changes joined only by a hyphen or a space now read as one replacement.
  • Headings survive rejections: rewriting the new version keeps # heading markers from the source.
  • Sessions keep the imported .docx, so the original-format export works after reopening.
  • Images: an English link preview image and a refreshed German one, plus three launch gallery images in docs/launch/.
  • Text fixes in help, FAQ and export wording (DE and EN).

Test plan

  • python3 scripts/build.py and node scripts/check.mjs (SEO, worker, security/i18n, 419 export checks, 51 core tests, app state)
  • New tests: original-format export (byte-identical untouched paragraphs, links/bookmarks/tabs kept, Accept all = final, Reject all = old version, unique revision ids, refusal for changes outside the body), heading markers, fragment merging
  • Browser: two real .docx files imported, one change accepted and one rejected, both Word exports built in the original format without fallback; print views (final, split, inline) checked
  • LibreOffice opens the final and tracked outputs with formatting intact
  • Open both Word exports in Microsoft Word

🤖 Generated with Claude Code

Rémi Hermes and others added 4 commits October 23, 2026 07:23
The English page (/en/) now has its own Open Graph / Twitter image
(site/og-image-en.png, source docs/og-image-en.html) instead of the
German one. Both images drop the "Pages" view option, which the app no
longer has. The German image moves to ?v=3 so link preview caches fetch
it again. The build sets og:image, twitter:image and the JSON-LD image
per page; the checks verify both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… trustworthy

- Word: export the final version (clean) or tracked changes on top of the
  user's own .docx, keeping styles, numbering, links, footnotes and layout.
  The result is read back and verified; if that is not possible, the export
  falls back to the generated document and says so.
- PDF: final version, side by side (landscape) or inline (portrait).
- Export menu grouped into "Final version" and "Comparison" with short
  explanations; HTML, Markdown and text under "More formats".
- Reports count changes exactly like the list (merged header/footer items),
  with page ranges and unique anchors; header/footer changes go into a Word
  comment instead of the body; no cover block in Word documents.
- Diff: changes joined only by a hyphen or a space read as one replacement
  instead of misleading fragment pairs.
- Rejections keep heading markers, so headings stay headings in the final
  version.
- The imported .docx is kept in saved sessions so the original-format export
  still works after reopening.
- Text fixes in help, FAQ and export wording (DE and EN).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tschnorpfeil
tschnorpfeil merged commit ae24451 into main Oct 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant