v2.0.9: Migration-Guide Obsidian -> Mind-o-Mat
CI / test (push) Canceled after 0s
CI / webapp (push) Canceled after 0s

- 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:
Jannik committed 2026-09-05 12:43:17 +02:00
1 parent 9d70cc615e
commit 6ce8649877
1 file changed
+248
+248
View File
@@ -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