Hugo Modulesとは

こんにちはnasustです。 Hugo v0.56から新しい機能、Hugo Modulesがサポートされました。

Hugo Modulesとは、指定したGitHubのURLをHugoのウェブサイトのディレクトリとして使用できる機能です。

例えば、あるHugoのテーマーのショートコードだけ使用したい場合、以前はテンプレートをコピペしましたが、Hugo Modulesの機能でURLを指定するだけで使用できるようになります。

{{< warning >}} Hugo Modulesを使用するには、Go 1.12以上とgitが必要です。Hugo Modulesは、これらのコマンドを使用している為です。 {{< /warning >}}

設定方法

以下のように設定します。

[module]
    [[module.imports]]
        path="github.com/spf13/hyde"

github.com/spf13/hydeはHugoテーマのGitHubのレポジトリーです。archetypes,lyouts,static内のファイルが自分のウェブサイトのファイルとして使用出来ます。

Hugoテーマ以外のレポジトリーも使用出来ます。

[module]
    [[module.imports]]
        path="github.com/bep/hugotestmods/mymounts"
    [[module.imports.mounts]]
        source="myassets/subfolder"
        target="assets/images"
    [[module.imports.mounts]]
        source="mydata/subfolder"
        target="data/datakey"

github.com/bep/hugotestmods/mymountsはHugoのテーマでは無いレポジトリーです。[[module.imports.mounts]]のsourceで指定したレポジトリのディレクトリをtargetでHugoのディレクトリとして割り当てています。

要するにgithub.com/bep/hugotestmods/mymounts/myassets/subfolder内のファイルがassets/imagesのパスで参照出来るようになります。

targetはstatic, content, layouts, data, assets, i18n, archetypesが指定出来ます。

これらのモジュールは、hugoコマンドでウェブサイトのビルドなどタイミングで自動的にダウンロードされます。

iOS、Android、Web、APIサーバーなどのフロントエンド・バックエンドを開発するソフトウェアエンジニアです。 UI/UXが好きです。かっこいいUIやWebデザインを眺めるのが趣味です。 このブログはソフトウェア開発関係の内容を記事にしています。
web service:
GitHubQiitaTwitterはてなブログ
handle name:
nasust
real name:
hideki mori
job:
ソフトウェアエンジニア
develop:
target: ios, android, web page, single page application, api server, system service, cli tool, linux embedded device

lang: c/c++, go, swift, objective-c, java, kotlin, typescript, dart, javascript, ruby, python, php

tool: vscode, xcode, android studio, photoshop, vim, docker