MD-Curcuma | Library

Eine Typescript-Bibliothek zum Daten transportieren und umwandeln.

Warum?

// Motivation

Ich bin ja nun mit meiner Webseite von Wordpressexternal link noch Hugoexternal link umgezogen, und möchte gerne Inhalte aus meinem Second-Brain - der Notiz App Obsidianexternal link in mein Hugo-Projekt transportieren und dort veröffentlichen.

Das geht natürlich nicht so einfach. Ausserdem hatte ich das folgende Problem:

Obsidian / Markdown Dokumente

Ich habe zum Beispiel umfangreiche Manuskripte in Obsidian geschrieben, mit 4-stufigen Kapitelstrukturen und dementsprechend vielen einzelnen Markdown-Dokumenten. Mit dem Obsidian Longform Pluginexternal link kann man solche Manuskripte zu einer großen Datei zusammenfassen und dann z.B. mit Pandocexternal link in ein beliebiges anderes Format konvertieren. Aber wenn ich das Buch auf meiner Webseite veröffentlichen will, habe ich ein Problem. Die Langform ist zu groß. Die einzelnen Kapitel wären wiederum zu fragmentiert, um sie auf der Hugo-Website anzuzeigen. Die Lösung war, das Langform-Dokument wieder in einzelne Dokumente auf einer Überschriftenebene aufzuteilen (# ), ein Hugo-kompatibles Frontmatter hinzuzufügen und die Links und andere Dinge in Hugo-Shortcodes umzuwandeln.

Die Dateien müssen im Obsidianexternal link Vault ausgewählt werden, Frontmatter und Markdown müssen umgewandelt, und das ganze muss dann an andere Orte in Hugoexternal link -Projekt kopiert werden. Natürlich sollen auch Attachments wie Bilder und PDFs übernommen werden.

Book Buddy

Ausserdem verwende ich die App BookBuddyexternal link um meine Bibliothek zu verwalten. Den Inhalt kann man als CSV-Tabellen-Datei exportieren. Ich würde die Daten gerne in Hugo verwenden. Dazu muss man die Datei in das JSON-Format umwandeln, damit Hugo damit was anfangen kann. Ausserdem müssen die mit exportierten Cover-Fotos heruntergeladen, und mit dem Datensatz verknüpft werden.

Dafür ist dieses Programm gedacht.

Features

Transportiert (kopiert) und transformiert Markdown- oder CVS-Dateien aus Obsidianexternal link zur Verwendung in Hugoexternal link .

Das Programm ist noch in der Entwicklung, und das ist bisher umgesetzt:

Transporter

  • MD_Transporter - für Markdown-Dateien.
  • CSV_Transporter - Für Dateien mit kommagetrennten Werten, bei denen jede Zeile ein Datensatz ist. Das ist eine BookBuddy App Unterstützung: CSV-Dateikonvertierung & Bild-Download.

Markdown Transformer

  • Kopieren und transformieren von einem oder mehreren Markdown-Dateien.
  • Aufteilen von Longform-Dokumenten in mehrere Einzeldokumente.
    • Die Aufteilung sollte auf Überschriften erfolgen: z.B.: #
    • Der Text der Überschrift wird als Dateiname verwendet.
    • Wenn nötig, mit einer vorangestellten Zahl, ggf.
    • Sonderzeichen url konform ersetzen.
    • Überschrift entfernen (vorzugsweise als Option)
  • Obsidian-Links (Bilder und Dokumente) umwandeln.
    • nebenbei die Bilder & Dateien kopieren.
    • Ein Simulationsmodus gibt Auskunft darüber, welche Verzeichnisse, Bilder und Anhänge wo erwartet werden.
  • Latex-Formeln, Absatz und Inline.
  • Frontmatter: Hinzufügen, Ersetzen, Zuordnen und Transformieren von Werten.
  • Callouts.
  • Absätze nit TODOs entfernen.
  • TODO: Wikilinks (Querverweise) berücksichtigen.
  • TODO: Unterstützung von Fußnoten und Endnoten.

Verfügbare Mappings

  • Adopt Value - ein einfaches Beispiel.
  • ArrayJoin, ArraySplit
  • Boolesche Umkehrung
  • Bild-Downloader
  • Datum einfügen (jetzt)
  • UUID einfügen
  • Zeichen aus String abschneiden.

Man kann einfach selber Transformatoren und Mappings bauen. Weitere geplante Features und Änderungen gibts in der CHANGELOG.mdexternal link

Einschränkungen

  • Läuft nur im Backend, nicht in Web-Browsern.

Download