前回に引き続き、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のインストール
にそって作業します。
インストールはホームディレクトリ上にローカルに行なわれるので、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のインストール
にそって作業します。
git clone https://github.com/getzola/zola
cd zola
cargo build --release
このbuildは、必要なライブラリーをダウンロードしながら行われるため、なかなかな時間がかかります(ラズパイ4Bで30分くらい)。buildが終了すると target/release/zola にバイナリーが作られるので、このバイナリーをどこかパスが通った場所に置いて利用してください。
zolaをテーマadidoksで手っ取り早く使う
この手のツールに慣れるためには、まずはちゃんと動くデモサイトを自分の環境で作成することが先決です。その後、様子を見ながら、少しつづ中身を自分のニーズに合わせて変えていくのが近道でしょう。
以下の手続きでディレクトリ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”なしでも適当に処理していたようです。こうなった経緯についてはここのあたりでしょうか。
本番用のHTMLファイルをpublicディレクトリに生成する
zora serveで確認しながら、config.tomlやcontent内のmarkdownファイルなどを編集し終わったら、以下を実行してpublicディレクトリにHTMLファイルを生成しましょう。
cd adidoks <= adidoksディレクトリに移動
zola
生成されたファイルをrsync等でウェブサーバーに転送すれば、サイトをネット公開できます。
次回はadidoksをカスタマイズします
今回はzolaの一般的なインストールと利用方法の解説でした。前回のポストで予告したとおり、次回はついにzolaのテーマとの血みどろの戦い(?)が始まります。zolaの設定ファイル(config.toml)やテンプレートファイルの仕組み(base.htmlやmacros等)についても、そこで少し触れることになるでしょう。
コメント