Trilium als Archiv: verwaltete Instanz pro Projekt, MD-Archiv und Dokument-Tab entfernt
- domain/trilium.rs: Runtime-Download (gepinnt 0.104.0), Instanz pro Projekt auf 127.0.0.1 mit FNV-Port, ETAPI (archive_note, search_notes), Token im Keyring - Setup bis aufs Passwort automatisiert: trilium_connect macht new-document (skipDemoDb), set-password und ETAPI-Login; Modul-Flag erst nach Token-Erfolg - write_panel legt direkt eine Trilium-Notiz an (text|path, folder/description/tags); noteopen-Kanal, das Terminal-Fenster öffnet die Notiz (ersetzt archive_panel) - MD-Altbestand raus: archive*/wiki*, archiveHome samt Permissions, panel_set/panel_load/ wiki_open, panel_archive*/archive_docs/*_archive_home, reveal_path, spellcheck - Dokument-Tab raus: Panel = ToDo/Befehle/Suche + Archiv-Knopf (trilium_open); panel-view/archive-form gelöscht, Markup/CSS/Messages bereinigt - Lösch-Stufe Archiv: Instanz stoppen, Trilium-Datadir und Keyring-Token löschen
This commit is contained in:
+18
-45
@@ -1,57 +1,30 @@
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
import { initSearchView } from "../search-view";
|
||||
import { initWikiView } from "../wiki-view";
|
||||
import type { PanelTab } from "./index";
|
||||
|
||||
export const wikiTab: PanelTab = {
|
||||
mode: "wiki",
|
||||
module: "archive",
|
||||
buffer: "wiki",
|
||||
labelKey: "panel.tabWiki",
|
||||
titleKey: "panel.tabWikiTitle",
|
||||
// Dokument-/Ordner-Operationen laufen als Commands; der neue Stand kommt
|
||||
// über den Wiki-Puffer (wiki-update) zurück, Fehler als Toast. Der
|
||||
// Dokument-Sprung lädt wie ein Suchtreffer in den Dokument-Tab.
|
||||
init: (container, ctx) => {
|
||||
const run = (cmd: string, args: Record<string, string>) =>
|
||||
void invoke(cmd, { project: ctx.project, ...args }).catch((e) =>
|
||||
ctx.toast(String(e)),
|
||||
);
|
||||
return initWikiView(container, {
|
||||
openDoc: ctx.openDoc,
|
||||
openWiki: ctx.openWiki,
|
||||
actions: {
|
||||
rename: (relpath, name) => run("archive_rename", { relpath, name }),
|
||||
remove: (relpath) => run("archive_delete", { relpath }),
|
||||
moveFolder: (folder, to) => run("archive_move_folder", { folder, to }),
|
||||
createFolder: (folder) => run("archive_create_folder", { folder }),
|
||||
createDoc: (folder, name) => run("archive_create_doc", { folder, name }),
|
||||
},
|
||||
});
|
||||
},
|
||||
// Beim Aktivieren die Übersicht frisch laden: das Anlegen eines Dokuments
|
||||
// öffnet den Dokument-Tab, ohne den Wiki-Puffer anzufassen — und auch
|
||||
// direkt archivierte oder von Hand abgelegte Dateien erscheinen so.
|
||||
onActivate: (_view, ctx) => ctx.openWiki("tag:"),
|
||||
};
|
||||
|
||||
export const searchTab: PanelTab = {
|
||||
mode: "search",
|
||||
module: "archive",
|
||||
module: "trilium",
|
||||
buffer: "search",
|
||||
labelKey: "panel.tabSearch",
|
||||
titleKey: "panel.tabSearchTitle",
|
||||
sepAfter: true,
|
||||
// Treffer-Klick lädt das Dokument in den Dokument-Tab (dort editier- und
|
||||
// archivierbar); der Sprung ins Wiki geht von dort aus.
|
||||
// Treffer-Klick öffnet die Notiz im Trilium-Fenster des Projekts.
|
||||
init: (container, ctx) =>
|
||||
initSearchView(container, ctx.openDoc, (raw) => {
|
||||
// `#tag`-Tokens filtern aufs Schlagwort, der Rest ist die Volltext-Query.
|
||||
const words = raw.split(/\s+/).filter(Boolean);
|
||||
const tag = words.find((w) => w.startsWith("#"))?.slice(1) ?? null;
|
||||
const query = words.filter((w) => !w.startsWith("#")).join(" ");
|
||||
void invoke("search_run", { project: ctx.project, query, tag }).catch((e) =>
|
||||
ctx.toast(`Suche fehlgeschlagen: ${e}`),
|
||||
);
|
||||
}),
|
||||
initSearchView(
|
||||
container,
|
||||
(noteId) =>
|
||||
void invoke("trilium_open", { project: ctx.project, noteId }).catch((e) =>
|
||||
ctx.toast(String(e)),
|
||||
),
|
||||
(raw) => {
|
||||
// `#tag`-Tokens filtern aufs Schlagwort, der Rest ist die Volltext-Query.
|
||||
const words = raw.split(/\s+/).filter(Boolean);
|
||||
const tag = words.find((w) => w.startsWith("#"))?.slice(1) ?? null;
|
||||
const query = words.filter((w) => !w.startsWith("#")).join(" ");
|
||||
void invoke("search_run", { project: ctx.project, query, tag }).catch((e) =>
|
||||
ctx.toast(`Suche fehlgeschlagen: ${e}`),
|
||||
);
|
||||
},
|
||||
),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user