mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

nanoc - ブログ用ヘルパーを使用!

[ ブログ ] [ Ruby, nanoc ]

こんばんは。

nanoc に標準で準備されているヘルパーを使用することで、 nanoc で容易にブログサイトを構築することができます。

当方と同じ Ruby City MATSUE の方の次の資料が大変参考になりました。

0. 前提条件

  • Linux Mint 14 Nadia (64bit) での作業を想定。
  • nanoc 3.4.3 を使用。
  • Ruby 1.9.3-p362 を使用。

環境は多少異なっても以下の作業にさほど影響しないと思う。(Windows なら文字コード関連で調整が必要になるかも?)

1. 使用するヘルパー

nanoc サイトをブログサイトにするには以下のヘルパーを使用する。

  1. Blogging Helper
    ブログサイトを構築するのに役立つ機能。
  2. Rendering Helper
    レイアウトを部分テンプレートとして描画する機能。
  3. LinkTo Helper
    リンク生成の機能。

2. ヘルパーのインクルード設定

前述の3つのヘルパーを使用するために、lib/default.rb にインクルードする設定を記述する。

lib/default.rb
1
2
3
include Nanoc3::Helpers::Blogging
include Nanoc3::Helpers::Rendering
include Nanoc3::Helpers::LinkTo

lib ディレクトリ配下にあるファイルは全て読み込まれるので、必ずしも lib/default.rb でなくてもよい。
当方は、今のところインクルードするものだけを lib/default.rb に記述するようにしている。

3. ページ作成

テスト用にページを作成する。

1
2
3
$ nanoc create_item test-post
      create  content/test-post.html
An item has been created at /test-post/.

4. ページ編集

そのページがブログの記事であると認識できるようにするには、メタデータ部分に追加の記述をすることになっている。
最低限、kindarticle を、created_at に記事作成日時を Time.parse で処理可能なフォーマットで設定する。

content/test-post.html
1
2
3
4
5
6
7
---
kind: article
title: TEST [ Post ]
created_at: 2013/01/13 00:20:00
---

<h2>Hi, I'm a new item!</h2>

毎回編集するのが面倒なら、ページ作成時に自動で挿入されるようにすることも可能。(Rakefile を細工する)

4. 確認

コンパイルして作成される画面をブラウザで確認してみる。
URL は http://127.0.0.1:3000/test-post/ となる。

1
2
3
4
5
6
7
8
9
10
11
$ nanoc compile
Loading site data…
Compiling site…
      create  [0.00s]  output/test-post/index.html
      update  [0.00s]  output/index.html

Site compiled in 0.03s.
$ nanoc view
[2013-01-13 12:31:00] INFO  WEBrick 1.3.1
[2013-01-13 12:31:00] INFO  ruby 1.9.3 (2012-12-25) [x86_64-linux]
[2013-01-13 12:31:00] INFO  WEBrick::HTTPServer#start: pid=10419 port=3000

NANOC_1

見た目では分からないが、そのページがブログの記事として扱われる。
上記の例では、デザインをデフォルトからカスタマイズしている。(トップページと記事のページのレイアウトを振り分けるようにしたり、記事データをサブディレクトリ化したりもしている)
タイトルや投稿日時は <%= @item[:title] %><%= @item[:created_at] %> で取得できる。

5. 参考サイト


Ruby on Rails は使い慣れているので、ERB(<%= %> というような記述)が使えるのが嬉しいです。
但し、nanoc は汎用性が高い CMS なので、完全にブログシステムと利用できるようになるまでには時間がかかりそうです。
Ruby を知らない方には、敷居が高く感じられるかも知れませんね。

ちなみに、当記事執筆時点では nanoc によるブログは公開していません。
しかし、現在メインで公開しているブログを今後移行するのかも知れませんし、メインのブログとは別にサブ(もしくは、クローン)として今後公開するかも知れません。あしからず。

以上。

Comments