ちょっと苦労した。
参考
手順
1. テーマを入手する
git clone https://github.com/dave-tucker/zola-clean-blog
2. テーマを配置する
zola initしたプロジェクトを作成する- プロジェクト配下の
themesディレクトリ配下に、先程入手したテーマのリポジトリをまるごと配置する - テーマから
templates,static,sass,contentディレクトリをコピーする - プロジェクト配下のそれらを上書きする
3. 設定ファイルを作る
# The URL the site will be built for
base_url = "https://example.com"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = true
generate_rss = true
title = "テスト用ブログ"
description = "これはテスト用ブログです。"
# テーマ
theme = "zola-clean-blog"
taxonomies = [
{name = "categories", rss = true, paginate_by=5},
{name = "tags", rss = true, paginate_by=5},
]
[extra]
# Put all your custom variables here
author = "Dave"
clean_blog_menu = [
{url = "$BASE_URL", name = "Home"},
{url = "$BASE_URL/about", name = "About"},
{url = "$BASE_URL/contact", name = "Contact"}
]
clean_blog_social = [
{url = "https://twitter.com", icon="fab fa-twitter"},
{url = "$BASE_URL/rss.xml", icon="fas fa-rss"}
]
エラーメッセージ、テーマ内のconfig.toml、themes/clean-blogをみて、config.tomlをマージした。
3. 表示する
- カレントディレクトリをプロジェクトにする
zola serveする- ブラウザで
http://127.0.0.1:1111/を参照する

所感
設定ファイルのことがわからず、エラーを食らった。
zola theme install ...とかで自動的にうまいこと設定ファイルごと処理して欲しかった。でもそんなコマンドはない。再配置とか設定ファイルとか面倒だろ。これ手作業じゃん……。
テーマ
良いテーマは以下。
以下のような点があって素晴らしい。あとは日本語&英語が混在してAND,OR検索できれば最高だった。できればブログ全体の記事数、文字数、PV数などの集計ページも欲しい。
- 検索ボックスがある(英語限定)
- 背景黒にできる
- marmaid.jsでフローチャートが書ける
- シンタックスハイライトできる
- 記事ごとに以下が表示される
- 文字数、読む時間
- カテゴリ、タグ
- RSS, GitHubのアイコンとリンクが出る
ブログ内検索ボックス
ブログ内を検索するとき、大抵はGoogleを使う。だが、これはオンラインである必要がある。しかもGoogleに依存している。
これをローカルだけで動作するようにしたい。するとJavaScriptで実装することになる。専用ライブラリがいくつかあるらしい。
- 検索
- lunr.js
- elasticlunr.js
- 曖昧検索
- Fuse.js
ただ、自前でトークナイザを作成せねばならない。Nグラムとかのアルゴリズムを用いて。このへんはかつてSQLite3の全文検索でもやったが、誰かが作ったのをコピペして動作確認しただけ。今回もそれを調査してコピペ実装してみたい。
だが、超大変そう。なので、できればすでに誰かがthemeとして作成済みのものを導入するだけで使えるのがいい。これから探してみよう。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 5.4.72-v7l+ #1356 SMP Thu Oct 22 13:57:51 BST 2020 armv7l GNU/Linux