ページに定義されたタグから環境に依存しないURLを生成したい。
参考書(Build Websites with Hugo)の例では、.Params.tags
からタグのURLを生成していた。
{{ range .Params.tags}}
<span>
<a class="tag_link" href="/tags/{{ . | urlize }}">#{{ . }}</a>
</span>
{{ end}}
しかし、href="/tags/{{ . | urlize }}"
のように、URL生成部分がハードコーディングなため、
本サイトのように/portfolio/
配下にサイトが配置されるケースでリンク切れになる。
解決策
.GetTerms "tags"
により、ページのタグ情報を取得し、タグ情報の.PermaLink
および.LinkTitle
を利用すれば良い。
{{ range (.GetTerms "tags")}}
<span>
<a class="tag_link" href="{{ .Permalink }}">#{{ .LinkTitle }}</a>
</span>
{{ end}}