Taxonomyの項目名だけでは説明が足りない場合がある。僕の場合は作品名に作者表示を追加したくて困った。Can we add extra data to TaxonomyTerm? - Feature requests - Zolaで大体紹介されているので、それを見て僕が取った方法を紹介だけする
とりあえずtaxonomy名をsources
とし、あるsourceの名をone
として話を進める。最初にpublic/sources/one/index.html
というページをcontent/sources/one.md
を通して通常の記事として作成し、さらにそれをtemplates/sources/single.html
で生成されたpublic/sources/one/index.html
で上書きするものだ。上書きの仕様は把握していないのでいずれ動かなくなるかもしれないが、ゴミを残すとかdraft=true
にするとかで上書きは回避できるのでそこまで気にしなくてよい
説明を強制するタイプのものなので「必要なものにだけ説明をつける」ものでないこと、上書きする関係上実際にone
というsourceが存在しなければゴミが残ることに注意
まずcontent/sources/_index.md
を作成し、次のように記入する:
+++
title = "原作"
sort_by = "date"
template = "dummy.html"
page_template = "dummy.html"
+++
sort_by
とtemplate
, page_template
はどうせ使わないので適当なものを指定しておく。content/sources/one.md
を適当に記入し、templates/sources/single.html
を
{%- set page = get_page(path=[taxonomy.slug,"/",term.slug,".md"] | join) %}
{{ page.content | safe }}
とすれば内容が表示されるので、あとはterm
とかを使ってページを書いていけばいい
とりあえずこれで出来る
最初のCan we add…の「orphan pages」はtemplates/sources
以下に置いたただの静的mdファイルのことかもしれない。markdown
filterが使えるからload_data
で読んでから変換すればよい。ただこの方法だとshortcodesで出来ることが限られてしまう。実際にやってみたが、今回はmarkdown
filterの中でconfig.base_url
を参照しようとして失敗した
それでは