zolaで単一ページを作る
index.html
を作ったら、次にやってみること。ここではabout
ページを追加してみる。
成果物
前提
- Zola 0.14.0 をビルドする(静的サイトジェネレータ)
- zolaを使ってサイトを構築してみる(zola init)
- Zolaのconfig.tomlを設定する
- Zola template/index.html を書く
トップページが表示できたところまでやっておく。
流れ
単一ページをつくるには2つの方法がある。簡単なほうからやっていく。
場所とファイル
各ディレクトリに各ファイルをつくる。
ディレクトリ | 拡張子 |
---|---|
templates/ |
html |
content/ |
md |
方法1. {page}.md
を作る
page.html
を追加する{page}.md
を追加する
方法2. {section}.index.md
を作る
page.html
を追加する{section}/index.md
を追加する
やってみる
about
ページをつくる。
zola init $SITE_ROOT
したときのディレクトリへ移動する。
1. テンプレートをつくる
template/page.html
<html> <body> <h1>{{ page.title }}</h1> <p>{{ page.description }}</p> {{ page.content | safe }} </body> </html>
2. 内容をつくる
content/about.md
なお、ファイルはcontent/about/index.md
でもよい。
+++ title = "タイトルA" description = "説明です。" +++ # 見出しA 本文A。 # 見出しB 本文B。
3. zola serve
- 端末で
$SITE_ROOT
へ移動する zola serve
する- ブラウザで
http://127.0.0.1:1111/
へアクセスする - ただしく表示されていることを確認する
4. zola build
- 端末で
$SITE_ROOT
へ移動する zola build
するpublic/
配下にabout/index.html
が作成される
<html> <body> <h1>タイトルA</h1> <p>説明です。</p> <h1>見出しA</h1> <p>本文A。</p> <h1>見出しB</h1> <p>本文B。</p> </body> </html>
どちらの方法にすべきか?
- 方法1.
{page}.md
を作る - 方法2.
{section}.index.md
を作る
方法2をおすすめする。
- 画像などの別ファイルが必要になったとき、すぐに配置できる
public/
に出力されるのと同じ構成である(混乱を避けられる)
デメリットとしては面倒くさいことが挙げられる。
所感
簡単だった。
あとはteraの構文、変数、config.tomlなどと連携すれば、もっと複雑なものがつくれるだろう。とりあえず以下サイトあたりを参考にすればよい。
- https://tera.netlify.app/docs/#templates
- https://www.getzola.org/documentation/content/page/#front-matter
- https://www.getzola.org/documentation/templates/pages-sections/#page-variables
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- zola 0.14.0
$ uname -a Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux