あとで書く。
Hamlr
Ruby でブログツールを作ってます。
Hamlr っていいます。
よろしく願いします。
発音は「ハムラー」ですかね。
はじめ、Hamblr にするか迷いました。
ソース
おなじみ GitHub で開発してます。
http://github.com/jugyo/hamlr/tree/master
特徴
特徴をざっと並べてみました。
- Haml
- Sass
- Textile
- Sinatra
- DataMapper
- SQLite
- プラグインシステム
- テーマの切り替え
まあ、そんな感じです。
簡単に動かせて簡単に変更できるブログツールを目指してます。
僕 Haml 大好きなんですね。Sass も好きです。
みんなも HTML やめて Haml を使うといいと思います。
「プラグインシステム」と「テーマの切り替え」に関してはまだいろいろ思考錯誤しながら作ってる段階です。
依存関係
以下のライブラリが必要です。
- sinatra
- haml
- dm-core
- do_sqlite3
- RedCloth
すべて gem でインストールできます。
sudo gem install sinatra haml dm-core do_sqlite3 RedCloth
動かし方
スタンドアロンで動かす
WEBrick とか mongrel なんかで動かすには以下を実行します。
./app.rb
デフォルトのポートが 4567 だと思うので、以下からアクセスできるはずです。
mod_rails で動かす
mod_rails で動かすには以下のような設定を apache の設定ファイル(httpd.conf 等)に書きます。
<VirtualHost *:80>
ServerName your.domain.com
DocumentRoot /xxx/xxx/hamlr/public
</VirtualHost>
設定を書いたら apache を再起動する必要があると思います。
あと、動かしてる最中に変更を加えた場合は tmp/restart.txt というファイルを touch することで、mod_rails がアプリケーションを起動し直してくれるみたいです。
つまり apache を再起動する必要がない!
See Also: Phusion Passenger users guide #4.4. Redeploying (restarting the Rack application)
設定
動かす前に設定ファイルを編集して基本的な設定しておく必要があります。
「setting.yml」という YAML ファイルが設定ファイルになります。
内容は以下のような感じになっています。
environment: production
user_id: test
password: test
blog_title: blog title
par_page: 10
theme: default
plugins:
- sample
だいたいわかりますよね。
ディレクトリ構成
以下のようなディレクトリ構成になっています。
hamlr
|-- README.rdoc
|-- app.rb
|-- config.ru
|-- models.rb
|-- plugins # プラグインを置くところ
| `-- sample.rb
|-- public
|-- setting.yml
`-- themes # テーマを置くところ
`-- default
plugins ディレクトリにプラグインファイルを設置して setting.yml の plugins: のところにプラグイン名(ファイル名から .rb を取り除いたもの)を追加することでプラグインが読み込めるようになっています。
ただ、今のところプラグインでどういうことをやるか(どういうことができればいいか)が全く想定できていません。
とりあえずプラグイン機能を付けてみたといった感じです。
themes ディレクトリには現在 default という名前のテーマだけが置かれています。
setting.yml の theme: の所に使用するテーマの名前(ディレクトリ名)を書いておくとそれが使われます。
デフォルトのテーマをコピーしていろいろいじれば独自のテーマが作れると思います。
テーマの中身は以下のようになっています。
hamlr/themes
`-- default
|-- entries.haml
|-- entry
| |-- entry.haml
| |-- form.haml
| `-- new.haml
|-- layout.haml
|-- login.haml
|-- search.haml
`-- styles.sass
デモ
以下で実際に動かしてます。
mod_rails 上で動いてます。
課題
- テストを書く
- タグ付け機能を実装する
- コメント機能を実装する
