Zolaで遊ぶ

Rust製の静的サイトジェネレーターZola 個人用のフロントマター設定

Rust製の静的サイトジェネレーターZola 個人用のフロントマター設定

Rust製の静的サイトジェネレーターZolaの記事投稿でフロントマターに設定するデフォルトの個人用設定。

個人的なメモ書き。

Zolaのフロントマターは、TOML形式(+++)なので気をつける。

  • lastmod: updatedを空にするとエラーになるため、別途で設定する。
  • featured_image: アイキャッチ画像用に「static/images/」のフォルダ作成で、画像ファイルを指定する。
  • noindex: noindexを記述することで <meta name="robots" content="noindex,nofollow"> を表示させる。

フロントマター デフォルト個人用設定

Zolaの仕様により、記述の順番やダブルクォーテーションの有無などを間違えるとエラーが出るので注意する。

  • dateは[taxonomies]よりも上に記述する。
  • 公式サイトから、ドキュメントのPage(Front matterの項目)を参考にする。

Zolaの仕様でクリーンURLを採用しているため、pathに拡張子.htmlなどを設定すると、へんてこりんなURLがビルドされてしまうので避ける。

※.html拡張子などを使う場合は、Hugoのほうが扱いやすい。

以下、個人用にフロントマターで使うデフォルト設定

+++
title = ""
description = ""
date = yyyy-mm-ddT00:00:00+09:00

path = "posts/xxxxx"
weight = 0
draft = false

aliases = []
in_search_index = true
template = "page.html"

[taxonomies]
categories = [""]
tags = ["",""]

[extra]
lastmod = ""
featured_image = ""
noindex = ""
+++

更新のupdatedを使う場合は、仕様でFeedsにも適用されるが、いちいち入力が必要。(dateの下へ使いやすいように空白を用意)

例)updated = 2020-01-01T00:00:00+09:00

aliasesを使うときは、""で囲む。(ダブルクォーテーション)

例)aliases = ["posts/example.html"]

条件分岐について

必要に応じて、フロントマターの[extra]へ個人的に設定した条件分岐を反映させるためにテンプレートへ導入する。

更新日を表示させる条件分岐(lastmod)

{{ page.date | date(format="%Y-%m-%d") }}{% if page.extra.lastmod %} (更新日: {{ page.extra.lastmod | date(format="%Y-%m-%d") }}){% endif %}

アイキャッチ用の画像を表示させる条件分岐(featured_image)

{% if page.extra.featured_image %}<div class="w-100"><img src="{{ config.base_url | safe }}/{{ page.extra.featured_image | safe }}" alt="{{ page.title }}"></div>{% else %}{% endif %}

noindex,nofollowを表示させる条件分岐(noindex)

{% if page.extra.noindex %}<meta name="robots" content="{{ page.extra.noindex }},nofollow">{% else %}{% endif %}

まとめ

フロントマターの設定項目は取捨選択する。

最低限は、タイトルと日付の2つ。

+++
title = "My first post"
date = 2019-11-27
+++

This is my first blog post.

via: Overview | Zola

Zola公式サイト: Zola

補足

dateに日時を使いたいとき(同日で複数の記事をソートできるように)

+++
title = "My first post"
date = 2019-11-27T22:00:00+09:00
+++

This is my first blog post.

フロントマターの設定項目が増えるとテンプレートやテーマの作成も複雑になるので、注意する。