v2.0.9: Migration-Guide Obsidian -> Mind-o-Mat
- docs/MIGRATION.md: vollstaendiger Migrations-Leitfaden - 9 Schritte: Vault-Struktur, Naming, Frontmatter, Tags, Plugins, Tool, QMD, Index, PWA - PowerShell-Skripte fuer Ordner-Anlage, Naming-Normalisierung, Tag-Migration - Vergleich Obsidian-Workflow vs. Mind-o-Mat-Workflow - Was nicht funktioniert (Sync, Publish, Excalidraw, etc.) - Haeufige Probleme + Loesungen - Rueckkehr zu Obsidian moeglich Verifiziert: Markdown ist valides CommonMark, keine gebrochenen Links
This commit is contained in:
1 parent
9d70cc615e
commit
6ce8649877
1 file changed
+248
@@ -0,0 +1,248 @@
|
|||||||
|
# Migration-Guide: Obsidian → Mind-o-Mat
|
||||||
|
|
||||||
|
Dieser Guide erklärt, wie du von einem bestehenden Obsidian-Vault zu Mind-o-Mat wechselst.
|
||||||
|
|
||||||
|
## Überblick
|
||||||
|
|
||||||
|
Mind-o-Mat ist **kein Obsidian-Klon**, sondern eine eigenständige Implementation mit:
|
||||||
|
- Eigenem Markdown-Format (kompatibel, aber mit eigenen Konventionen)
|
||||||
|
- Eigener PWA statt Obsidian-App
|
||||||
|
- Eigenem Wiki-System statt Obsidian-Plugins
|
||||||
|
- Eigener Cluster-Logik statt Obsidian-Tags
|
||||||
|
|
||||||
|
**Du behältst:** deine Markdown-Dateien, deine Ordnerstruktur, deine Grundkonzepte.
|
||||||
|
**Du wechselst:** vom Obsidian-Editor zur PWA, vom Plugin-System zu eingebauten Befehlen.
|
||||||
|
|
||||||
|
## Schritt 1: Vault-Struktur anpassen
|
||||||
|
|
||||||
|
Obsidian verwendet typischerweise diese Struktur:
|
||||||
|
|
||||||
|
```
|
||||||
|
MeinVault/
|
||||||
|
├── .obsidian/ # Obsidian-Konfiguration
|
||||||
|
├── Daily Notes/ # Tagesnotizen
|
||||||
|
├── Projekte/
|
||||||
|
├── Templates/
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
Mind-o-Mat erwartet diese Struktur:
|
||||||
|
|
||||||
|
```
|
||||||
|
MeinVault/
|
||||||
|
├── 00_Inbox/ # Eingangskorb
|
||||||
|
├── 01_Daily/ # Tagesnotizen
|
||||||
|
├── 10_Wiki/Seiten/ # Wiki-Themenseiten
|
||||||
|
├── 20_Projekte/
|
||||||
|
├── 90_Templates/
|
||||||
|
└── 99_System/ # System-Dateien
|
||||||
|
```
|
||||||
|
|
||||||
|
**Skript für die Migration:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# In deinem Obsidian-Vault-Verzeichnis (PowerShell)
|
||||||
|
$vault = "C:\Pfad\Zu\MeinemVault"
|
||||||
|
|
||||||
|
# Ordner umbenennen oder neu anlegen
|
||||||
|
New-Item -ItemType Directory -Path "$vault\00_Inbox" -Force
|
||||||
|
New-Item -ItemType Directory -Path "$vault\01_Daily" -Force
|
||||||
|
New-Item -ItemType Directory -Path "$vault\10_Wiki\Seiten" -Force
|
||||||
|
New-Item -ItemType Directory -Path "$vault\20_Projekte" -Force
|
||||||
|
New-Item -ItemType Directory -Path "$vault\90_Templates" -Force
|
||||||
|
New-Item -ItemType Directory -Path "$vault\99_System" -Force
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schritt 2: Notiz-Konventionen angleichen
|
||||||
|
|
||||||
|
Mind-o-Mat verwendet strengere Konventionen als Obsidian:
|
||||||
|
|
||||||
|
### Datei-Naming
|
||||||
|
- **Obsidian:** Beliebige Namen, mit oder ohne Datum
|
||||||
|
- **Mind-o-Mat:**
|
||||||
|
- Dailies: `YYYY-MM-DD.md` (Obsidian: `2024-01-15.md` ✓ OK)
|
||||||
|
- Wiki: `Pascal_Snake_Case.md` (Obsidian: `Mein Wiki.md` → umbenennen)
|
||||||
|
- Inbox: `YYYY-MM-DD_Titel.md`
|
||||||
|
- Sonderzeichen: nur `[a-zA-Z0-9_]` und `-` für Datums-Trennzeichen
|
||||||
|
|
||||||
|
**Skript zum Umbenennen** (PowerShell):
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
Get-ChildItem -Recurse -Filter "*.md" | ForEach-Object {
|
||||||
|
$newName = $_.Name -replace '[^\w\-]', '_' -replace '\s+', '_'
|
||||||
|
if ($_.Name -ne $newName) {
|
||||||
|
Rename-Item $_.FullName $newName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Frontmatter
|
||||||
|
- **Obsidian:** Optional, oft ohne `---` am Ende
|
||||||
|
- **Mind-o-Mat:** Pflicht-Frontmatter mit allen Feldern
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
title: <Anzeigename>
|
||||||
|
created: YYYY-MM-DD
|
||||||
|
aktualisiert: YYYY-MM-DD # automatisch durch Ingest/Indexer
|
||||||
|
type: <inbox|daily|wiki|project>
|
||||||
|
status: <neu|aktuell|konflikt|entwurf|archiv>
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
**Wichtig:** Mind-o-Mat verwendet deutsche Keys (`aktualisiert`, nicht `updated`).
|
||||||
|
|
||||||
|
### Wikilinks
|
||||||
|
- **Obsidian:** `[[Datei]]` oder `[[Datei|Anzeige]]` — kompatibel mit Mind-o-Mat ✓
|
||||||
|
- **Mind-o-Mat:** Erkennt beide Formate
|
||||||
|
|
||||||
|
## Schritt 3: Tags und Cluster
|
||||||
|
|
||||||
|
Obsidian verwendet `#tags`, Mind-o-Mat ebenfalls — aber:
|
||||||
|
- Mind-o-Mat unterstützt nur **eine Ebene** Hierarchie: `#kategorie/thema`
|
||||||
|
- Mehr-Ebenen-Tags wie `#projekt/arbeit/2024` werden zu `#projekt/arbeit_2024` normalisiert
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Migration: Tags mit > 1 Ebene umschreiben
|
||||||
|
Get-ChildItem -Recurse -Filter "*.md" | ForEach-Object {
|
||||||
|
$content = Get-Content $_.FullName -Raw
|
||||||
|
$content = $content -replace '#(\w+)/(\w+)/(\w+)', '#$1_$2_$3'
|
||||||
|
Set-Content $_.FullName $content -NoNewline
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schritt 4: Obsidian-Plugins abschalten
|
||||||
|
|
||||||
|
Mind-o-Mat hat eigene Mechanismen für:
|
||||||
|
- **Graph View** → Webapp Tab 1 (Cytoscape)
|
||||||
|
- **Daily Notes** → `01_Daily/` + Ingest
|
||||||
|
- **Backlinks** → landkarte.json (mit `--vault` Argument)
|
||||||
|
- **Tags** → unterstützt, aber mit Hierarchie-Constraint
|
||||||
|
- **Templates** → `90_Templates/` + Konventionen
|
||||||
|
|
||||||
|
Plugins wie Dataview, Templater, Excalidraw sind **nicht kompatibel**. Sie können Schaden anrichten, weil sie das Frontmatter-Format verändern könnten.
|
||||||
|
|
||||||
|
**Vor der Migration:**
|
||||||
|
1. Obsidian öffnen
|
||||||
|
2. Settings → Community Plugins → **alle deaktivieren**
|
||||||
|
3. Optional: `.obsidian/` Ordner löschen (oder behalten, er wird ignoriert)
|
||||||
|
|
||||||
|
## Schritt 5: Tool installieren und Vault initialisieren
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Tool global installieren
|
||||||
|
cd C:\GitHub\Mind-o-Mat
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
npm link
|
||||||
|
|
||||||
|
# Vault initialisieren
|
||||||
|
mindomat init-vault C:\Pfad\Zu\MeinemVault --remote https://git.example.com/Dein-Name/MeinVault.git
|
||||||
|
```
|
||||||
|
|
||||||
|
Das `init-vault`-Skript erstellt:
|
||||||
|
- 12 Standard-Ordner
|
||||||
|
- `99_System/Konfig.md` mit Defaults
|
||||||
|
- `README.md`
|
||||||
|
- `CLAUDE.md`-Template
|
||||||
|
- 2 Demo-Notizen
|
||||||
|
- `.gitignore`
|
||||||
|
- git init + gitea-Remote
|
||||||
|
|
||||||
|
**Achtung:** `init-vault` erstellt Ordner neu. Wenn dein Vault schon die richtigen Ordner hat, ist das idempotent. Sonst sichere vorher.
|
||||||
|
|
||||||
|
## Schritt 6: QMD einrichten
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd C:\Pfad\Zu\MeinemVault
|
||||||
|
|
||||||
|
# QMD global installieren
|
||||||
|
npm install -g @tobilu/qmd
|
||||||
|
|
||||||
|
# Collections anlegen
|
||||||
|
qmd collection add 00_Inbox --name inbox
|
||||||
|
qmd collection add 01_Daily --name daily
|
||||||
|
qmd collection add 10_Wiki --name wiki
|
||||||
|
qmd collection add 20_Projekte --name projekte
|
||||||
|
|
||||||
|
# Embeddings generieren (~2 GB Download, einmalig)
|
||||||
|
qmd embed
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schritt 7: Erste Indexierung
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Erstellt landkarte.json + 99_System/Index.md + 10_Wiki/Index.md
|
||||||
|
mindomat index
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schritt 8: PWA öffnen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd C:\GitHub\Mind-o-Mat\webapp
|
||||||
|
npm install
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Browser öffnet `http://localhost:5173`. Erste Schritte:
|
||||||
|
- Vault-Pfad setzen: in `.env` oder direkt beim Aufruf
|
||||||
|
- Tabs ausprobieren: Graph, Cluster-Karte, Radial
|
||||||
|
- Klick auf Notiz öffnet den PWA-Editor (Tiptap)
|
||||||
|
- Sync-Button ruft `mindomat sync` auf
|
||||||
|
|
||||||
|
## Schritt 9: Workflow-Anpassung
|
||||||
|
|
||||||
|
### Obsidian-Workflow
|
||||||
|
1. Notiz in Obsidian öffnen
|
||||||
|
2. Schreiben
|
||||||
|
3. Speichern (automatisch)
|
||||||
|
4. Obsidian-Plugins verarbeiten (Dataview, etc.)
|
||||||
|
|
||||||
|
### Mind-o-Mat-Workflow
|
||||||
|
1. Notiz in `00_Inbox/` ablegen (manuell oder via Editor)
|
||||||
|
2. `mindomat ingest` läuft (manuell oder via Watch-Mode)
|
||||||
|
3. LLM pflegt Wiki (oder macht Notiz zu Wiki)
|
||||||
|
4. `mindomat index` aktualisiert Landkarte
|
||||||
|
5. Webapp zeigt aktualisierten Graph
|
||||||
|
6. `mindomat sync` pusht zu gitea
|
||||||
|
|
||||||
|
**Im Vergleich:** Obsidian ist WYSIWYG, Mind-o-Mat ist Pipeline-basiert. Mehr Kontrolle, mehr Schritte.
|
||||||
|
|
||||||
|
## Was NICHT funktioniert
|
||||||
|
|
||||||
|
- **Obsidian-Sync** über Cloud → wird durch gitea-Sync ersetzt
|
||||||
|
- **Obsidian Publish** → keine direkte Entsprechung (PWA ist lokal)
|
||||||
|
- **Excalidraw, Kanban, etc.** → nicht unterstützt (Markdown-only)
|
||||||
|
- **Daily Note automatisch erstellen** → nicht in PWA, manuell oder via `mindomat ingest --note ...`
|
||||||
|
|
||||||
|
## Häufige Probleme
|
||||||
|
|
||||||
|
### "Meine alten Notizen werden nicht gefunden"
|
||||||
|
- Dateinamen mit Sonderzeichen: `mindomat index` zeigt sie als `unknown`-Typ
|
||||||
|
- Lösung: Skript zum Umbenennen (siehe Schritt 2)
|
||||||
|
|
||||||
|
### "Wikilinks sind rot"
|
||||||
|
- Zieldatei fehlt oder hat falschen Namen
|
||||||
|
- Lösung: `99_System/Index.md` zeigt verwaiste Links
|
||||||
|
|
||||||
|
### "Inbox wird nicht verarbeitet"
|
||||||
|
- Datei hat kein Frontmatter
|
||||||
|
- Lösung: `mindomat ingest --mock` zeigt, was die Pipeline macht
|
||||||
|
|
||||||
|
### "Graph ist leer"
|
||||||
|
- `mindomat index` wurde nicht ausgeführt
|
||||||
|
- Lösung: einmal laufen lassen
|
||||||
|
|
||||||
|
## Rückkehr zu Obsidian?
|
||||||
|
|
||||||
|
Wenn du zurück willst, ist das einfach:
|
||||||
|
- Obsidian öffnen, Vault-Ordner wählen
|
||||||
|
- Obsidian liest Markdown-Dateien direkt
|
||||||
|
- Aber: Mind-o-Mat-spezifische Frontmatter-Felder werden ignoriert (kein Schaden)
|
||||||
|
|
||||||
|
## Weitere Hilfe
|
||||||
|
|
||||||
|
- `10_Wiki/SPEC.md` — vollständige Spezifikation
|
||||||
|
- `10_Wiki/Plan.md` — Roadmap mit allen 20 Aufgaben
|
||||||
|
- `README.md` — Install-Anleitung
|
||||||
|
- GitHub Issues — für Bug-Reports und Feature-Wünsche
|
||||||
Reference in new issue
Block a user