HTML-Notizen mit WYSIWYG auf ProseMirror

Zweiter Notiz-Typ neben Markdown. Beide tragen dieselben Angaben, nur an
ihrer jeweils üblichen Stelle: Markdown im Frontmatter, HTML in <title>
und <meta name=…>.

- domain/archive_html.rs: Gerüst, Metadaten, Titel setzen, Rumpf lesen und
  ersetzen, Text ohne Markup für den Suchindex.
- Der Scan nimmt .html auf; Doc und WikiDocEntry führen `kind` (md|html).
  doc_path, set_title, write_body, ensure_ids und die Knotentext-Regel
  arbeiten typbewusst; ein Knotentext darf .md oder .html sein.
- archive_create_html legt eine leere HTML-Notiz an; Anlegen schreibt nicht
  mehr in den Entwurfs-Puffer, sondern liefert die ID der neuen Notiz —
  die Ansicht wählt sie aus und öffnet den Editor.
- Anzeige: HTML-Notizen erscheinen als Markup statt durch den
  Markdown-Renderer, mit klickbaren Wikilinks; eigenes Symbol im Baum.
- Editor: html-editor.ts auf ProseMirror (MIT, ohne Anbieter-Stufe).
  DOMParser liest den Rumpf, DOMSerializer schreibt ihn zurück — gespeichert
  wird, was der Editor zeigt. Werkzeugleiste mit Überschriften, Auszeichnung,
  Listen, Ein-/Ausrücken, Tabellen und Links; Tastenkürzel für fett, kursiv,
  Rückgängig und Zellenwechsel. Markdown behält den Rohtext-Editor mit
  Live-Vorschau.
- CSP: style-src erlaubt 'unsafe-inline', sonst blockiert die Richtlinie die
  Stil-Attribute in HTML-Notizen und alles erscheint unformatiert.
  script-src bleibt streng.
This commit is contained in:
marcus hinz
2026-07-26 18:35:06 +02:00
parent 2251a1d45f
commit a711f98703
21 changed files with 995 additions and 61 deletions
+9
View File
@@ -23,6 +23,15 @@
"@xterm/addon-webgl": "^0.19.0",
"@xterm/xterm": "^6.0.0",
"marked": "^16.4.2",
"prosemirror-commands": "^1.7.1",
"prosemirror-history": "^1.5.0",
"prosemirror-keymap": "^1.2.3",
"prosemirror-model": "^1.25.11",
"prosemirror-schema-basic": "^1.2.4",
"prosemirror-schema-list": "^1.5.1",
"prosemirror-state": "^1.4.4",
"prosemirror-tables": "^1.8.5",
"prosemirror-view": "^1.42.2",
"vue": "^3.5.39",
"vue-i18n": "^11.4.6"
},