HUGO

Section一覧について。

{{ range .Pages.GroupBy “Section” }}を使って、Sectionを一覧化することが出来ました。

a
b
c
d

その際、Section名も付与することは出来ないでしょうか?

2019
a
b
2020
c
d

のように。
よろしくお願いします。

おそらくこちらが参考になるかと思います。何か分からないことがあれば返信で質問オッケーです。
ʕ◔ϖ◔ʔ

1 Like

content内は、下記です。
AAA/2019/a.md b.md
AAA/2020/c.md d.md
BBB/2020/e.md f.md

.Site.Sectionsだと全セクションになってしまうため、GroupBy“ Section”を使ってみました。
AAAだけでなくBBBも表示されてしまう…。

他に良い方法は無いでしょうか…。

a bに2019というカテゴリ、c dに2020というカテゴリにして、
{{ $termName }}で一覧化表示できたのですが、セクションで対応したい…。
2019 カテゴリ名ではなくセクション名
a
b
2020 カテゴリ名ではなくセクション名
c
d

結論から言えば lion29 さんの content の構造のままでセクションとして記事一覧を出すのは難しいので、記事のフロントマターで定義できる date を参照することをオススメします。例えば次のコードは lion29 さんの要求を満たします。

{{ range .Site.Pages.GroupByDate "2006" }}
  <h2>{{ .Key }}</h2>
  {{ range .Pages }}
    {{ .Title }}
  {{ end }}
{{ end }}

これで以下のような一覧が得られるはずです。

2019
a.md のタイトル
b.md のタイトル
2020
c.md のタイトル
d.md のタイトル

各記事には date を書いておきます。もしくは git commit から参照します。

+++
title = "タイトル"
description = "記事の要約"
date = "2020-02-02"
+++

カテゴリ の意味を確認しますが lion29 さんの言うカテゴリは単にディレクトリということでよろしいですか? 個人的にはフロントマターに categories を書いて .Site.Taxonomies.categories を使うことをオススメします。

Hugo においてカテゴリやタグはフロントマターで categories や tags を定義することで .Site.Taxonomies.tags などで参照できるようになります。フロントマターに categories として 2019, 2020 を定義しているということであれば、.Site.Taxonomies.categories で参照して一覧を出力する、ということもできます。

+++
title = "タイトル"
description = "記事の要約"
date = "2020-02-02"
tags = [
    "go",
    "hugo",
    "development",
]
categories = [
    "Web",
]
+++

{{ range .Site.Pages.GroupByDate “2006” }}だとBBBも表示され、表示順も新しい順になったので、
{{ range .Pages.GroupByDate “2006” “Reverse” }}
で、BBBも表示されず古い順になり上手くいきました。

カテゴリは試しでやってみただけなので、削除しました。

peaceirisさんのおかげで、希望していた物に辿り着けました。
ありがとうございました!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.