静的サイトジェネレーターの試行錯誤

今回ブログを開設するにあたって、試行錯誤したログを残しておく。

今回ブログを開設するにあたって、試行錯誤したログを残しておく。

最近は Wordpress とかはめっきり使われなくなってきており、ブログを作るのは静的サイトジェネレーターと呼ばれる手法が主流になっている。代表的なツールは

  • Jekyll (Ruby)
  • Hugo (Go)
  • Zola (Rust)
  • Gatsby (JavaScript)

他にも色々あるだろうが、とりあえず上記を検討した。

Jekyll は Ruby でインストールなどでつまずきたくなかったため除外。

Gatsby は簡単なブログよりも、企業サイトなど作り込みたい時に使うイメージで、再利用可能なテーマとかも無さそうなのでやめた。 前に仕事で使った時にトラブルが多かったのと、 GraphQL でやる理由もよくわからないのであまり好きではない。

現在は Hugo で運用しているが、意外と不満が多くて、 Zola に乗り換えようと思っている。

最初、 arabica というとてもミニマルなテーマを使っていたのだが、さすがに機能が少なすぎたので、人気の hugo-theme-stack を使うことにした。これはデザインが素晴らしいと思ったが、 Summary を自動生成できないのが不満だ。 Summary というのは、記事の最初の 70 文字を自動的に記事一覧ページに表示してくれる Hugo の標準機能なのだが、これは hugo-theme-stack では使えなくなっている。その理由は、単純に 70 文字とか固定長の文字列で区切ると、変な切れ方をするから、それが好きではない。だから記事に手動で Summary を設定してくれという思想らしい。それは理解できるが、自分はそこまで拘らなくてもよいと思ったのと、何より Hugo の標準機能を削ってくるのには驚いた。

Summary is not show in list of posts if no Description is set · Issue #133 · CaiJimmy/hugo-theme-stack

hugo-theme-stack をカスタマイズして対応しようかと思ったが、ローカルでそれっぽいところを編集しても変わらなかったので、一旦諦めて description を手入力することにした。

そして、デプロイしようと思ったのだが、 Cloudflare Pages でビルドしようとした時だけ、ビルドエラーが発生するという問題に直面した。 git submodule の問題かと思って submodule を外してみたりしたが、解決しなかった。エラーログはこんな感じ。

1
2
3
4
5
6
7
8
15:11:05.946  go version go1.14.4 linux/amd64
15:11:05.949  Installing missing commands
15:11:05.949  Verify run directory
15:11:05.949  Executing user command: hugo
15:11:05.985  Error: "/opt/buildhome/repo/themes/hugo-theme-stack2/i18n/zh-tw.yaml:1:1": failed to load translations: unable to parse translation #0 because invalid plural category back
15:11:05.985  map[id:article translation:map[relatedContent:map[other:相關文章] lastUpdatedOn:map[other:最後更新] readingTime:map[other:閱讀時間: {{ .Count }} 分鐘] back:map[other:返回] tableOfContents:map[other:目錄]]]
15:11:05.991  Failed: build command exited with code: 255
15:11:06.816  Failed: an internal error occurred

同じことを経験している人がいた。Hugo のバージョンの問題らしいので、ビルドの設定をいじって解決した。

部署到 cloudflare page 时报错 · Issue #290 · CaiJimmy/hugo-theme-stack

バージョンの指定方法はこちら。該当の Issue にもコメントしておいた。

Deploy a Hugo site · Cloudflare Pages docs

このような試行錯誤があったものの、とりあえず Hugo + hugo-theme-stack での運用はできているので、今んとここれでいこうとは思うが、 Zola の方がシンプルで良さそうな気がしており、将来的に移行したい。 Zola に関しては、下記の Reddit のスレで議論されている。Hugo から Zola に移行した人も多いようだ。

この辺りはテキストエディタでいうところの Vim から Neovim に移行するのと似ている。どちらが優れているわけではなく、新しいものを試して自分に合ったスタックを育てていく。

Migrated my blog from Hugo to Zola on the first day of 2021 and it’s amazing : rust

とりあえずミニマムにブログを始めたいというところで、あまりテーマとか機能にこだわりすぎると本末転倒なので、一旦 Hugo で進めていきたい。ある程度コンテンツが溜まった段階で、 Zola で自作のテーマで動かすなどやってみたいと思っている。

昨日に続き、今日も書いてしまった。毎日書いてしまうと続かないのは目に見えているので、何か変化が合った時に更新するようにしたていきたい。次は自分の開発環境や、勉強中の強化学習に関するモチベーションみたいなところを書きたい。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy