added mermaid and a lot of cmap changes

This commit is contained in:
2026-08-27 13:13:39 +02:00
parent 20c1584016
commit 2215d1d04a
35 changed files with 6442 additions and 350 deletions
+26
View File
@@ -46,6 +46,32 @@ Iedere serveropslag controleert opnieuw het basisversienummer en schrijft de act
Wanneer een actueel CMap-concept een `pageSlug` heeft, toont de gelezen wikipagina onder de inhoud een verwijzing naar dat concept. Plaatsingen worden op `conceptId` gegroepeerd en iedere betrokken CMap is rechtstreeks aanklikbaar. Alleen actuele, niet-gearchiveerde CMap-documenten tellen mee; historische CMap-versies leveren geen navigatielinks op.
Een CMap bewaart exportmetadata met tags, een samenvatting en een optionele uitlegpagina. De Markdown-export volgt gekoppelde CMaps tot de gekozen diepte, breekt cycli af en kan gekoppelde wiki- en conceptbeschrijvingspagina's als bijlage opnemen. Een persoon bij een concept is een getypeerde tag met type `person`. De personenlijst is wiki-breed; deactiveren verbergt een naam voor nieuwe selecties maar verandert bestaande CMap-documenten niet.
Een versleept bron- of doeluiteinde van een CMap-connector wijzigt zowel de zichtbare lijn als de
logische `sourceId`/`targetId`-relatie. Submapprojectie mag alleen zichtbare eindpunten vervangen en
mag een handmatige relatiebewerking bij inklappen of uitklappen niet terugdraaien. Een eindpunt dat
op lege ruimte of op het andere uiteinde wordt losgelaten, keert terug naar de laatste geldige
relatie.
Bij navigatie in afzonderlijk geopende sub-CMaps gaat de CMap-terugknop één niveau per actie terug.
Een lokale ouder in `mapHistory` heeft voorrang op navigatie naar de bronroute van een afgeleide
CMap. Alleen wanneer de wortel van die afgeleide kaart actief is, gaat terug naar de bron-CMap.
De vaste selectietoolbar naast het diagram biedt veelgebruikte selectieacties en groepslayout.
Het laatst geselecteerde concept is het blauwe referentieobject: zijn maat, randen en middellijnen
bepalen het doel voor gelijke breedte/hoogte en uitlijnen. Een klik op een reeds geselecteerd concept
wisselt dit referentieobject zonder de meervoudige selectie op te heffen. Verticaal verdelen houdt
het bovenste en onderste element vast; horizontaal verdelen houdt het meest linkse en rechtse
element vast. De overige elementen krijgen in de gekozen richting gelijke tussenruimte. Iedere
layoutactie wordt via dezelfde historie en autosave als slepen en handmatig schalen bewaard.
Relatiepijlen worden altijd in een lagere tekenlaag dan concepten en verbindingszinnen geplaatst.
Ook wanneer een relatie wordt geselecteerd of naar voren wordt gehaald, blijft zij achter alle
conceptkaarten. De hit-test gebruikt dezelfde laagprioriteit, zodat een achterliggende lijn geen
klik kan afvangen op de kaart die haar bedekt. Tijdelijke eindpunthendels blijven wel bovenop liggen
zolang een relatie wordt versleept.
## Zoeken, Recent en navigatiegraaf
Paginazoeken gebruikt een opgeslagen gewogen `tsvector` en GIN-index. CMap-zoeken verzamelt titel, slug, labels en synopses uit JSONB. Recent voegt de nieuwste pagina- en CMapwijzigingen samen.