feat(import): presentaties uit PowerPoint, Keynote en Impress (#772) #807
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!807
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/keiko-presentatie-import-772"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Importeren van PowerPoint (.pptx), LibreOffice Impress (.odp) en Apple Keynote (.key) naar echte OciDeck-decks. Sluit aan op de bestaande Uitbreidingen-module Importeren (#789): het menu-item hangt achter dezelfde
importModuleRevealProviderals de OpenKAT-bron ernaast.Sluit #772.
Waar dit vandaan komt
Het losse project Keiko deed dit al, maar met een eigen Markdown-writer. Die is bewust niet meegekomen — dat contract heeft OciDeck al. De import bouwt
Slide/DeckviaSlide.create+copyWithen laatMarkdownService/FileServiceserialiseren.Geen enkele nieuwe afhankelijkheid. Keiko's pubspec noemde
protobuf, maar dat pakket wordt nergens geïmporteerd: de IWA-laag heeft een eigen, schema-vrije wire-decoder.pubspec.yamlis onaangeroerd, dus geen SBOM-ronde.Wat het doet
dart:ioin de servicelaag — dus ook in de browserversie, op de bulkroute na (die schrijft bestanden).De bewaker keurde de eerste versie af
Terecht: de techniek deugde, de belofte niet. Wat daaruit is gerepareerd, elk met een test:
mem:-pad mee;copyMediaToProjectkreeg de route die de afbeeldingskant al had.<a:br/>werd een\nmidden in een bullet; na opslaan en heropenen verhuisde de vervolgregel of verdween hij. Gevonden door de nieuwe rondgangstest (bouwen → serialiseren → terugparsen), die er niet was.rapport.pdf.commandlandde zo in de projectmap. Beeld heeft nu dezelfde witte lijst als video.Drie fouten die géén poort zag zijn onderweg opgelost: de zip-bom-melding drukte de hele bytelijst af,
safe_extensions/importer_loggerwaren dode resp. dubbele code, enarchive4.x geeft op rommel een leeg archief in plaats van te struikelen — waardoor een kapot bestand las als "geen dia's gevonden". Dat laatste is bij de bron geweigerd, dus alle drie de formaten profiteren.Wat er bewust niet in zit
SourceTheme, maar niemand leest hem; een geïmporteerd deck krijgt OciDecks eigen opmaak. Zo staat het ook in de gids.Eerlijk over de beproeving
Alle testfixtures bouwen hun archief zelf. Er staat geen enkel bestand in de repo dat PowerPoint, Impress of Keynote werkelijk heeft weggeschreven, dus de parsers zijn tegen nagebouwde invoer beproefd en niet tegen de echte wereld. Dat staat als punt 11 in
docs/design/VERIFICATION.md.Poort
make checkgroen (exit 0), 6500 tests, dekking 86,5%, geen basislijn verhoogd. Eén refactor was nodig om onder het klasseplafond te blijven:_exportGateis top-level gemaakt, volgens het precedent dat in dat bestand al stond.Docs:
USER_GUIDE,FAQ,KNOWN_LIMITATIONS,CHANGELOG,SOURCE_MAPenVERIFICATION.🤖 Generated with Claude Code