このノートの書き方
このノートはmarkdownで書いてgitで管理しています。 markdownドキュメントの自動コンパイルはgit hookと mdbook で自動コンパイルしています。
ここでは私の環境構築手順をメモとして残します。
mdbookのインストール
mdbookはRust
で書かれています。
mdbookをインストールする前に,Rust
のパッケージ管理ツールである
Cargo
をインストールします。
Cargo
はRust
のインストーラに含まれて居ますので,
Rustのインストール手順
に従ってインストールします。
Rust
とCargo
をインストールしたら,
以下のコマンドでmdbook
をインストールします。
$ cargo install mdbook
gitレポジトリの準備
まずgitレポジトリを準備します。
このノートではgit.example.com:/home/panda/repositories/mybook
に
レポジトリがあると想定します。
最初にレポジトリの初期化をします。
git.example.com
にログインして以下のコマンドで
レポジトリの初期化をします。
$ mkdir -p /home/panda/repositories/mybook
$ cd /home/panda/repositories/mybook
$ git init --bare
次に,レポジトリにコンテンツの変更をpushしたときに
HTMLを自動生成するために,hookを設定します。
レポジトリ内の./hooks/post-update
を以下の通り編集します。
## Only master branch is the target
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
if [ "$BRANCH" != "master" ];
then
echo "Only effective for master branch, but current branch was $BRANCH."
exit
fi
unset GIT_DIR
git -C /var/www/mybook pull
cd /var/www/mybook
mdbook build
exit 0
ファイルの編集後,パーミッションを変更し,実行権限を与えます。
$ chmod 0755 hooks/post-update
HTTPサーバのドキュメントルートの設定
自動生成されるHTMLファイルを公開するHTTPサーバのドキュメントルートを
設定します。
ここでは
/var/www/mybook
をレポジトリをcloneする作業用ディレクトリとし,
/var/www/mybook/book
にHTMLファイルを生成します。
つまり,/var/www/mybook/book
をドキュメントルートに設定します。 root.
以下のコマンドで,作業用ディレクトリにレポジトリをコピーして,
上述のhookによりHTMLファイルの自動生成ができるようにします。
ここでの注意点は/var/www
に適切なパーミッションを設定することです.
$ cd /var/www
$ git clone /home/panda/repositories/mybook mybook
初期コンテンツの追加
これで設定はほぼ完了です。 コンテンツを追加編集するには, 作業用のマシンでレポジトリ(book)を初期化し,markdownのソースファイルを追加します. 以下のコマンドで初期ファイルを追加できます。
$ git clone ssh://git.example.com/home/panda/repositories/mybook mybook
$ cd mybook
$ mdbook init
$ git add .
$ git commit -m "First commit"
$ git push -u origin master
あとはコンテンツを追加・編集して自由にbookをカスタマイズできます。