BikiBikiBobのチュートリアル

最もミニマリストなCMSの導入と運用

インストールと運用

BikiBikiBobのインストール方法と簡単な運用方法を説明します。

前提条件

UNIX系のOS(Linux、MacOS、FreeBSD、Solarisなど)の上で任意のWebサーバ(Apache、Nginxなど)を運用していて、Python3が利用可能であることを前提とします。Pythonのバージョンは3.8以上が必要です。その他に必要なモジュールやライブラリはありません。

ダウンロード

以下のコマンドを実行して、BikiBikiBobのプログラムとデータをダウンロードしてください。gitコマンドがインストールされていない場合、公開リポジトリのWebページからダウンロードしてください。

$ git clone https://github.com/estraier/bikibikibob.git

インストール

BikiBikiBobの本体は単一のコマンド "bbb_generate.py" だけです。これをコマンド実行パスの通った場所に置いてください。例えば "/usr/local/bin" に入れるには以下のようにします。

$ cd bikibikibob
$ sudo cp bbb_generate.py /usr/local/bin

ルート権限がなければ自分のホームディレクトリの下のどこかに置いても構いませんし、リポジトリの中にあるファイルをそのまま実行しても構いません。

Webサーバの運用

任意のWebサーバを動かしておいてください。例えば、ブログサイトの公開用のファイルを "/home/mikio/public/bikibikibob/myblog" の中に置くことにしましょう。そこに置いたHTMLファイルやXHTMLファイルが適切に公開されることを確認してください。

記事の準備

例えば、運用するサイトの入力データを "/home/mikio/myblog/input" の中に置くことにしましょう。そのディレクトリを作った上で、ダウンロードしたリポジトリにある "input" ディレクトリの中身をそこにコピーしてください。

$ mkdir -p /home/mikio/myblog/input
$ cp input/* /home/mikio/myblog/input

設定ファイル

先ほど作成した入力ディレクトリの中にある、"bbb.conf" を編集します。デフォルトでは以下のような内容になっています。

input_dir: .
output_dir: /home/mikio/public/bikibikibob/myblog
script_file: bbb.js
style_file: bbb.css
site_url: https://dbmx.net/bikibikibob/myblog/
title: My Blog
subtitle: loving coffee and bicycles
language: en
extra_meta: author|Mikio Hirabayashi
extra_meta: keywords|coffee, bycycle
extra_meta: robots|all
step_order: date

少なくとも、"output_dir" と "site_url" は運用するサイトに合わせて書き換える必要があります。パスの指定は "bbb.conf" のあるディレクトリからの相対パスとして指定しても良いし、ルートディレクトリからの絶対パスで指定しても良いです。

ジェネレータの実行

以下のコマンドを動かしてください。記事ファイルがHTMLファイルに変換されます。

$ bbb_generate.py --conf /home/mikio/myblog/input/bbb.conf

入力ディレクトリにあって拡張子が ".art" である全てのファイルは、記事ファイルとして扱われます。それらはHTMLに変換されて、出力ディレクトリに保存されます。

"/home/mikio/public/bikibikibob/myblog" にHTMLファイルが生成されていることを確認してください。そして、そこにある "index.xhtml" にWebブラウザでアクセスしてください。

"/home/mikio/myblog/input" の中に拡張子が ".art" のファイルを追加すると、それは新たな記事として扱われます。試しに、以下のような内容のファイルを書いて、"sample-1.art" という名前で保存してください。書式の詳細については記事の書式をご覧ください。

@title サンプル1
@date 2024/05/25

これは[*サンプル*]です。

新しい記事ファイルを追加したり、既存の記事ファイルを編集したりした場合、ジェネレータを再実行してHTMLを再生成してください。

$ bbb_generate.py --conf /home/mikio/myblog/input/bbb.conf

トップページの新着記事のリストに新しい記事が反映されたことを確認してください。

新しい記事は以下のように表示されるはずです。この要領で新しい記事を追加したり既存の記事を修正したりしていきます。

ジェネレータを実行すると、出力ディレクトリにある拡張子が ".xhtml" で、かつ '<meta name="generator" content="BikiBikiBob"/>' という行を含むファイルは削除されます。"bbb.css" と "bbb.js" は設定ファイルに書いたファイルの内容に上書きされます。それ以外のファイルはそのまま維持されます。そして、入力ディレクトリにある全ての記事ファイルに対応するHTMLファイルが再生成されます。

なお、"--conf" オプションを指定しない場合、カレントディレクトリの "bbb.conf" を設定ファイルとして使おうとしますので、入力ディレクトリの中で作業する際には "--conf" オプションを省略できます。

$ cd /home/mikio/myblog/input
$ bbb_generate.py

記事の編集作業中に特定の記事ファイルに対応するHTMLファイルだけを更新したい場合、以下のように記事ファイルの名前を指定します。拡張子はつけてもつけなくても良いです。複数の記事を指定することもできます。

$ bbb_generate.py sample1

記事名を指定してジェネレータを実行すると、それ以外の記事は更新されず、また索引や記事間のハイパーリンクにも反映されません。したがって、記事の編集作業が終わったら、記事名を指定せずにジェネレータを実行して、サイト全体を更新すべきです。

$ bbb_generate.py

記事名を指定してジェネレータを実行している間は、新しい記事は他の記事からは見えないことになります。よって、この特性がドラフト機能の代わりになります。執筆中のプレビューのためのHTML生成は記事名を指定して行うと良いでしょう。記事を一時的に見えなくするには、@titleや@dateを消すか適当にコメントアウトするかしてからジェネレータを実行すれば良いでしょう。

不要な記事ファイルはrmコマンドで消せば良いです。次回のジェネレータの実行時に対応するHTMLファイルも消えます。ファイル名やタイトルを変更するのも任意に行って構いませんが、他の記事からリンクが貼られている場合にはリンク切れが起こる可能性があります。リンク切れが起きた場合にはジェネレータの実行時に警告が出るので、それを見て適宜対処してください。

カスタマイズ

スタイルシートとして読み込まれる "bbb.css" を書き換えれば、サイトの見栄えを簡単に変更できます。また、JavaScriptのコードとして読み込まれる "bbb.js" を書き得れば、動的なUIの挙動も変更できます。それらのファイルはジェネレータを実行した際に入力ディレクトリから出力ディレクトリに毎回コピーされるので、変更は入力ディレクトリにあるものに対して行ってください。

シェア機能やコメント機能や検索機能などの進んだカスタマイズについては、カスタマイズの記事をご覧ください。

ブラウザ上でデータのアップロードや記事の編集やサイトの更新を行う機能については、ブラウザでファイル管理の記事をご覧ください。

チュートリアル インストール
comments
----
name:
text: