tbsmcd.net
Dark mode
index, archives, tags, search, profile

hugo でシリーズ記事一覧を表示するための Shortcode と設定

シリーズ記事を書く機運

 しばらく放ったらかしだったこのブログにも書くネタはあるのでシリーズ記事を書いてみたい。それに先立ち、記事内に埋め込む「同一シリーズの記事一覧」機能を自作した。

Shortcode

series.html

{{ $name := .Get "name" }}
<div class="in-article-list">
<p class="in-article-list-p">Series: {{ $name }}</p>
<ul class="page-list">
{{ range $key, $series := site.Taxonomies.series }}
    {{ if eq $key $name }}
        {{ range $series.Pages }}
    <li>
        <span class="list-date">{{ .Date.Format "2006/01/02" }}</span>
        <br>
        <a href="{{ .RelPermalink }}">{{ .Title | markdownify }}</a>
    </li>
        {{ end }}
    {{ end }}
{{ end }}
</ul>
</div>

設定

config.toml

[taxonomies]
tag = "tags"
archive = "archives"
series = "series"

 taxonomies に series を追加する。これでデフォルトで用意されている tag のように使えるようになる。

記事のメタ情報

tag のようにページヘッダに記述。

series: ["シリーズを追加"]

利用法

https://github.com/tbsmcd/tbsmcd.github.io/blob/b84e2829c021b40eb128440685259d9654b69086/content/post/series-list/index.md

「実際の表示」参照

実際の表示↓

Series: シリーズを追加

  1. 2022-06-01 hugo $taxonomy の $key は大文字が小文字化されるので比較に注意
  2. 2020-10-20 hugo でシリーズ記事一覧を表示するための Shortcode と設定

ポイント

 {{ range $key, $series := site.Taxonomies.series }}foreach (series as key => value) のような動きができること。

Tags: hugo