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