Files
ai-control/src-tauri/build.rs
T
marcus hinz a711f98703 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.
2026-07-26 18:35:06 +02:00

83 lines
2.2 KiB
Rust

fn main() {
// App-ACL-Manifest: erzeugt pro Command allow-/deny-Permissions. Sobald das
// Manifest existiert, gilt deny-by-default — jedes Command muss in einer
// Capability einem Fenster zugeteilt sein (capabilities/*.json), sonst
// lehnt Tauri den Aufruf ab. Neue Commands hier UND in der passenden
// Capability eintragen.
tauri_build::try_build(
tauri_build::Attributes::new().app_manifest(tauri_build::AppManifest::new().commands(&[
"list_projects",
"create_project_full",
"add_project",
"delete_preview",
"delete_project_scoped",
"project_work_dirs",
"set_project_dir",
"add_work_dir",
"remove_work_dir",
"list_pools",
"create_oauth_pool",
"create_apikey_pool",
"create_reference_pool",
"default_config_dir",
"rename_pool",
"delete_pool",
"assign_pool",
"unassign_pool",
"set_terminal_config",
"project_icon",
"pool_label",
"usage_stats",
"stop_project",
"restart_project",
"start_or_focus_cmd",
"open_main_window",
"quit_app",
"sync_setting",
"set_sync_setting",
"terminal_font_size",
"set_terminal_font_size",
"link_pool_runtime",
"oauth_login",
"keychain_status",
"set_apikey",
"panel_archive_dir_cmd",
"panel_archive_cmd",
"set_archive_home_cmd",
"change_archive_home_cmd",
"clear_archive_home_cmd",
"archive_docs_cmd",
"reveal_path_cmd",
"spellcheck_lang",
"open_terminal",
"term_start",
"term_log",
"term_write",
"term_resize",
"buffer_read",
"enabled_modules",
"module_registry",
"set_module",
"commands_delete",
"todos_delete",
"todos_add",
"todos_update",
"panel_set",
"search_run",
"panel_load",
"wiki_open",
"archive_read",
"archive_write",
"archive_set_title",
"archive_folders",
"panel_save_as",
"archive_delete",
"archive_create_folder",
"archive_create_doc",
"archive_create_html",
"open_panel_window",
])),
)
.expect("tauri-build");
}