JavaScriptを有効にしてください

ObsidianでHugo用ノートを更新したら自動で公開する方法

経緯

現在、公開用のアウトプットを[[Hugo]]で静的ページを作成して[[Netlify]]で公開するようにした。

ノートを書くのもその管理も[[Obsidian]]で行っている。

いろんなメモやまとめ記事などがObsidianの中にあって、公開用のノートがサブディレクトリHugoにあってそれを公開している。

肝心のHugoだが、たんにHugoの中にノートを作成すればいいのではなく、Hugoコマンドで静的ページをビルドしてGitコマンドでGitHubへコミット&プッシュしてそこからNetlifyへ自動で送られて公開されている。

この道中のHugoコマンドとGitコマンドが手動で行っているためめんどくさい。
バッチファイルでも作成して自動化できないかと考えたが、知識が追いついていないのでちんぷんかんぷん。

そんな時にObsidianのプラグインとNetlifyのオプションでノートを書くだけで自動的にHugoの静的ページを公開までできる方法があることを知ったのでさっそく設定した。

用意するもの

  • Obsidian
    • Obsidian Git Plugin
  • Hugo
  • Netlify

設定方法

ObsidianおよびHugoのインストール&導入は完了しているものとして話を続けます。

HugoはObsidianのvault内にサブディレクトリとしてHugoを作成しています。

Obsidian Gitのインストール

Obsidianのサードパーティプラグインから「Obsidian Git」をインストールします。
インストールしてプラグインを有効化したらプラグインオプションの設定項目にObsidian Gitが追加されるので、各項目を任意に設定します。

Disable Pushはオフにすることを忘れずに。
オンだとリモートリポジトリにプッシュされないので今回やりたいことができない。

Netlifyで自動Build設定

Base directory:Hugo
Build command:hugo
Publish directory:Hugo/public
Builds:Active

Base DirectoryにHugo用ディレクトリを設定する。

当初、Gitの管理でHugoを別リポジトリにしていたので、プッシュした情報にHugoが加えられていないという本末転倒な状況になっていたので、Gitファイルを作り直した。

エラー

push failed to origin fatal’origin’ does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

ふむ。originがないようだ。
どこかで設定できるのかな。

(ObsidianVault)/.obsidian/plugins/obsidian-git/data.json
のさいごのほうに

"remote":"origin"

とあるのを

"remote":"Hugo"

Gitのconfigファイルでリモートリポジトリの名前を設定しているのと同じようにしたらできた。

まとめ

これでObsidianのなかにあるHugoのコンテンツに保存したノートが定期的にチェックされ、ObsidianGitにより GitHubへコミット&プッシュされ、その後はNetlifyで自動Buildされて公開される。

おつかれさまでした。

参考

共有

目次