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
+21 -2
View File
@@ -54,7 +54,7 @@ The setup page itself requires no JavaScript. On a fresh installation it asks fo
PostgreSQL server, port, database, user, password and SSL mode. The database must
already exist. After testing the connection, setup creates the racket-wiki schema,
asks for the first administrator, and downloads the pinned EasyMDE, Lucide,
DOMPurify, highlight.js, and diff2html browser files. PostgreSQL connection
DOMPurify, Mermaid, highlight.js, and diff2html browser files. PostgreSQL connection
settings are stored in @tt{database.rktd} below the configured data directory.
After setup the browser is redirected to @tt{/login}; setup does not create an
authenticated browser session.
@@ -90,6 +90,10 @@ The application sidebar gives the current page's headings priority over the
global page list. The contents list follows Markdown headings and is updated
while a page is edited.
A fenced code block whose language is @tt{mermaid} is rendered as a diagram in
the normal page, editor preview and page history. Mermaid is installed locally
by the vendor setup and runs with its strict security level.
@section{Editor appearance}
EasyMDE and the rendered wiki page use matching body and heading sizes. The
@@ -118,7 +122,22 @@ language-specific stemmer.
@section{Database schema migrations}
Racket Wiki records PostgreSQL schema migrations in @tt{wiki_schema}. The current page is stored in @tt{pages}; every saved historical revision is stored in @tt{page_versions}. Attachments, including their binary content, are stored in @tt{attachments}. Schema migrations run in order when the application starts. Schema 7 adds page namespaces and a unique namespace/slug index.
Racket Wiki records PostgreSQL schema migrations in @tt{wiki_schema}. The current page is stored in @tt{pages}; every saved historical revision is stored in @tt{page_versions}. Attachments, including their binary content, are stored in @tt{attachments}. Schema migrations run in order when the application starts. Schema 7 adds page namespaces and a unique namespace/slug index. Schema 13 adds the active/inactive registry for person tags used by CMap concepts.
@section{CMap Markdown export and person tags}
Stored CMaps carry tags, a summary and an optional wiki-page reference for a
longer explanation. The CMap tools menu exports a report-oriented Markdown
document and follows linked stored CMaps to a user-selected depth. Linked wiki
pages and concept-description pages are optional; the explicit CMap explanation
is always included when available. Cycles are emitted once and a derived CMap
exports its own subtree.
People attached to a concept are stored as typed tags with type @tt{person}.
Several people can be selected for one concept, and linked placements with the
same concept identity share the tags. The wiki-wide people registry supplies the
multi-select list. Deactivated names remain attached to existing CMaps but are
not offered for new tags.
@section{Todo items}