ホームページ  >  記事  >  バックエンド開発  >  私の Obsidian + Hugo ブログ設定 (ホットキーによる自動公開)

私の Obsidian + Hugo ブログ設定 (ホットキーによる自動公開)

PHPz
PHPzオリジナル
2024-08-19 20:30:50913ブラウズ

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

この記事をクリックした方は、おそらくこれら 2 つのテクノロジーが何であるかをご存知でしょう。しかし、ご存じない場合は、ここで簡単に説明します。

黒曜石

Obsidian は、機能満載のマークダウン エディターです。しかし、これは単なるマークダウンエディタではありません。知識を管理する方法です。柔軟かつ非直線的な方法で考えを整理するのに最適です。

Obsidian はすべてのプラットフォームで動作します。したがって、基本的にどのプラットフォームからでも記事を書くことができます。

ここ数か月間、すべてのメモをこのノートに取っていますが、それは素晴らしいことです!

ヒューゴ

Hugo は、golang で作られた超高速静的ウェブサイトジェネレーターです。私はブログに Hugo を約 2 年間使用しています。最近ブログのテーマを変えました。変更について詳しくは、新しい外観、新しいスタートをご覧ください。

設定

この記事では、これら 2 つのテクノロジーをセットアップする方法を説明するのではなく、単にそれらを連携させる方法を説明します。

hugo、cloudflare、render.com を使用してこのブログ全体をセットアップする方法を知りたくない場合は、このブログを無料でセットアップする方法 (ドメイン、ホスティング、SSL) 完全ガイドをお読みください

黒曜石の使用方法に関する適切なガイドが必要ない場合は、「はじめに - obsidian.md」をお読みください

目標

セットアップの目標は次のとおりです:

  1. 単一の黒曜石保管庫の使用
  2. ブログ投稿に使用できる、使いやすい黒曜石テンプレートを用意しています。
  3. 個人用保管庫フォルダーを非公開にしておきます。
  4. 黒曜石ホットキーを使用して自動公開します。
  5. 人々が変更を提案できるように、すべてのマークダウン ファイルをパブリック github リポジトリに置きます

既存のセットアップ

私の現在のワークフローは次のとおりです:

  1. コンテンツ フォルダーから記事を編集します。
  2. hugo コマンドを実行します。
  3. github にプッシュします。
  4. Render.com は変更を自動的に取得して提供します。

旅の部分をスキップしたい場合は、The Sauce に直接アクセスできます

これを設定する際に犯したいくつかの間違いについて説明します。

間違いその1

私が最初に思いついたアイデアは、2 つのフォルダーをリンクする単純なシンボリックリンク (ちなみに Linux を使用しています) を作成することでした。

基本的には 2 つのフォルダーがあります:

blog/
vault/

ブログ フォルダーにはすべてのブログ フォルダーが含まれており、保管庫は私の個人保管庫です。

シンボリックリンクはこれらのフォルダーにリンクします

blog/content
vault/Blog

しかし、シンボリックリンクに関する 問題は、フォルダーの内容が git リポジトリに表示されないことです。これは、私の記事に対する変更を提案できないことを意味します

間違いその2

フォルダーを同期したかったのです。 cronjob を使用して 2 つのフォルダーを自動的に同期する bash スクリプトをいくつか書いてみました。ただし、執筆していないときにバックグラウンドで常に実行しているのはリソースの無駄です。単に CLI 経由でスクリプトを実行するだけでは、それほどスムーズではありません。

ソース

基本的にこれを設定した方法は、2 つのフォルダーがあります:

blog
vault

ブログ フォルダーには、必要なすべての Hugo ファイルが含まれており、すべてのマークダウン ブログ ファイルを格納する content というサブディレクトリもあります。

Vault 内に Blog という名前の新しいフォルダーを作成しました

blog/content
vault/Blog

その後、すべてのファイルをコンテンツ ディレクトリからブログにコピーしました。

その後、この記事を書き始めました

黒曜石テンプレート

必要な Hugo の前付け部分をすべて含む簡単なテンプレートをセットアップする何らかの方法が必要でした。

それはとても簡単です。

テンプレートのセットアップ方法について読む テンプレート - obsidian.md

テンプレートフォルダーにブログ投稿というファイルを作成しました

私のブログ投稿テンプレートには次のものが含まれています:

---
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)**

タイトル、説明、日付など、必要な前付がすべて、hugo が要求する形式で用意されています。

すべての記事の下部に少額の寄付のテキストも追加しました。

これは、このテンプレートを任意のファイルに自動的に挿入して書き込みを開始できることを意味します!

フォルダーの同期

今度は、vault/Blog ディレクトリ内のすべてのファイルを blog/content にコピーしたいと思います

obsidian-shellcommands プラグインを見つけたのは、親切な Discord ユーザーのおかげです。

注: このプラグインは現在、黒曜石の flatpak バージョンではあまりうまく機能しません ( flatpak は環境を分離するため)。別の代替手段 (.deb または appimage) を使用すると機能するようです。

ホットキーを使用してバックグラウンドでシェル コマンドを実行できます。

これを設定する手順は次のとおりです:

  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

以上が私の Obsidian + Hugo ブログ設定 (ホットキーによる自動公開)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。