Tags op documenten, doorzoekbaar op projectcode en soort #2395
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2395
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Wat je wilt
Tags op een document, zodat je in het openscherm kunt zoeken op projectcode, soort document en andere kenmerken die niet in de lopende tekst hoeven te staan. Nu kun je die kenmerken niet als tag zetten, en zoeken is alleen vrije tekst over het hele bestand.
Wat de code nu doet
Een presentatie heeft al
keywords:in de front matter, als kommagescheiden tekst, bewerkbaar onder Presentatie-info (lib/models/deck.dart,lib/widgets/dialogs/presentation_info_dialog.dart,kOwnedFrontMatterKeysinlib/services/front_matter_merge.dart). Het openscherm zoekt in bestandsnaam, titel en de ruwe bron, dus een trefwoord dat toevallig in die tekst staat komt mee — maar er is geen tagfilter (lib/widgets/dialogs/open_presentation_dialog.dart,_matching).Een document heeft vrije éénregelige velden (
title,subtitle,author, plus zelfgekozen sleutels) inlib/widgets/parts/document_fields_dialog.dart.keywordsis een geldige veldsleutel (isValidDocumentFieldKey) en geen gereserveerde documentsleutel (kDocumentOwnedKeysinlib/utils/document_front_matter.dart). Je kunt hem dus met de hand als vrij veld typen. Het eigenschappenvenster biedt hem niet aan, en het openscherm behandelt hem niet als tag.FILE_FORMAT §14.12 staat alleen een scalair op één regel toe. Een YAML-lijst (
tags:) is vreemde front matter: die blijft byte-voor-byte staan en is geen documentveld. Een eigenocideck_tags-sleutel zou een privédialect zijn, en dat formaat kennen we niet.Oplossingsrichting
Gebruik het woord dat presentaties en Pandoc al kennen:
keywords:, één kommagescheiden regel. Geen nieuwe sleutel, geen reeks.keywordsstaat. Projectcode en soort document zijn tags die de gebruiker zelf kiest; bouw er geen taxonomie voor.keywords, anders is een toevallig woord in een alinea een tagtreffer.Schrijven blijft byte-chirurgisch op die ene regel (
withDocumentFrontMatterKey/withDocumentFields), de rest van het bestand onaangeroerd.Bestandsformaat
Geen nieuw dialect.
keywords:staat al in FILE_FORMAT voor presentaties. Voor documenten wordt het een veld dat het documentpad zelf mag schrijven, naast de bestaande eigen sleutels, met dezelfde uitgang: leeg halen verwijdert de regel. Dat hoort in §14.12 en inkDocumentOwnedKeys, anders blijft een lege tagregel voor altijd in het bestand staan.Niet doen: een YAML-sequentie, een
ocideck_-sleutel, of tags alleen in een sidecar. Wie het bestand in een andere editor opent, moet de regel als gewone trefwoorden kunnen lezen.Test
keywords: IR-2026, rapportverschijnt bij het tagfilter opIR-2026en niet bij een filter op een woord dat alleen in de body staat.keywords:.keywords:-regel blijft onder de bestaande duplicaatregel van documentvelden vallen.Kosten
Nieuwe interfaceteksten (31 talen). FILE_FORMAT §14.12, USER_GUIDE en SOURCE_MAP bijwerken. Geen afhankelijkheid, geen nieuw slidetype.
Opgepakt. Tak: fix/document-werkvloer. Verwachte reikwijdte: lib/utils/document_front_matter.dart, lib/widgets/parts/document_fields_dialog.dart, lib/widgets/dialogs/presentation_info_dialog.dart, lib/widgets/dialogs/open_presentation_dialog.dart, docs/FILE_FORMAT.md.
Geland op main in
597353b59, via PR #2401.ZAP/DAST is niet gedraaid: ZAP is niet geïnstalleerd. Geheimen-scan en SAST zijn lokaal wel gedraaid, vóór de merge.