Help us understand the problem. What is going on with this article?

Hugo v0.56 新機能 Modules と deploy

Hugo v0.56 がリリース

今回のリリース Hugo v0.56 では Hugo Modules と Hugo deploy の二つの新機能が実装されました。この記事ではそれらの紹介をします。

homebrew-core の Hugo は既に v0.56 へ更新されています。Docker で試したい方は Docker image of Hugo extended version を使ってみてください。GitHub Actions で試したい方は GitHub Actions for Hugo extended をどうぞ。もちろん Release v0.56.0 - gohugoio/hugo からバイナリをダウンロードして実行もできます。

Hugo Modules

動作要件

Hugo Modules は Go Modules に似た機能であり、実際のところ Go Modules に依存しています。Hugo Modules を利用するには以下がインストールされている必要があります。

  • Go 1.12 以上
  • Git

v0.55.6 までの Hugo の実行に Go の実行環境は必要ありませんでしたが、今後 Hugo Modules を利用したい場合には必要となります。もちろん Hugo Modules を使わない場合は今まで通りGo言語の実行環境は必要ありません。

個人的には Netlify で Hugo Modules を利用できるのか が気になりましたが Netlify は Go 1.12 の実行環境を用意してくれているので、問題なく Hugo Modules を使えます。

「手元では Go を実行できるけど CI/CD をさせるリモート側でどうしても Go をインストールできない、それでも Hugo Modules の恩恵を受けたい」 のような場合は手元の環境で hugo mod vendor を実行して依存をすべて _vendor 以下に出力し、それもリモート側に送れば良いです。

できること

具体的に何ができるかと言うと、以下のような Hugo プロジェクトを構成するコンポーネントを

  • static
  • content
  • layouts
  • data
  • assets
  • i18n
  • archetypes
  • themes

外部のリポジトリからインポートして利用できるようになりました。Hugo テンプレートが書かれている HTML ファイルや JavaScript, CSS などを異なる Hugo プロジェクト間で使い回せます。

go get コマンドのような感じでコンポーネントをプロジェクトにインポートして管理できます。

hugo mod get -u github.com/bep/my-theme

これまでは公開されている Hugo theme を導入する方法として

  • Git submodule
  • Zip でダウンロードしてコンテンツ同様に扱う

が主な手段でした。今後は対象の Theme が Hugo Modules での導入に対応していれば、以下のように config.toml にテーマのパスを記載しておくだけでインポートができます。

config.toml
[module]
[[module.imports]]
path="github.com/bep/hugo-fresh"

デモ

動画は Hugo theme の切り替えと partials のインポートを行う様子です。hugo server で確認しながらインポート、つまりホットリロードが可能です。

コマンド

hugo mode clean   # キャッシュをクリアします。
hugo mode get     # 現在の Hugo プロジェクトの依存を解決します。
hugo mode graph   # モジュールの依存グラフを出力します。
hugo mode init    # Hugo Module として現在のプロジェクトを初期化します。
hugo mode tidy    # go.mod と go.sum から利用されていないものを削除します。
hugo mode vendor  # _vendor ディレクトリにモジュールの依存を保存します。

Hugo Deploy

以下のホスティングサービスに hugo deploy コマンドでデプロイができるようになりました。

  • GCS (Google Cloud Storage )
  • S3 (Amazon Simple Storage Service)
  • Azure Storage
peaceiris
Hugo ʕ◔ϖ◔ʔ, Python, Deep Learning, Computer Vision, こっち https://peaceiris.com/ に引っ越しました。今後 Qiita への新規投稿はしませんが記事のメンテはします。
https://peaceiris.com/
admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。
https://admin-guild.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした