documentatie

This commit is contained in:
2026-09-03 17:24:56 +02:00
parent e971dfe942
commit 42fcea9af8
14 changed files with 135 additions and 16 deletions
+16 -4
View File
@@ -49,9 +49,17 @@ objects, and CMap state is not persisted in browser storage.
`view/appearance-editor.js` presents the appearance model in the concept dialog
and coordinates explicit style and palette changes with its repository.
The concrete dialog controllers live in `../wiki/cmap/dialogs/`. They own
their fields, validation and browser events. The workspace supplies the active
CMap and performs editor transitions, while the controllers use repository
APIs for stored CMaps and people instead of calling backend routes directly.
their fields, validation and browser events. The wiki-specific modules under
`../wiki/cmap/` form the editor host layer. `CmapEditorHost` owns creation and
destruction of the active editor; `CmapEditorUiController` owns the standard
toolbar actions; `CmapStorageController` owns dirty state, autosave and save
ordering; `CmapNavigationController` owns routes and browser context;
`CmapTransferController` owns import and export; `CmapMapController` owns
stored-map workflows; and `CmapConceptController` owns dialog-backed concept
workflows. `CmapWorkspaceController` composes these modules, supplies the
active CMap and registers the remaining dialog and DOM integration. Controllers
use repository APIs for stored CMaps and people instead of calling backend
routes directly.
`cmap-racket-wiki.js` contains the wiki-specific editor controller, selection
state, content-based initial sizing, resize and relation controls. Its view
records connect pure model ids to drawing nodes without making those nodes part
@@ -98,7 +106,11 @@ metadata remain intact, but its document no longer depends on the parent CMap.
formatting, positions, connectors, recursive submap membership and promoted
map references. The public `currentModel`, `loadModel` and `replaceModel`
methods let the workspace pass complete domain models to and from the editor.
The CMap repository, rather than the workspace, persists those models.
The CMap repository, rather than the workspace, persists those models. The
editor also provides `snapshotSvg()` for an embed render. That SVG is saved in
the separate `cmap_renders` backend relation and is never inserted into the
editable CMap document. `CmapEmbedView` renders this stored SVG as a linkable
image for `{{cmap:...}}` Markdown embeds.
## JSON interchange