Auf die Möglichkeit, Shell-Befehle auf Obsidian-Seiten auszuführen, bin ich zum ersten Mal gestoßen, als ich auf der Suche nach einem Template war, um mit Obsidian ein Reisetagebuch zu führen. In einem der gefundenen Templates wurde ein Terminalbefehl mit dem Plugin Templater aufgerufen um dessen Ausgabe in die Seite einzufügen. Diese Vorgehensweise möchte ich hier am Beispiel des Einfügens von Wetterdaten erläutern. In einem weiteren Blogeintrag werde ich dann auf eine etwas komplexere Methode eingehen, die noch mehr Möglichkeiten bietet.
Aktuelle Wetterdaten in eine Tagebuchseite einbinden
Um aktuelle Wetterdaten einbinden zu können, wird natürlich ein Service benötigt, der diese Daten zur Verfügung stellt. Eine einfache und kostenlose Möglichkeit ist der Dienst wttr.in, der per Curl aufgerufen wird. Dieser Service wird in der Regel auf den Tips&Tricks-Seiten für Terminalbefehle aufgeführt, die man unbedingt ausprobieren sollte. Im Terminal liefert ein einfacher Aufruf einen detaillierten Wetterbericht für den Ort, den der Dienst anhand der IP-Adresse ermittelt hat.
Für mein Beispiel brauche ich aber keine Wettervorhersage, sondern nur ein paar aktuelle Wetterdaten:
Um diesen String nun bei der Erstellung in die Tagebuchseite einzufügen, wird das Plugin Templater benötigt. Dieses muss installiert und aktiviert sein, außerdem müssen folgende Einstellungen aktiviert werden:
- „Trigger Templater on new file creation”
- „User Command Functions”
- Die „Shell binary location” sollte z.B. auf dem Mac auf /bin/zsh gesetzt werden
- Das auszuführende Kommando:
curl 'wttr.in/?format=4'
wird als User Function “wetter” definiert werden.
Die entsprechende Vorlage für die “Daily Notes” muss nun noch um den folgenden Eintrag ergänzt werden:
---
tags: [daily]
---
<% tp.user.weather() %>
# Tasks
- [ ]
# Notes
Dieses Template wird dann in den Einstellungen der Täglichen Notizen als Template definiert. Wenn dann eine Tägliche Notiz über die Obsidian-Befehlseingabe oder durch einen Klick im Kalender (dazu wird das Calender Plugin benötigt) erstellt wird, sieht das Ergebnis wie folgt aus:
Eine weitere Möglichkeit, die aktuellen Wetterdaten einzufügen, kann über ein einfaches Template erfolgen. Im Template-Ordner wird ein Template z.B. mit dem Namen “wetter” angelegt und nur mit dem Eintrag: <% tp.user.weather() %> versehen. In den Template Einstellungen wird unter dem Punkt “Template Hotkeys” das Template eingetragen. Ein Hotkey kann, muss aber nicht definiert werden.
Über die Obsidian-Befehlspalette und den Befehl “Templater: Insert Template-Ordner/wetter.md” oder durch Auslösen des definierten Hotkeys kann nun in jede Notiz an der Cursorposition das aktuelle Wetter eingefügt werden.
Anstelle des Aufrufs der Wetterdaten können auch beliebige andere Shell-Befehle oder Skripte aufgerufen werden. So ist es auch möglich, den Tagebucheintrag mit einem Zitat aus dem beliebten Linux-Tool fortune zu ergänzen. Auf dem Mac habe ich dazu fortune mit dem Paketmanager brew installiert. Da das von brew installierte Kommando nicht im Standardverzeichnis liegt, muss allerdings im Templater der vollständige Pfad angegeben werden:
Das Ergebnis ist eine Tagebuchnotiz, die bei jedem Aufruf ein neues, mehr oder weniger erhellendes Zitat erzeugt:
Es muss aber nicht immer Text sein. Wie in der obigen Abbildung zu sehen ist, habe ich auch den User Command say
hinzugefügt. In die Vorlage für die täglichen Notizen eingefügt, wird man beim Erstellen einer neuen Notiz mit einem freundlichen gesprochenen “Guten Morgen” begrüßt. Mehr über den say
Befehl kann man in meinem Artikel “Hey Mac, say something” nachlesen.
Nachtrag:
Mit dem folgenden Eintrag in den User Functions wird die Darstellung des Wetters etwas übersichtlicher incl. Übersetzung:
curl wttr.in\?format="%l:+%c+%t+fühlt+sich+an+wie+%f\nSonnenaufgang:+%S\nSonnenuntergang:++%s\nMond:++++%m\n"
Bruchsal, Germany: ☀️ +19°C fühlt sich an wie +19°C
Sonnenaufgang: 06:37:22
Sonnenuntergang: 20:14:56
Mond: 🌔
Mit einem vorgegebenen Ort:
curl wttr.in/Flensburg\?format="%l:+%c+%t+fühlt+sich+an+wie+%f\nSonnenaufgang:+%S\nSonnenuntergang:++%s\nMond:++++%m\n"
Flensburg: ☀️ +19°C fühlt sich an wie +19°C
Sonnenaufgang: 06:36:45
Sonnenuntergang: 20:14:39
Mond: 🌔
Soweit der erste Teil. Anmerkungen, Korrekturen und Kritik wie immer gerne in den Kommentaren.
Schreibe einen Kommentar