Aufräumrunde zur Bugfix-Runde: Suche entzerrt, Flatten-Fix vervollständigt

- archive_search: match_expr in search() aufgelöst. sanitize_query lief zweimal
  pro Anfrage, und die Leer-Entscheidung stand an zwei Stellen mit leicht
  abweichender Bedingung.
- Der Tag-Filter geht jetzt durch dieselbe Quoting-Regel wie der Volltext. Ein
  leerer Tag ergab tags:"" und damit einen Syntaxfehler — erreichbar durch das
  angetippte #, den ersten Tastendruck jeder Tag-Suche.
- sanitize_query von 26 auf 12 Zeilen: split('"') und split_whitespace statt
  handgeschriebenem Tokenizer. Gleiches Ergebnis fuer alle Testeingaben.
- TerminalConfig bekommt ebenfalls serde flatten. Der Block wird als Ganzes
  mitgeschrieben, ein terminal.fontSize waere also weiterhin verloren gegangen;
  set_terminal_config_in traegt die unbekannten Keys jetzt herueber.
- markdown.test.ts enthielt ein literales NUL-Byte, wodurch git die Datei als
  binaer behandelte. Der Test erzeugt das Zeichen jetzt selbst.
- Kleineres: commands_delete-Bedingung als direkter Vergleich, eine
  Verschachtelungsebene in pool.rs, zwei redundante Kommentarbloecke.
  commands_delete benennt sich in der Doku als Provisorium.
This commit is contained in:
marcusH
2026-07-19 23:22:25 +02:00
parent b127269e89
commit e245600235
8 changed files with 119 additions and 80 deletions
+1 -4
View File
@@ -40,10 +40,7 @@ export function initArchiveForm(
.map((t) => t.trim())
.filter(Boolean),
});
// Beim Schließen leeren: Das Formular gehört zum Fenster, nicht zum Dokument.
// Stehengebliebene Werte würden beim nächsten Öffnen unbemerkt für ein anderes
// Dokument gelten — wer direkt Enter drückt, archiviert es mit dem Ordner und
// den Schlagwörtern des vorigen.
// Leeren, weil das Formular zum Fenster gehört und nicht zum Dokument.
const close = () => {
form.hidden = true;
folder.value = "";
Binary file not shown.
-4
View File
@@ -10,10 +10,6 @@
/// kommt (Git-Sync, geteiltes Verzeichnis, eingefügter Fremdtext), wird aus
/// Markdown-Anzeige Befehlsausführung. Eine CSP gibt es nicht als zweite
/// Schranke (tauri.conf.json: `csp: null`).
///
/// Der Ansatz kommt ohne Sanitizer-Abhängigkeit aus, weil er an der Quelle
/// ansetzt statt am fertigen HTML: Rohes HTML wird als Text ausgegeben, und
/// Link- wie Bildziele müssen ein harmloses Schema haben.
import { marked, type Tokens } from "marked";