Diese Seite wird mit hugo erstellt und lässt sich in Sekunden statisch generieren – was wunderbar zum schnellen Obsidian Editor und Workflow passt.
Die unten stehenden Konfiguration ermöglicht dabei ein paar Basics:
- neue Notes werden direkt in
content/posts
abgelegt - eine neue timeline (s. Zeitleiste für Hugo/PaperMod) Datei anlegen unter Verwendung eines Templates. Dafür ist die Daily Notes Funktion praktisch
- shortcuts, z.B. deployment mit den Tasten
alt+shift+d
Die Konfiguration ist inspiriert von https://4rkal.com/posts/obsidianhugo.
Allgemein
Als Obsidian Vault nutze ich das root des blogs. Also content ist ein Unterverzeichnis, in templates sind die obsidian-templates.
In Obsidian -> Preferences verwende ich noch diese Einstellungen:
- Files and Links:
- Default location for new posts: In the folder specified below … “content/posts”
- Excluded files: “public/”
- Default location for new attachments: In the folder specified below … “assets/images”
- Editor:
- Properties in document: Source
- Spellcheck: off
- Templates:
- Template folder location: “templates”
Deployment
Da ich der einzige Benutzer bin, und auf dem Cloud-Server nur diese Seite liegt, passiert das deployment einfach per rsync/ssh aus dem von Hugo generierten public Verzeichnis.
Hier kommt das Plugin Shell commands zum Einsatz:
- unten stehendes script als neuer Cmd
/opt/local/bin/hugo --minify || exit 1
echo "Deploying ..."
rsync -n -prvzp --delete public/ DESTSERVER:/DESTPATH/ || exit 1
echo "Deployed successfully!"
git commit -a -m "deployed."
git push origin master
(hugo pfad, -n für no-op und destination ist anzupassen)
- Als alias trage ich ‘deploy’ ein
- In Output -> Output channel for stdout: “Notification ballon”, damit die Ausgabe kurz sichtbar ist.
Der Rest bleibt alles auf Standard-Einstellung.
Bei Darstellungsproblemen ist es manchmal hilfreich vorher das public Verzeichnis zu löschen – könnte man auch in das script aufnehmen. Und ein git commit und tagging ist vielleicht auch sinnvoll.
Dann noch den hotkey erstellen, oder alternativ einfach das cmd-Menü verwenden (cmd+p -> deploy).
- Obsidian -> Preferences -> Hotkeys
- “Shell commands: Execute: deploy” -> alt+shift+d
Timeline
Die Timeline (Zeitleiste auf meiner Seite), zeigt z.B. tägliche Funde, Bemerkenswertes etc. Jeder Tag hat ein md-file im Format YYYY-MM-DD. Genaueres unter Zeitleiste für Hugo/PaperMod
Hier ist die Daily Notes Funktion praktisch, mit diesem template und Konfiguration:
Neues template: templates/timeline
---
title: {{date}}
date: {{date}}
---
### Heute gefunden...
Dann…
- Obsidian -> Preferences -> Daily Notes:
- Date format: “YYYY/YYYY-MM-DD”
- New file location: “content/timeline”
- Template file location: “templates/timeline”
Jetzt lässt sich einfach mit “open daily note” (linke Leiste / cmd+p) ein neuer Eintrag für die timeline Sektion im blog erstellen.
Posts
Neues template: templates/post
---
title: {{title}}
date: {{date}}
description:
summary:
tags: ["software"]
showToc: true
tocOpen: true
draft: true
---
content...
Ein neuer post lässt sich nun mit cmd+n, title ändern, cmd+p -> insert template -> post anlegen.
Fazit
Die Lösung ist sehr einfach, und funktioniert mit Standard-Obsidian und nur einem Plugin.
Praktisch wäre für mich noch:
- den lokalen hugo server in einer externen shell starten mit shortcut
- Konvertieren von obsidian links zu HTML links