nanoc 2.1.3 でページを作る

経緯

nanoc が 2.1 になって仕様がいくらか変わったのか、nanoc のコンパイルをするときに警告が出るようになった。 せっかくうまく使えるようになったのにドキュメントを読むのは面倒なのだが、変更された部分を見ると私が欲しかった機能が実装されたようだ。 それならば話は別で、はじめからサイトを作ってみて、新しいバージョンになれることにした。

以下の文書は、Ubuntu 8.04 で実行されたもので、nanoc は rubygems でインストールされたバージョン 2.1.3 を使っています。

nanoc とは

nanoc は、Ruby で書かれた CMS (content management system) の一種。 CMS といって思い浮かぶ wiki や blog は、サーバで動かすものなのだが、nanoc は自分の PC で使用する。 nanoc では、本文や設定の書いたファイルを作り、それをコンパイルしてブラウザが解釈する HTML を作り出す。 基礎知識がほとんどない人でも簡単にページを作成できるわけではなく、HTML や CSS についての知識は必要だろう。

HTML を Emacs などで編集してページを作っていると、 ページのレイアウトは本文とは切り離したいとか、 ほぼ同じ内容なのだけれどもページによってある規則で一部を変更したい部分があったりする。 レイアウトについては、nanoc の仕様が本文とレイアウトを切り離すようになっている。 また、ある規則を適用したい場合は、nanoc のコンパイルをするときに Ruby を使って HTML の内容を変えることができる。 他の nanoc の利点としては、サーバの条件(CGI が動かせるなど)は何もないということだろう。 コンパイルをして HTML を作った後は、ただの HTML をサーバにアップするだけだから。

サイトの設定

ディレクトリを作成

nanoc create_site site_dir

でサイトを作り、できたディレクトリにある config.yaml で設定する。 site_dir は自分の好きな名前にする。

config.yaml

デフォルトでは

output_dir:  "output"
data_source: "filesystem"
router:      "default"

のようになっていた。このままでは、hoo.html を作りたくても

nanoc create_page hoo

とすると hoo/index.html になってしまう。 これを回避するには router の項目を “no_dirs” とすればよいようだ。 また、output ディレクトリにコンパイルされたファイルが作成されるのだが、 出力先を変更したければ output_dir の項目を変える。 私は、

output_dir:  "output"
data_source: "filesystem"
router:      "no_dirs"

のように設定した。

コンパイルとページの追加

まず、コンパイル

上の「ディレクトリの作成」で、作られた site_dir に cd で移動し、

 nanoc compile

とする。output に html ファイルがコンパイルで作られている。

ページの追加

nanoc create_page page_name

とすれば、page_name.html に対応する nanoc のファイルが content ディレクトリに作られる (router に no_dirs を設定し、後はデフォルトの場合には)。 ページをディレクトリのしたに作りたければ、

nanoc create_page dir/page_name

のようにする。

Tags of current page

, ,