Pakket bevat stijlbestanden maar OciDeck opent met lokaal actief profiel #2644

Closed
opened 2026-10-28 22:45:53 +00:00 by brenno · 2 comments
Owner

Probleem

Een .ocideck-pakket neemt een eigen presentatielogo, donkere variant en merkstrook als logos/-leden op (_packThemeAssets, lib/services/file/file_service_package.dart) en schrijft CSS met het gekozen profiel. Bij openen in OciDeck wordt de stijl van de inhoud echter vervangen door het lokaal actieve profiel (lib/services/file_service.dart, activeProfileFor; ook de in-geheugen pakketroute parseert de Markdown). Het pakket draagt geen volledig profielrecord dat de importer kan selecteren. Op web zet attachPackageAssetsToMem (lib/services/package_asset_resolver.dart) bovendien uitsluitend dia-afbeeldingen en media om naar mem:; de pakketlogo's krijgen geen bruikbaar profielpad. Een ontvanger ziet daardoor niet noodzakelijk de stijl die het pakket als CSS en logoleden bevat. Dit is een statisch bevestigde contractbreuk; een interactief experiment met een ontvanger die een ander actief profiel heeft, moet de exacte zichtbare uitkomst nog aantonen.

Reproduceerroute

  1. Exporteer een deck met eigen logo en onderscheidende stijl als .ocideck.
  2. Open het pakket in een OciDeck-installatie of websessie met een ander actief stijlprofiel.
  3. Vergelijk de OciDeck-weergave met de meegeleverde themes/*.css en logos/* (en eventueel Marp CLI-weergave). De app gebruikt het lokaal actieve profiel; de webroute koppelt de pakketlogo's niet aan het profiel.

Ontwerp- en reparatieopdracht

Bepaal expliciet het contract voor een gedeeld pakket: moet OciDeck de meegeleverde stijl tonen, of zijn CSS en logoleden uitsluitend voor externe Marp-rendering? De huidige documentatie en het pakketgedrag mogen daarover niet uiteenlopen. Als de stijl in OciDeck moet meereizen, ontwerp eerst een veilige profielrepresentatie in het pakket (bestandsformaatversie/compatibiliteit, validatie, geen vertrouwen in willekeurige lokale paden), herstel logoleden op web naar tijdelijke mem:-paden en laat de ontvanger de meegeleverde stijl kiezen zonder zijn globale stijlprofiel stil te overschrijven. Als het pakket bewust alleen inhoud meeneemt, verwijder of verduidelijk de misleidende compleetheidsclaim en leg uit waarvoor de meegeleverde CSS/logoleden dienen.

Acceptatiecriteria

  • Het pakketcontract is vastgelegd in FILE_FORMAT en gebruikersgids; desktop en web gedragen zich volgens hetzelfde contract. Oude pakketten blijven leesbaar.
  • Een pakket met eigen stijl en logo wordt geopend met een ander lokaal actief profiel en in een websessie; tests tonen de afgesproken weergave en dat geen onveilige lokale paden worden gevolgd.
  • Bij een stijlmeereizend contract blijven logo, donkere variant en merkstrook na import beschikbaar en blijven stijlwijzigingen op een ontvanger expliciet.

Gerelateerd aan #2640 (webkiezer) en #2643 (documentatie). Dit ticket gaat over de betekenis van een gedeeld pakket, ook zonder nieuwe logo's te kiezen.

## Probleem Een `.ocideck`-pakket neemt een eigen presentatielogo, donkere variant en merkstrook als `logos/`-leden op (`_packThemeAssets`, `lib/services/file/file_service_package.dart`) en schrijft CSS met het gekozen profiel. Bij openen in OciDeck wordt de stijl van de inhoud echter vervangen door het lokaal actieve profiel (`lib/services/file_service.dart`, `activeProfileFor`; ook de in-geheugen pakketroute parseert de Markdown). Het pakket draagt geen volledig profielrecord dat de importer kan selecteren. Op web zet `attachPackageAssetsToMem` (`lib/services/package_asset_resolver.dart`) bovendien uitsluitend dia-afbeeldingen en media om naar `mem:`; de pakketlogo's krijgen geen bruikbaar profielpad. Een ontvanger ziet daardoor niet noodzakelijk de stijl die het pakket als CSS en logoleden bevat. Dit is een statisch bevestigde contractbreuk; een interactief experiment met een ontvanger die een ander actief profiel heeft, moet de exacte zichtbare uitkomst nog aantonen. ## Reproduceerroute 1. Exporteer een deck met eigen logo en onderscheidende stijl als `.ocideck`. 2. Open het pakket in een OciDeck-installatie of websessie met een ander actief stijlprofiel. 3. Vergelijk de OciDeck-weergave met de meegeleverde `themes/*.css` en `logos/*` (en eventueel Marp CLI-weergave). De app gebruikt het lokaal actieve profiel; de webroute koppelt de pakketlogo's niet aan het profiel. ## Ontwerp- en reparatieopdracht Bepaal expliciet het contract voor een gedeeld pakket: moet OciDeck de meegeleverde stijl tonen, of zijn CSS en logoleden uitsluitend voor externe Marp-rendering? De huidige documentatie en het pakketgedrag mogen daarover niet uiteenlopen. Als de stijl in OciDeck moet meereizen, ontwerp eerst een veilige profielrepresentatie in het pakket (bestandsformaatversie/compatibiliteit, validatie, geen vertrouwen in willekeurige lokale paden), herstel logoleden op web naar tijdelijke `mem:`-paden en laat de ontvanger de meegeleverde stijl kiezen zonder zijn globale stijlprofiel stil te overschrijven. Als het pakket bewust alleen inhoud meeneemt, verwijder of verduidelijk de misleidende compleetheidsclaim en leg uit waarvoor de meegeleverde CSS/logoleden dienen. ## Acceptatiecriteria - Het pakketcontract is vastgelegd in FILE_FORMAT en gebruikersgids; desktop en web gedragen zich volgens hetzelfde contract. Oude pakketten blijven leesbaar. - Een pakket met eigen stijl en logo wordt geopend met een ander lokaal actief profiel en in een websessie; tests tonen de afgesproken weergave en dat geen onveilige lokale paden worden gevolgd. - Bij een stijlmeereizend contract blijven logo, donkere variant en merkstrook na import beschikbaar en blijven stijlwijzigingen op een ontvanger expliciet. Gerelateerd aan #2640 (webkiezer) en #2643 (documentatie). Dit ticket gaat over de betekenis van een gedeeld pakket, ook zonder nieuwe logo's te kiezen.
brenno changed title from Web: pakketimport herstelt dia-afbeeldingen maar niet de stijllogo’s to Pakket bevat stijlbestanden maar OciDeck opent met lokaal actief profiel 2026-10-28 22:54:13 +00:00
Author
Owner

Opgepakt. Tak: fix/logo-stijl-2640. Verwachte reikwijdte: pakketcontract voor meegeleverde stijl, zonder het globale profiel te overschrijven.

Opgepakt. Tak: fix/logo-stijl-2640. Verwachte reikwijdte: pakketcontract voor meegeleverde stijl, zonder het globale profiel te overschrijven.
Author
Owner

Geland op main in 978b199646. De stijl staat in ocideck-style.json naast de markdown en vervangt het globale profiel niet. Een ouder pakket zonder dat bestand houdt het lokale profiel. Paden buiten logos/ vallen weg.

Geland op main in 978b199646c1c834b2bf348c30214ecce370898a. De stijl staat in ocideck-style.json naast de markdown en vervangt het globale profiel niet. Een ouder pakket zonder dat bestand houdt het lokale profiel. Paden buiten logos/ vallen weg.
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#2644
No description provided.