Zolaで多言語・SEO対応ブログ・ドキュメントサイトを始めました (2/3)

前回に引き続き、zolaを使って、多言語・SEO対応のウェブサイトを構築した話を続けます。

前回のポストでは、なぜzolaでサイト構築することになったのか、などを説明しました。

今回はzolaをインストールして、ウェブサイトとして一通り機能させるまでを解説します。

基本事項として、まずhugoやzolaのようなツールは静的サイトジェネレータと呼ばれるジャンルのツールです。ユーザーはテキストファイル(markdown形式)や画像ファイルを配置したディレクトリーツリーを作り、zolaを実行。zolaはそれらのファイルをもとに必要なhtmlやcssファイルをpublicディレクトリに出力します。出力されたhtmlファイルをウェブサーバーにアップロードすれば、サイトをネットに公開できます。

wordpressの場合はウェブサーバーにアクセスがあるたびwordpressのphpプログラムが実行され、必要なhtmlファイルを動的に生成する仕組みです。それとは異なり、hugoやzolaで作ったサイトでは、ウェブサーバーは事前に準備されたhtmlやイメージファイルを必要に応じてばらまくだけです。PHP実行などのオーバーヘッドがないため動作が高速で、ウェブサーバーに負担もかからないという利点があります。

hugoやzolaのhtmlファイル生成は、テンプレートファイルの集まりで決定されます。これらを入れ替えることで、サイトの出来上がりの見た目や機能を調整できます。これがつまりhugoやzolaの“テーマ”の仕組みです。

zolaのインストール(の前にrustのインストール)

zolaが既にインストールされている場合は、この章を読み飛ばしてください。この場合rustのインストールも必要ありません。

zolaはrust製ツールで、zolaをインストールする場合には、まずrustをインストールする必要があります。Linuxであればapt等でrustをインストールできるかもしれませんが、バージョンが古いとzolaがbuildできなかったりするので、rustも最新版を手動でインストールしてしまいましょう。割と簡単にインストールできます。

なお今回はラズパイ4BのRaspberry PI OS (debian) 10で作業しました。ひと世代前のOSですが、最新のrustとzolaを問題なくインストールできました。

rustのインストール

Rust をインストール
効率的で信頼性のあるソフトウェアを書く力を与える言語

にそって作業します。

インストールはホームディレクトリ上にローカルに行なわれるので、sudoは必要ありません。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh <= シェルスクリプトをネットから読み取って直接実行

...

1) Proceed with installation (default)
2) Customize installation
3) Cancel installation

と3つの選択肢が表示されますので、普通は1で進めばよいでしょう。この場合~/.profileや~/.bashrc等の設定ファイルのPATH設定が自動的に書き換えられると思います。私は2を選んで、手動で ~/.cargo/binにパスを通しました。なおこのrustのインストールは数分であっさり終わります。

~/.bashrc等のPATHの設定を書き換えた後は

exec bash

して設定ファイルの変更を反映させましょう。

zolaのインストール

Installation | Zola
Everything you need to make a static site engine in one binary.

にそって作業します。

git clone https://github.com/getzola/zola
cd zola
cargo build --release

このbuildは、必要なライブラリーをダウンロードしながら行われるため、なかなかな時間がかかります(ラズパイ4Bで30分くらい)。buildが終了すると target/release/zola にバイナリーが作られるので、このバイナリーをどこかパスが通った場所に置いて利用してください。

zolaをテーマadidoksで手っ取り早く使う

この手のツールに慣れるためには、まずはちゃんと動くデモサイトを自分の環境で作成することが先決です。その後、様子を見ながら、少しつづ中身を自分のニーズに合わせて変えていくのが近道でしょう。

AdiDoks
AdiDoks is a Zola theme helping you build modern documentation websites, which is a port of the Hugo theme Doks for Zola...

以下の手続きでディレクトリadidoksに、上のサイトと同じように動くadidoks(zolaのテーマ名)を簡単に用意できます。

git clone https://github.com/aaranxu/adidoks.git
cd adidoks
zola serve --fast <= 編集内容確認用の臨時ウェブサーバーを起動

もっとまじめにやりたい人は、zola init sampleして、sample/themesディレクトリに移動。git clone でテーマをインストールする、といったhugoと同じような手続きをとることもできます。詳しくはadidoksのドキュメントを参照ください。

zola serve –-fast で出来上がりをプレビューしながら、markdownを編集する

zola serve --fast

で臨時のウェブサーバーが起動し、ブラウザで次のアドレスにアクセスすれば、構築中のサイトをプレビューできます。

https://127.0.0.1:1111 

この状態でcontentディレクトリ内部のmarkdownファイルを編集すると、リアルタイムでブラウザ上に反映されます。プレビューで確認しながらmarkdownを編集でき、とても便利です。

“–-fast”オプションは大事

zola serveの”–-fast”オプションについてはあまり記述がありませんが、大事なオプションです。これをつけないと、markdownファイルを更新したとき、zolaはすべての変更を完璧に再計算してしまうため、数秒単位の処理がzolaに発生してしまいます。一方”–-fast”オプションがある場合は、できあがりを確認できる程度の計算を適当にやってくれるようで、更新は数msレベルで済みます。通常はこちらのほうがストレスなく作業できるでしょう。

ちなみに昔のzola serveは”–-fast”なしでも適当に処理していたようです。こうなった経緯についてはここのあたりでしょうか。

Z12 Performance Of Serve Content Changes
Now we’ve been able to migrate our site to a working V12 (subject to 12.1 fixes) we’ve been using it as part of our cont...
Caching issue when auto-rebuilding changes in zola serve · Issue #757 · getzola/zola
Presumed caching issue with get_section() content in zola serve Environment Linux Mint Zola version: 0.8.0 Expected Beha...

本番用のHTMLファイルをpublicディレクトリに生成する

zora serveで確認しながら、config.tomlやcontent内のmarkdownファイルなどを編集し終わったら、以下を実行してpublicディレクトリにHTMLファイルを生成しましょう。

cd adidoks <= adidoksディレクトリに移動
zola

生成されたファイルをrsync等でウェブサーバーに転送すれば、サイトをネット公開できます。

次回はadidoksをカスタマイズします

今回はzolaの一般的なインストールと利用方法の解説でした。前回のポストで予告したとおり、次回はついにzolaのテーマとの血みどろの戦い(?)が始まります。zolaの設定ファイル(config.toml)やテンプレートファイルの仕組み(base.htmlやmacros等)についても、そこで少し触れることになるでしょう。

コメント

タイトルとURLをコピーしました