Heim  >  Artikel  >  Backend-Entwicklung  >  Mein Obsidian + Hugo-Blogging-Setup (Automatische Veröffentlichung mit Hotkeys)

Mein Obsidian + Hugo-Blogging-Setup (Automatische Veröffentlichung mit Hotkeys)

PHPz
PHPzOriginal
2024-08-19 20:30:50913Durchsuche

My Obsidian + Hugo blogging setup (Auto publishing with hotkeys)

Wenn Sie auf diesen Artikel geklickt haben, wissen Sie wahrscheinlich, was diese beiden Technologien sind, aber wenn Sie es nicht wissen, finden Sie hier eine kurze Erklärung:

Obsidian

Obsidian ist ein funktionsreicher Markdown-Editor. Aber es ist nicht nur ein Markdown-Editor. Es ist eine Möglichkeit, Wissen zu verwalten. Es eignet sich hervorragend, um Ihre Gedanken auf flexible, nichtlineare Weise zu ordnen.

Obsidian funktioniert auf allen Plattformen. Sie können also Artikel von praktisch jeder Plattform aus schreiben.

Ich mache mir jetzt seit ein paar Monaten alle meine Notizen darin und es ist großartig!

Hugo

Hugo ist ein ultraschneller statischer Website-Generator aus Golang. Ich nutze Hugo für meinen Blog nun seit fast 2 Jahren. Ich habe kürzlich das Thema meines Blogs geändert. Lesen Sie mehr über die Veränderung Neuer Look, Neuanfang.

Aufstellen

In diesem Artikel werde ich nicht zeigen, wie man diese beiden Technologien einrichtet, sondern lediglich, wie man sie zum Zusammenwirken bringt.

Wenn Sie nicht erfahren möchten, wie ich diesen gesamten Blog mit Hugo, Cloudflare und render.com einrichte, lesen Sie: So richte ich diesen Blog kostenlos ein (Domain, Hosting, SSL) Vollständiger Leitfaden

Wenn Sie keine gute Anleitung zur Verwendung von Obsidian suchen, lesen Sie: Erste Schritte – obsidian.md

Ziele

Meine Ziele für den Aufbau sind:

  1. Verwendung eines einzelnen Obsidiangewölbes
  2. Ich habe eine einfach zu verwendende Obsidian-Vorlage, die ich für meine Blogbeiträge verwenden kann.
  3. Meine persönlichen Tresorordner privat halten.
  4. Automatische Veröffentlichung mit Obsidian-Hotkeys.
  5. Bewahren Sie alle Markdown-Dateien in einem öffentlichen Github-Repository auf, damit die Leute Änderungen vorschlagen können

Vorhandenes Setup

Mein aktueller Arbeitsablauf funktioniert wie folgt:

  1. Artikel aus dem Inhaltsordner bearbeiten.
  2. Hugo-Befehl ausführen.
  3. Push to github.
  4. Render.com übernimmt die Änderungen automatisch und stellt sie bereit.

Reise

Wenn Sie den Reiseteil überspringen möchten, können Sie direkt zu The Sauce gehen

Ich werde ein paar Fehler durchgehen, die ich beim Einrichten gemacht habe.

Fehler Nr. 1

Die erste Idee, die ich hatte, war, einen einfachen Symlink zu erstellen (ich verwende übrigens Linux), der die beiden Ordner miteinander verknüpfen würde.

Grundsätzlich habe ich zwei Ordner:

blog/
vault/

Der Blog-Ordner enthält alle Blog-Ordner und der Tresor ist mein persönlicher Tresor.

Der Symlink würde diese Ordner verknüpfen

blog/content
vault/Blog

Allerdings das Problem mit einem Symlink ist, dass der Ordnerinhalt in meinem Git-Repo nicht sichtbar ist. Das bedeutet, dass niemand Änderungen an meinen Artikeln vorschlagen kann

Fehler Nr. 2

Ich wollte meine Ordner synchronisieren. Ich habe versucht, ein paar Bash-Skripte zu schreiben, die die beiden Ordner mithilfe eines Cronjobs automatisch synchronisierten. Allerdings ist es eine Verschwendung von Ressourcen, wenn das ständig im Hintergrund läuft, wenn ich nicht schreibe. Das einfache Ausführen der Skripte über CLI ist einfach nicht so reibungslos.

