13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JAMstackAdvent Calendar 2018

Day 7

2018年のHugoリリースを振り返る

Last updated at Posted at 2018-12-06

はじめに

静的サイトジェネレータHugoの1年間を振り返ってみます。
ただし、0.xx.y形式のバグフィックスや小さい改善のみのバージョンは除きます。

Page Bundlesサポート

いきなり2017年のリリースから始まってますが、Page Bundlesのサポートが入りました。
Page Resourcesをまとめるための機能で、画像を多く使うサイトで便利です。
(逆に言えば自分は使ってない・・・)

Page BundlesにはLeaf Bundleという形式があり、部品に分けて管理することができます。
Wikipediaでのテンプレートのような機能が実現できるようです。

地味な改善(0.38〜0.41)

内部を整理したり、機能的には地味なものが多いです。

テーマコンポーネント(0.42)

ここまでは個人的にグッとくる機能はなかったのですが、
0.42で導入されたテーマコンポーネント機能は気に入っています。

これは何かというと、テーマを分割する機能です。
これまではテーマは1つしかなかったため、どうしてもごった煮になってしまいました。
0.42からは、ショートコードのみのテーマなど、小さく分割することができます。

自分は以下のようなテーマコンポーネントを作成しました。

Hugo Pipes(0.43〜0.44)

今年一番の機能は、このHugo Pipesです。

このHugo Pipesにより、以下のような機能がサポートされました。

地味ですが個人的に嬉しかったのが0.45での.GetPageの改善で、

{{ with .Site.GetPage "section" "blog" }}

以前はこう書いていたのが、より自然な形で書けるようになりました。

{{ with .Site.GetPage "/blog" }}

Go 1.11対応(0.48)

Hugoのテンプレートの書きづらかった点が、変数のスコープでした。
以前は回避するために.Scratchを使っていましたが、不要になりました。

Directory Based Archietypes(0.49)

Archetypesという、新規コンテンツのためのテンプレートの仕組みがありますが、
これがPage Bundlesに対応しました。

エラー処理の改善(0.50〜0.51)

エラー処理を改善した結果、5%速くなって8%メモリ消費が減ったという嬉しい副作用がありました。

インラインショートコード(0.52)

Markdownの中にショートコードが書ける機能が追加されました。
これは、BootstrapのドキュメントをHugoに移行するというIssueで出た機能です。

現在のHugo

ikemo memoという個人的なメモサイトを作っていますが、
ガリガリにカスタマイズしたテンプレートに、1200記事、1800ページを作って、わずか4〜5秒でビルドされます。

今のHugoで足りないのは、日付によるアーカイブ機能くらいでしょうか。

StaticGenを見ると、スターの勢いはJavaScript系に押されていますが、
Hugoはビルドの速さではダントツです。
なので、今後も独自の立ち位置で進化し続けるかなと。

13
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?