kanta's spike

ページに定義されたタグから環境に依存しない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}}

参考

作成日: 2022/07/15