Die Soße

Grundsätzlich habe ich das so eingerichtet, dass ich zwei Ordner habe:

blog
vault

Der Blog-Ordner enthält alle erforderlichen Hugo-Dateien und verfügt außerdem über ein Unterverzeichnis namens „Content“, in dem alle Markdown-Blogdateien gespeichert sind.

Ich habe in meinem Tresor einen neuen Ordner namens Blog erstellt

blog/content
vault/Blog

Danach habe ich alle meine Dateien aus dem Inhaltsverzeichnis in den Blog kopiert.

Ich habe dann angefangen, genau diesen Artikel zu schreiben

Obsidian-Vorlagen

Ich brauchte eine Möglichkeit, eine einfache Vorlage zu erstellen, die alle erforderlichen Hugo-Titelmaterialien enthält.

Das ist ganz einfach.

Lesen Sie, wie Sie Vorlagen einrichten – obsidian.md

Ich habe in meinem Vorlagenordner eine Datei namens Blog Post erstellt

Meine Blog-Beitragsvorlage enthält Folgendes:

---
title: "{{Title}}"
description: 
date: "{{date:YYYY-MM-DD}}T{{time:HH:mm:ss}}+00:00"
draft: true
---

**If you enjoyed this article consider [supporting me](https://4rkal.eu.org/donate)**

Ich habe alle erforderlichen Titel, einschließlich eines Titels, einer Beschreibung und eines Datums in dem Format, das Hugo verlangt.

Ich habe außerdem einen kleinen Spendentext hinzugefügt, den ich am Ende jedes Artikels einfüge.

Das bedeutet, dass ich diese Vorlage automatisch in jede Datei einfügen und mit dem Schreiben beginnen kann!

Ordnersynchronisierung

Jetzt möchte ich, dass alle meine Dateien in meinem Tresor/Blog-Verzeichnis in den Blog/Inhalt kopiert werden

Dank eines hilfreichen Discord-Benutzers habe ich das Obsidian-Shellcommands-Plugin gefunden.

HINWEIS: Dieses Plugin funktioniert derzeit nicht sehr gut mit der Flatpak-Version von Obsidian (da Flatpak die Umgebung isoliert). Die Verwendung einer anderen Alternative (.deb oder appimage) scheint zu funktionieren.

Es ermöglicht Ihnen, Shell-Befehle im Hintergrund mit einem Hotkey auszuführen.

Die Schritte zum Einrichten sind die folgenden:

  1. Install the plugin
  2. Enable the plugin
  3. Go to the plugin options
  4. Click on New shell command
  5. Now you will need to enter a shell command to copy the files from the one folder to the other.

On Linux/MacOS that is:

cp -a ~/folder1/. ~/folder2/

in my case that is cp -a ~/Documents/vault/Blog/. ~/Documents/blog2/content/

On windows it most probably is:

robocopy "%USERPROFILE%\folder1" "%USERPROFILE%\folder2" /E /COPYALL

After that we need to set a hotkey that will run the command

Click on the (+) icon to go to the hotkey settings and assign a hotkey

My hotkey is CTR + 0, simply because that was available.

Now every time that I run the hotkey it copies over all of my files to the hugo folder ready to be published

Auto publishing scripts

I also want to be able to automatically publish my articles. But I want it to happening by hitting a hotkey.

I wrote a small script that does exactly that:

#!/bin/bash
cd ~/Documents/blog

hugo

git add .
git commit -m "new"
git push -u origin main

This script will build my website, commit and push to my github repo, where it is picked up and published. Read How I setup this blog for free (domain, hosting, ssl) Complete Guide to learn how to setup your own blog for free.

Don’t forget to make the script executable by running

chmod +x ./YOURSCRIPT.sh

Then create a new shell command for the shellcommand plugin (as we did before) and enter the path to your script.

In my case that is:

~/Documents/blog2/push.sh

Then enter a hotkey and you’re done!

Conclusion

I can now simply open my obsidian vault, create a new file, insert my template and have all the info automatically entered.

I then write my article inside of obsidian

Run my hotkey and copy all the files into the hugo directory

Hit another key and my blog is published!

If you enjoyed this article consider supporting me

Das obige ist der detaillierte Inhalt vonMein Obsidian + Hugo-Blogging-Setup (Automatische Veröffentlichung mit Hotkeys). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn