tbsmcd.net : Home | Archives | Tags | Search | Profile

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

2020-10-20

シリーズ記事を書く機運

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

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: シリーズを追加

ポイント

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

Tags: hugo