Wissensdatenbank: Markdown, FTS5-Suche, Sanitizing, UX
- Markdown-Rendering fuer Notizen (fett, kursiv, Ueberschriften, Listen, Code, Links) - HTML-Sanitizing im Frontend und Backend (XSS-Schutz) - FTS5 Volltextindex fuer schnelle Suche mit Ranking - Kategorie-Loeschung zeigt Anzahl betroffener Eintraege Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -552,6 +552,43 @@ function createTables() {
|
||||
)
|
||||
`);
|
||||
|
||||
// Wissensmanagement - FTS5 Volltextsuche
|
||||
try {
|
||||
db.exec(`
|
||||
CREATE VIRTUAL TABLE IF NOT EXISTS knowledge_fts USING fts5(
|
||||
title, notes, content=knowledge_entries, content_rowid=id
|
||||
)
|
||||
`);
|
||||
|
||||
// Trigger: INSERT synchronisieren
|
||||
db.exec(`
|
||||
CREATE TRIGGER IF NOT EXISTS knowledge_fts_insert AFTER INSERT ON knowledge_entries BEGIN
|
||||
INSERT INTO knowledge_fts(rowid, title, notes) VALUES (NEW.id, NEW.title, NEW.notes);
|
||||
END
|
||||
`);
|
||||
|
||||
// Trigger: DELETE synchronisieren
|
||||
db.exec(`
|
||||
CREATE TRIGGER IF NOT EXISTS knowledge_fts_delete AFTER DELETE ON knowledge_entries BEGIN
|
||||
INSERT INTO knowledge_fts(knowledge_fts, rowid, title, notes) VALUES('delete', OLD.id, OLD.title, OLD.notes);
|
||||
END
|
||||
`);
|
||||
|
||||
// Trigger: UPDATE synchronisieren
|
||||
db.exec(`
|
||||
CREATE TRIGGER IF NOT EXISTS knowledge_fts_update AFTER UPDATE ON knowledge_entries BEGIN
|
||||
INSERT INTO knowledge_fts(knowledge_fts, rowid, title, notes) VALUES('delete', OLD.id, OLD.title, OLD.notes);
|
||||
INSERT INTO knowledge_fts(rowid, title, notes) VALUES (NEW.id, NEW.title, NEW.notes);
|
||||
END
|
||||
`);
|
||||
|
||||
// Initiales Befuellen der FTS-Tabelle
|
||||
db.exec(`INSERT INTO knowledge_fts(knowledge_fts) VALUES('rebuild')`);
|
||||
logger.info('Knowledge FTS5 Volltextindex erstellt/aktualisiert');
|
||||
} catch (ftsError) {
|
||||
logger.warn('FTS5 konnte nicht erstellt werden (evtl. nicht unterstuetzt):', ftsError.message);
|
||||
}
|
||||
|
||||
// Wissensmanagement - Anhänge
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS knowledge_attachments (
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren