feat(export): ODT (OpenDocument Text) als documentexportformaat #1768

Closed
opened 2026-08-24 10:28:50 +00:00 by brenno · 0 comments
Owner

Voorstel

Voeg ODT (OpenDocument Text, ISO 26300) toe als zesde documentexportformaat, naast Markdown, HTML, LaTeX, PDF en ePub.

Waarom

PDF is een afgewerkt vel (niet te bewerken), ePub is voor e-readers (herflowbaar maar niet bedoeld om in te bewerken), en Markdown is platte tekst. Wat ontbreekt is een export die de ontvanger een bewerkbaar document geeft in een open formaat — "ik stuur dit naar iemand die het in LibreOffice of Word verder aanpast."

ODT is ISO 26300, het open tekstverwerkingsformaat dat LibreOffice en OpenOffice native gebruiken. Word opent het ook (goed, niet perfect — wie zeker wil dat het in Word klopt, exporteert nog steeds naar PDF).

Aanpak

  • ODT is een ZIP met XML erin (content.xml, styles.xml, META-INF/manifest.xml). De archive-package die al een directe dependency is dekt de ZIP-kant.
  • Het werk zit in de XML-schema's — ODT's content.xml is een volwassen office-XML-namespace met stijlen, secties, tabellen, lijsten. Een degelijke ODT-export is eerder een paar honderd regels dan de paar honderd die ePub kostte.
  • Volgt hetzelfde patroon als de andere documentexportformaten: headless service in lib/services/odt/, case in buildDocumentExportBytes, optie in de export-dialoog, l10n in alle talen, tests voor structuur + privacy fail-closed.
  • Wegschrijven gaat door writeDocumentExport — het ene SurfaceKind.audience-oppervlak.

Bewaker-toets (vooraf)

  • Open standaard (ISO 26300) — geen lock-in.
  • Exportdoel, niet een opslagformaat. Het .md blijft soeverein.
  • Geen nieuwe afhankelijkheid (archive was al een directe dependency).
  • Verhoogt uitwisselbaarheid: meer manieren om inhoud naar een ontvanger te krijgen.
  • De inhoud is bewerkbare XML in een ZIP — volledig leesbaar, niet een binair zwart vak.

Geen botsing met de kernwaarden te voorzien.

Scope

Documentexport (platte-Markdown-documenten), niet de deck-kant. De deck-kant heeft ODP als apart issue.

## Voorstel Voeg **ODT (OpenDocument Text, ISO 26300)** toe als zesde documentexportformaat, naast Markdown, HTML, LaTeX, PDF en ePub. ## Waarom PDF is een afgewerkt vel (niet te bewerken), ePub is voor e-readers (herflowbaar maar niet bedoeld om in te bewerken), en Markdown is platte tekst. Wat ontbreekt is een export die de ontvanger een **bewerkbaar** document geeft in een open formaat — "ik stuur dit naar iemand die het in LibreOffice of Word verder aanpast." ODT is ISO 26300, het open tekstverwerkingsformaat dat LibreOffice en OpenOffice native gebruiken. Word opent het ook (goed, niet perfect — wie zeker wil dat het in Word klopt, exporteert nog steeds naar PDF). ## Aanpak - ODT is een ZIP met XML erin (`content.xml`, `styles.xml`, `META-INF/manifest.xml`). De `archive`-package die al een directe dependency is dekt de ZIP-kant. - Het werk zit in de XML-schema's — ODT's `content.xml` is een volwassen office-XML-namespace met stijlen, secties, tabellen, lijsten. Een degelijke ODT-export is eerder een paar honderd regels dan de paar honderd die ePub kostte. - Volgt hetzelfde patroon als de andere documentexportformaten: headless service in `lib/services/odt/`, case in `buildDocumentExportBytes`, optie in de export-dialoog, l10n in alle talen, tests voor structuur + privacy fail-closed. - Wegschrijven gaat door `writeDocumentExport` — het ene `SurfaceKind.audience`-oppervlak. ## Bewaker-toets (vooraf) - Open standaard (ISO 26300) — geen lock-in. - Exportdoel, niet een opslagformaat. Het `.md` blijft soeverein. - Geen nieuwe afhankelijkheid (`archive` was al een directe dependency). - Verhoogt uitwisselbaarheid: meer manieren om inhoud naar een ontvanger te krijgen. - De inhoud is bewerkbare XML in een ZIP — volledig leesbaar, niet een binair zwart vak. Geen botsing met de kernwaarden te voorzien. ## Scope Documentexport (platte-Markdown-documenten), niet de deck-kant. De deck-kant heeft ODP als apart issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1768
No description provided.