diff --git a/scripts/make_test_vault.py b/scripts/make_test_vault.py index b7538a1..2c5e770 100644 --- a/scripts/make_test_vault.py +++ b/scripts/make_test_vault.py @@ -3,31 +3,32 @@ """ make_test_vault.py — erzeugt einen minimalen, nachvollziehbaren Test-Vault -Version: 1.1 (2025-09-05) -Änderungen ggü. 1.0: -- created/updated werden als QUOTED ISO-Strings geschrieben, damit der YAML-Parser - sie nicht in datetime-Objekte konvertiert (Schema verlangt strings). -- Kommentare/Output gestrafft. +Version: 1.2 (2025-09-09) +Änderungen ggü. 1.1: +- Fügt **externe Links** (http/mailto) in `exp-two.md` hinzu, damit der Chunk-Payload-Exporter + `external_links` realistisch testen kann. +- Kleine Textanpassungen zur stabilen Chunk-Bildung (Absatzstruktur). Zweck - Kleiner Obsidian-ähnlicher Vault zum Durchspielen des Importers (Chunks/Edges). -- Szenarien: leere Links, spätere Anlage fehlender Noten, Chunk-Neuaufteilung. +- Szenarien: leere Links, spätere Anlage fehlender Noten, Chunk-Neuaufteilung, externe Links. Struktur (Default: ./test_vault) - 40_concepts/concept-alpha.md - 20_experiences/exp-one.md (verlinkt auf [[concept-alpha]] und [[missing-note]]) -- 20_experiences/exp-two.md (verlinkt auf [[concept-alpha]]) +- 20_experiences/exp-two.md (verlinkt auf [[concept-alpha]] + externe Links) - 30_projects/project-demo.md (verlinkt auf [[concept-alpha]] und [[exp-one]]) Voraussetzungen - Keine. Rein Dateigenerierung. Aufruf - python3 -m scripts.make_test_vault [--out ./test_vault] [--force] + python3 -m scripts.make_test_vault [--out ./test_vault] [--force] [--with-missing] Parameter - --out Zielverzeichnis (Standard: ./test_vault) - --force Bestehenden Ordner löschen und neu anlegen. + --out Zielverzeichnis (Standard: ./test_vault) + --force Bestehenden Ordner löschen und neu anlegen. + --with-missing Auch die 'missing-note' direkt anlegen (Standard: erst im 2. Lauf) Hinweise für Tests 1) Erster Import (dry-run oder --apply): Es gibt einen „leeren“ Link [[missing-note]]. @@ -35,6 +36,7 @@ Hinweise für Tests -> Erwartung: Edges für ehemals leeren Link werden korrekt nachgezogen (references + backlink). 3) Ändere den Body von exp-one.md so, dass andere Chunk-Grenzen entstehen und importiere erneut: -> Erwartung: Chunks/Edges/Note werden für betroffene Noten aktualisiert. +4) Prüfe externe Links (verify_chunk_texts.py betrifft nur Text; externe Links siehst du in chunk_payloads). Kompatibel mit: - note.schema.json: 'created'/'updated' müssen strings sein. (Wichtig!) @@ -52,7 +54,6 @@ def iso_now() -> str: def q(s: str) -> str: # Sicheres Quoten für YAML-Frontmatter - # (einfaches doppelt-Quoten reicht hier, da wir keine eingebetteten """ verwenden) return f"\"{s}\"" TEMPLATE_CONCEPT = """--- @@ -66,7 +67,7 @@ tags: ["area/mindnet","type/concept","topic/test"] --- ## Beschreibung -Dies ist ein einfaches Konzept für Testzwecke. +Dies ist ein einfaches Konzept für Testzwecke. Es wird von anderen Notizen referenziert. ## Mögliche Verbindungen - [[exp-one]] @@ -109,10 +110,12 @@ tags: ["area/mindnet","type/experience","topic/test"] --- ## Kontext -Zweite Experience, die auf dasselbe Konzept verweist. +Zweite Experience, die auf dasselbe Konzept verweist, ergänzt um **externe Links**. ## Beobachtung -Verweis auf [[concept-alpha]]. +Verweis auf [[concept-alpha]]. Zusätzliche Ressourcen: +- Link: [Beispielseite](https://example.com "Referenz") +- Kontakt: [E-Mail](mailto:info@example.com) ## Mögliche Verbindungen - [[concept-alpha]] @@ -218,6 +221,7 @@ def main(): print(" 1) Zuerst ohne missing-note anlegen (Standard), importieren, Edges prüfen.") print(" 2) Dann erneut ausführen mit --force --with-missing (missing-note wird erzeugt),") print(" und Import wiederholen → Edges/Backlinks sollten nachgezogen werden.") + print(" 3) In exp-two.md sind **externe Links** enthalten → prüfe `external_links` in Chunk-Payloads.") if __name__ == "__main__": main()