Zolaでテーマを適用する
ちょっと苦労した。
参考
手順
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