Hugo 0.55 の変更点いろいろメモ

web hugo

記事を書こうとするといつも Hugo が新しくなっており、それへの対応についても記事を書くことになる不思議。

shortcodes の挙動変更

いままで Markdown が適用されていた部分でも、適用されない場面が増えました。 記事内の呼び出し方によって挙動が違います。

{{% … %}} は、文脈依存。

{{< … >}} は、出力をかっちり決めたいとき。基本はそのまま出力。Markdown による変換が必要なら、実装側で {{ .Inner | markdownify }} とします。

個人的には {{< … >}} としての記載を意図して shortcodes をつくると思うので、覚え書きとして。

Hugo はこういった変更が割とカジュアルに行われるので、油断すると刺される。

これまでは下記のように記述していたところですが、

{{ if .RSSLink }}
<link rel="alternate" type="application/rss+xml" title="{{ .Title | plainify }}" href="{{ .RSSLink }}" />
{{ end }}

表示中のページが対象であれば、

{{ with .OutputFormats.Get "RSS" }}
<link rel="alternate" type="application/rss+xml" title="{{ $.Title | plainify }}" href="{{ .RelPermalink }}" />
{{ end }}

Home固定であれば、

{{ with .Site.Home.AlternativeOutputFormats.Get "RSS" }}
<link rel="alternate" type="application/rss+xml" title="{{ $.Site.Title | plainify }}" href="{{ .Permalink }}" />
{{ end }}

といった記述が必要となります。

.Hugo 変数は global な hugo 関数へ

例えば {{ .Hugo.Generator }}{{ hugo.Generator }} とします。

.Page on Taxonomy

自前で対象ページを引き出さなくても、素直に書けるようになりました。

{{ range .Data.Terms }}
<li><a href="{{ .Page.Permalink }}">{{ .Page.Title }}</a> ({{ .Count }})</li>
{{ end }}