メインコンテンツへスキップ
HugoのテーマをBlowfishに変更しました

HugoのテーマをBlowfishに変更しました

·5 分
Hugo Hugo
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

以前までブログのコンテンツ管理システムとしてWordPressを使用していましたが、2023年の8月にHugoに移行しました。

WordPressからHugoに移行しました
··10 分
Hugo Hugo

その際に選択したテーマはClarityでしたが、 別のテーマも試してみたいと思い、いろいろなテーマを探してみたところBlowfishが良さそうだったので変更しました。

テーマの変更方法
#

Blowfishのインストール
#

Hugoはインストール済みなので、Blowfishのインストールから始めています。
Blowfish ToolsというBlowfish管理専用のCLIも提供されていましたが、Git submoduleでインストールしました。

tomlの設定
#

config/_default/内のファイルは一旦バックアップを取って、Blowfishのthemes/blowfish/config/_defaultのファイルをconfig/_default/にコピーしました。

Getting Startedに従いhugo.tomlの設定を行いました。

config.tomlparams.tomlなどの設定は下記を参考にしました。

また、各種tomlファイルの設定は下記のサイトも参考にしました。

Shortcodesの修正
#

ClarityのShortcodesは削除し、BlowfishのShortcodesを追加しました。

外部サイトへのリンクカードについてはBlowfishのShortcodesに存在しないようなので、 下記のHugo公式サイトのCreate your own shortcodesを参考にlayouts/shortcodes/linkcard.htmlを作成し、 その中に外部サイトへのリンクカードを表示するShortcodesを記述しました。

移行でエラーが発生したところ
#

ShortcodesのArticleで循環参照が発生し、ビルドが終わらない
#

BlowfishのShortcodesのArticleを使用すると、内部サイトへのリンクを下記のように表示することができます。

WordPressからHugoに移行しました
··10 分
Hugo Hugo

ただし、相互のページにArticleのShrtcodesを使用してリンクを張ると循環参照が発生し、ビルドが完了せず、タイムアウトでエラーが発生します。 どちらかのArticleのShortcodesを削除するか、リンクを直接貼るなどの対応が必要です。

faviconが表示されない
#

Blowfishで独自のfaviconを表示したいときは、staticに置けば表示されるはずなのですが、ファイルを置いても表示されず、デフォルトのフグのアイコンが表示されてしまいました。
この場合、ブラウザのキャッシュが残っているようなので、強制リロード(Edgeの場合Ctrl+F5)行うと独自のfaviconが表示されました。

Cloudflareのデプロイでエラーが発生
#

GithubのリポジトリにHugoのファイルをプッシュするとCloudflareのPagesにデプロイされるように設定しています。 ローカル上でのビルドは問題なかったのですが、Cloudflareのデプロイで下記のエラーが表示され、デプロイが出来なくなってしまいました。

ERROR render of "page" failed:
"/opt/buildhome/repo/themes/blowfish/layouts/_default/baseof.html:8:4":
execute of template failed: template: _default/single.html:8:4:
executing "_default/single.html" at <partial "head.html" .>:
error calling partial: 
"/opt/buildhome/repo/themes/blowfish/layouts/partials/head.html:48:48": 
execute of template failed: template: partials/head.html:48:48
: executing "partials/head.html" at <resources.Concat>:
error calling Concat: slice []interface {} not supported in concat

Blowfishのpartials/head.htmlの48行目でエラーが発生しているようなのですが、どう修正すればいいか分かりませんでした。

色々試してみたところHugoのバージョンをv0.117.0からv0.135.0にアップデートしたら、Cloudflareにデプロイできるようになりました。v0.136.0以上だとローカルのビルドでエラーが発生するのでv0.135.0を使用してます。

バージョンアップしたことにより、ローカルのビルド時間はそれほど変わらなかったですが、Cloudflareのデプロイ時間がかなり長くなるようになってしまいました。
バージョンアップ前は1分程度でデプロイされていたのが、バージョンアップ後は10分程度かかるようになってしまいました。 ビルド時間が長くなってしまったのは残念ですが、このまま使用したいと思います。

番外:コメント機能(giscus)の導入
#

Blowfishとは関係ないですが、問い合わせ関連の機能も変更しました。
WordpressからHugoに移行したときに、Googleフォームを使用して問い合わせフォームを作成しましたが、 GithubのDiscuss機能を利用して各ページにコメントを残せるgiscusに移行しました。 各ページの一番下にGithubアカウントを利用してコメントを残すことができます。

下記を参考にGithubのPublicリポジトリを作成します。

Githubのリポジトリを作成したら、下記のサイトを参考にgiscusを導入します。

Blowfishのコメント機能設定は公式サイトの下記のページを参考にしました。

参考サイト
#

関連記事

WordPressからHugoに移行しました
··10 分
Hugo Hugo
【Golang】jpeg画像がプログレッシブ形式か判別する
·2 分
Programming Golang
【Golang】playwright-goでファイルをアップロードする
·3 分
Programming Golang