Hugoで日本語タグを英語URLとしたときのメモ書き。
config.toml に追記をする。
参考(公式サイト)
追記の例
「タグのみをスラッグに設定するパターン」と「タグとカテゴリーをスラッグに設定するパターン」がある。
このデモサイトは「タグのみをスラッグに設定するパターン」にしている。
[permalinks]
tags = "/tags/:slug/"
[permalinks]
categories = "/categories/:slug/"
tags = "/tags/:slug/"
修正するファイル
日本語タグを英語URLにするには「GetTerms」を使うらしいので、上手く表示できるように修正する。
/themes/hugo-fruits/layouts/blog/single.html
方法は複数あるので、取捨選択・加工・編集で表示の調整をする。
参考(公式サイト)
{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
<p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
<ul>
{{ range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
<p>
{{ (site.GetPage $taxonomy).LinkTitle }}:
{{ range $k, $_ := . -}}
{{ if $k }}, {{ end }}
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
{{- end }}
</p>
{{ end }}
<ul>
{{ range .Site.Taxonomies.tags }}
<li><a href="{{ .Page.Permalink }}">{{ .Page.Title }}</a> {{ .Count }}</li>
{{ end }}
</ul>
{{ if .Params.tags }}
{{ with .GetTerms "tags" }}
<ul id="tags">
{{ range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
{{ end }}
{{ $taxonomy := "tags" }}
{{ with .GetTerms $taxonomy }}
<p>{{ (site.GetPage $taxonomy).LinkTitle }}:</p>
<ul>
{{ range . }}
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
{{ end }}
</ul>
{{ end }}
日本語の該当フォルダ+_index.md の設置
自前で用意をしなければならないので、日本語タグが多いほど手間は増える。
/content/tags
- 「日本語の該当フォルダ + _index.md」の設置



ビルド後
ビルド前にローカルチェックで、挙動や動作確認をしておく。
ビルド後に「public/tags」を確認すると「_index.md の slug」が変換されたフォルダになっていることが判る。

まとめ
Hugoの仕様から「かんたんに日本語タグを英語URLに変換」できるような機能が無いので、実現には手間が掛かる。(hugo v0.115.4)
