動機
アド"定期ゲ"ベントカレンダー2024 Advent Calendar 2024に参加するにあたり、ひとり城ドメインのルートページを作りたくなりました。
技術選定
- 早い
- 安い
- 美味い
が揃っていて、ちょうどよかったと思います。
AIについては、アドカレの記事で詳しく書きます。
セットアップ
Hugoは超有名なので、公式ドキュメントどころかCodyに言われるがままでほぼ終わりました。テーマの細かいカスタマイズをしなければ、30分もかかりません。
hugo new site blog
の爆速っぷりには本当に笑いました。噂に違わぬその速さ……お主……さては有名ですね?
公式ドキュメントも親切でした。
引っかかったポイント
それでもいくつか引っかかったので、それを書いておきます。
設定ファイルを環境変数で上書きするときはHUGO_XXX
Hugoの設定ファイルを環境変数で書き換えたいときがよくあります。
たとえば、サイトのベースURLは開発環境と本番環境でたいてい異なります。
# config.toml
# サイトのベースURL
baseURL = "https://example.com"
これを環境変数で上書きしたいときは、HUGO_BASEURL
という環境変数で設定します。
# .env
HUGO_BASEURL=https://example.com
公式ドキュメントに書いてあったんですが、気づくのに時間がかかりました。
klakegg/hugoのHugoバージョンが古い
hugo docker
で検索するとklakegg/hugoのDocker Imageがヒットします。しかし、このDocker ImageのHugoバージョンは0.101.xです。
2024年12月時点の最新バージョンは0.139.4ですから、このバージョンだと多くのテーマでビルドに失敗します。
debianのImageなどでビルドするのが良いでしょう。
# Dockerfile
FROM debian:bookworm-slim as builder
# Install Hugo
RUN apt-get update && apt-get install -y \
curl \
&& curl -L https://github.com/gohugoio/hugo/releases/download/v0.139.4/hugo_0.139.4_linux-amd64.deb -o hugo.deb \
&& dpkg -i hugo.deb \
&& rm hugo.deb \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY ./apps/blog .
ARG SITE_BASE_URL
ENV HUGO_BASEURL=${SITE_BASE_URL}
RUN hugo --minify
FROM nginx:alpine
COPY --from=builder /src/public /usr/share/nginx/html
記事の読了目安時間が少なすぎる
Hugoにはこのように、読了目安時間を文字数に応じて表示する機能があります。しかしデフォルトだと、この記事でも1分程度です。少し短すぎます。
これは単語の計算方法によるもので、ページ設定のisCJKLanguageで日本語向きにできます。
# page.md
---
title: 'HugoでサークルWebサイト作り'
date: 2024-12-16T0:00:00
isCJKLanguage: true # これを追加
---
<!-- 本文 -->
これで妥当な時間が出ます。
サークルWebサイトできました
散り散りになっていたSNSアカウントなどがまとまりました。
テーマのカスタマイズ含めて半日かかりませんでした。ホントの初心者には難しいので一概にオススメはできませんが、Hugoはとても良いです。