Hugoに移行しました

作成日:

このサイトは Jekyll で生成してきたのですが、いろいろつらいので Hugo に乗り換えました。ついでに XREA から ConoHa で借りた VPS に載せ替えています。

乗り換えた理由

  • Jekyllの生成が遅すぎてつらい
    • HugoはGo言語製で、速いことで評判
  • Minimal Mistakesを使ってたけど、もっとシンプルなかんじのデザインにしたほうが更新が気楽になりそう
    • 20年前のサイトみたいな素朴なかんじでやっていきたくなった
    • ならJekyllの過去の資産の多さが必要にならない
  • XREAだと自動デプロイができない
    • XREA側では常駐プロセスを動かせないし、SSH接続元が制限されている1ので自動デプロイが不可能に近い
    • 別件でConoHaを借りているので、もうそっちでいいかなと
    • なお、Hugoと別系統で生成している「書庫」と共存させないといけないので GitHub Pagesでやるのはめんどい

メモ

  • テーマは自作しています。
    • シンプルなブログのテンプレートを作成する | Hugo | nasust dev blogなどが参考になりました。
    • 公式ドキュメントにコピペできるコードがあったり、シンタックスハイライトは組み込みであったりとそこまで難しくありませんでした。
    • テーマ自作をするとやっぱりブラックボックスが減るためにイライラが減るかんじがします。
      • 惰性でCSSを書いてきたけれど、どこかで一度現代的なCSSの書き方を成書で体系的に学んでおくべきな気がしてきました。
  • Hugoはやはり、びっくりするほど高速です。ファイル更新するたびにブラウザが自動リロードされるのも最高です(これはJekyllでも設定すればできた気はする)。
  • Jekyllのときはpostsフォルダに全記事を突っ込んで、「ファイル名から取得した日付と記事名」「Markdownヘッダのcategories」「Markdownヘッダのpermalink」の4要素からページのURL(パーマリンク)が決まっていたのですが、Hugoに移行するにあたって変更しました。「Markdownヘッダの日付」「記事の入っているフォルダ(HugoではSectionという)」「ファイル名から取得した記事名」3要素を使うようになっています。日付をファイル名につけると管理がめんどくさかったのが解消され、Sectionで分けるのも直感的で良い塩梅です。
    • Markdownヘッダのこのへん(カテゴリやタグ廻り)の書式がJekyllとHugoで違ったので、手作業で書き換えました。10ページくらいなのですぐでしたが。
  • あと下書きの有無をMarkdownヘッダのdraft属性で決められるのもとても良いです。Jekyllだとわざわざdraftsフォルダに移動しないといけなかったので……。
  • おそらく各ページのURLは変わらないまま移行できていると思います(一応ブログ記事の全ページで確認しました)。
    • ただし、RSSだけは今までの feed.xml から index.xml に変更になっています。シンボリックリンクを張ったりして対応してもいいのですが、この更新頻度では使っていた方もおられないと思うので……。
  • GitHubのリポジトリのmasterブランチにpushされたときにGitHub Actionsで自動デプロイするようになっています。
    • これで例えばGitHubのブラウザUIからでも更新ができるようになります。
  • やっぱりいちいちコマンドラインを叩くのもめんどいので、リポジトリにhugo.exeのバイナリを含めてバッチファイルで起動できるようにしました。
    • バイナリひとつで動くのはほんとに偉いですね

これでもうちょい更新できるようになるといいですね(書庫のほうはちょくちょく更新できているので、更新がしやすくなればどうにかなるのではないかと思っております)。

そういえば、(実は今までもサーバーにはおいていたのですが)Go TourからHTMLを吐いたものを公開しました。 「文書」のとこにこういう雑リソースをおいていきたいですね。 一年前にちょっと手をつけたGCCのmanページの和訳とか……。


  1. SSH接続できるようにするためには、1ヶ月に1度ブラウザからコントロールパネルにアクセスして「このIPからSSHアクセスを許可」しないといけない。よってサーバーからSSHするのが困難。 ↩︎



© 神和電子 2017-2023