Hugo BeautifulhugoテーマをSubmoduleからHugo Modulesに移行した

Learn how to transition your Beautifulhugo theme from submodules to Hugo Modules.

* 本ページはプロモーションが含まれています

このサイトで導入しているHugoのBeautifulhugoは今までsubmoduleとして利用してきましたが、hugo modules形式へ変更しました。

環境 

Githubから自分のリポジトリをCloneして作業します。

まず、ローカル環境の確認です

❯ go version
go version go1.22.6 darwin/arm64
❯ hugo version
hugo v0.131.0+extended darwin/arm64 BuildDate=2024-08-02T09:03:48Z VendorInfo=brew

themeはbeautifulhugoをsubmoduleでインストールしている

hugo modules初期化 

$ hugo mod init github.com/user/scribble
go: creating new go.mod: module github.com/user/scribble
go: to add module requirements and sums:

beautifulhugoテーマの取得

$ hugo mod get github.com/halogenica/beautifulhugo
go: added github.com/halogenica/beautifulhugo v0.0.0-20240711164100-bd5ebaab69c6

hugo.toml 

下記を追記し、themeの項目をコメントアウト

[[module.imports]]
  path = "github.com/halogenica/beautifulhugo"

git submodule関連の設定の削除 

submodule関連の設定やファイルを削除します。

.git/config がsubmodule関連の設定を持っているので、その記述も削除します。

$ rm -rf themes
$ rm .gitmodules

起動確認 

$ hugo server -D

起動が確認できたら、GithubへPushし完了

補足 

なお、Cloudflareの環境変数でGO_VERSIONは特に設定する必要はなさそうです。

また、今後のテーマ更新については、hugo mod get -u コマンドを使用してテーマを更新し、その後、hugo mod tidy で不要な依存関係を削除して整理する事になるかと思います。


See also