質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

1回答

1466閲覧

【HUGO】フォルダの中にある記事が表示されない・セクション内で使われているカテゴリのリストを表示したい

anocco

総合スコア4

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2020/01/27 13:25

編集2020/01/28 03:17

前提・実現したいこと

1.フォルダの中にある記事も一緒に記事一覧で表示させたい
2.セクション内にある記事で使われているカテゴリのリストを表示したい
(以下をご参照ください)

現状・問題点

静的サイトジェネレーターHUGOを触り始めた初心者です。

1.について
セクションの中にフォルダを作り(カテゴリAとします)、その中にさらにフォルダを作り(post1とします)記事を作成すると、記事一覧に表示されなくなります。
現状は、カテゴリAが記事タイトルとして表示され、サイト名/section1/categoryAにリンクが飛ぶようになっています。
上の階層に移動させると表示されるのですが、カテゴリごとでファイルを管理したいので何か解決方法はありますでしょうか?
ブランチバンドル、リーフバンドルが関係しているのでしょうか?
勉強不足で申し訳ありません。既出でしたらURLだけでもご提示いただけると幸いです。

2.について
セクション内にある記事で使われているカテゴリだけのリストを表示する方法も探しています。
現状は、【All・カテゴリA・カテゴリB・カテゴリC・カテゴリD】になっていますが、
これを
section1のページ…【All・カテゴリA・カテゴリB】
section2のページ…【All・カテゴリC・カテゴリD】
にしたいということです。
※Allはsection○のトップページに飛ぶようにしています。

発生している問題・エラーメッセージ

実験中のためindex.mdだったり、_index.mdだったりバラバラです。

サイト名/ ├ archetypes/ ├ content/ │ ├ section1/ │ │ ├ categoryA/ //カテゴリ名が記事のタイトルとして表示される │ │ │ ├ post │ │ │ │ └ index.md //記事が表示されない │ │ │ │ │ │ │ └ _index.md │ │ │ │ │ ├ categoryB/ //カテゴリが表示されない │ │ │ ├ _index.md │ │ │ └ post2.md //記事が表示されない │ │ │ │ │ ├ _index.md │ │ └ post3.md //表示される │ │ │ ├ section2/ │ │ ├ categoryC/ //カテゴリ名が記事のタイトルとして表示される │ │ │ ├ index.md │ │ │ └ post4.md //記事が表示されない │ │ │ │ │ ├ categoryD/ //カテゴリが表示されない │ │ │ ├ _index.md │ │ │ └ post5.md //記事が表示されない │ │ │ │ │ ├ _index.md │ │ └ post6.md //表示される ├ layouts/ │ └ _default │ ├ list.html │ └ post.html

該当のソースコード

html

1<!-- layouts/_default/list.html --> 2 3{{ define "main" }} 4 {{ partial "page-title.html" . }} 5 <!-- blog(section1) --> 6 <section class="section"> 7 <div class="container"> 8 <ul> 9 {{ with .CurrentSection }} 10 <li><a href="{{ .RelPermalink }}">All</a></li> 11 {{- end }} 12 {{- range $taxonomyName, $taxonomy := .Site.Taxonomies }} 13 {{- range ($.Site.GetPage "taxonomyTerm" $taxonomyName).Pages }} 14 <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li> 15 {{- end }} 16 {{- end }} 17 </ul> 18 <div class="row"> 19 {{ range .Paginator.Pages }} 20 {{ .Render "post" }} 21 {{ end }} 22 </div> 23 {{ template "_internal/pagination.html" . }} 24 </div> 25 </section> 26 <!-- /blog(section1) --> 27{{ end }} 28 29 30<!-- layouts/_default/post.html --> 31 32<div class="col-lg-4 col-sm-6 mb-4"> 33 <article class="card shadow"> 34 <img class="rounded card-img-top" src="{{.Params.Image | relURL}}" alt="{{.Title }}"> 35 <div class="card-body"> 36 <h4 class="card-title"><a class="text-dark" href="{{.RelPermalink}}">{{.Title }}</a> 37 </h4> 38 <p class="cars-text">{{.Summary}}…</p> 39 <a href="{{.RelPermalink}}" class="btn btn-xs btn-primary">Read More</a> 40 </div> 41 </article> 42</div>

試したこと

1.について
上記で記載しました通り、現状は、カテゴリAが記事タイトルとして表示され、サイト名/section1/categoryAにリンクが飛ぶようになっています。その先のリンクはありません。
最下層のindex.md_index.mdに変更するとカテゴリごと表示されなくなります。

2.について

HTML

1<!-- layouts/_default/list.html --> 2 3 {{- range $taxonomyName, $taxonomy := .Site.Taxonomies }} 4 {{- range ($.Site.GetPage "taxonomyTerm" $taxonomyName).Pages }} 5 <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li> 6 {{- end }} 7 {{- end }}

この部分が怪しいと思っています。
.Site.Taxonomiesはサイト全体で使用しているタクソノミーを取得しているという認識で合っていますか?
.Site.GetPageでセクション内の記事を取得出来るということは分かったのですが、セクション内のタクソノミーだけをを取得する方法が分かりません。

補足情報(FW/ツールのバージョンなど)

こちらのテンプレートを使用しています。
Kross hugo
このデモサイトのポートフォリオページのカテゴリタブのようなものを、ブログのほうでも実現したいということです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

1つ目に関しましては自己解決しましたので、書き記しておきます。

1.について
section1とcategoryAにある_index.mdを削除。
最下層にある記事データはindex.mdで保存する。

サイト名/section1/categoryAindex.mdがあってもフォルダの中のpost1の記事は表示されますが、カテゴリAも記事として表示されてしまいますのでやっぱり削除したほうが無難なようです。

ちなみにこちらの記事を参考にして、セクション名が自動的に複数形になってしまうのをconfig.tomlで制御させました。

2.について
まだ試行錯誤中です。解決しましたらまた記載します。
分かる方がいましたらご教示いただけますと幸いです。

投稿2020/01/28 03:40

anocco

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問