897 文字
4 分
ブログをHexoに書くことにした

ブログを書きたいと思うことは多いが、はてなブログなどのサービスは自由度が低い。webページまで書きに行くのが手間がかかる。加えて手元で書いたものをコピペするのは冗長だと感じてしまう。

別の方法として、hugoや以前使用していたhexoなどの静的サイトジェネレータを github pages にデプロイする方法がある。しかしこれではファイルに記事の内容を書き出してコマンドを実行して github pages にデプロイする必要がある。

obsidian-gitを使用したHexoの自動デプロイ#

そこで、日頃から使用している obsidian の git 同期の機能とgithub actions の機能を組み合わせることで自動デプロイされるようにする。

hexoの環境構築#

手始めにHexo公式の通りに npm からインストールし、流れに沿ってhexo serverlocalhost:4000 にてwebページが表示されるようにする。

Github Pages にデプロイしてみる#

ローカル環境でhexo clean && hexo deployなどのコマンドにて、そもそも手動でデプロイができることを確認すると安心。 方法はHexo公式参考にした記事に詳しく記載されているため、そちらを参照してほしい。

Github Actions にて自動デプロイするようにする#

Hexo公式のGithub Pagesの設定に設定の中身も記載してある。 Actionsを設定する際の注意点として、以下がある。

  • github Actionsの設定を変更する必要がある
    • 4の In your GitHub repo’s setting, navigate to Settings > Pages > Source. Change the source to GitHub Actions and save の指示
  • github Actions の permission の設定をしないといけない

あとはpushをして Actions が設定できることと、Pagesにデプロイされていることを確認する。

(オプション)テーマの設定#

hexoの公式がテーマ一覧を提供してくれている。 (リンク切れになっているページが多いので、その際は手元で動かして確認するしかない)

今回は良さそうと思ったviviaを使用している。 決め手はカテゴリの階層構造がちゃんとしていることと、UIが整っていると感じたため。

Obsidianの設定#

これはHexoのリポジトリのsorce/_postをObsidianのvaltとして登録する。 その後 community plugin から Obsidian Git を追加し、commitやpushのタイミングを設定するだけである。

まとめ#

この方法で、

  1. Obsidianに記事の内容を書く
  2. Git プラグインにより自動で Githubにpushされる
  3. pushされたことによりGitHub Actionが実行される
  4. GitHub Pagesに書いた記事が追加される

という流れを作ることができた。 そしてブログの記者は1のみをするだけでよい(やったね)

書きかけの途中の記事が自動pushにより公開されるというのが嫌な場合は、hexoのfront-matterpublishedという設定がある。これがfalseの際はその記事は公開されない。そのため記事の記述が終わった際にtrueに直すと公開されるようになる。

参考#

ブログをHexoに書くことにした
https://fuwari.vercel.app/posts/diary/2023/10/2023-10-21sat/
作者
七レ夕
公開日
2023-10-21
ライセンス
CC BY-NC-SA 4.0