ブログ始めました。
プログラミング関係とか、PC関係のメモはこちらに書く予定。
健やかに眠るための日記
軽い話題は今までどおり日記の方で。

lily

May, 14 2007 (Mon)

image るびまのlily でブログカスタマイズ を読んで、rubyでカスタマイズに惹かれて使ってみる事にした。。 *1

るびまの記事では、www.mikihoshi.com に有ることになっているが、 今は、 lily - シンプルなサイト構築システム というページに有る*2。 lilyバージョン1.0を開発中で、0.1.5は開発停止中らしい。

ruby の修行のためなので、開発停止でもいいやって事で0.1.5 を ベースにいじってみた。

カスタマイズ

flavour

デザインには自信無いので、やっつけ仕事。 しかし、CSS でレイアウトするのって、バッドノウハウの嵐だねぇ。 もうちょっと、直観的にレイアウト指定できるといいのに。

lilyは、bloxsomのruby 版という事で、 bloxsom のflavourが使える作りになっていたのだけど、 ruby でやるならテンプレートは rhtmlでしょって事で、 eRuby に書き換えてしまった。 おかげで、bloxsom の flavour はそのままでは使えない。

RDスタイル

RDで書きたかったので、RDスタイルを導入。 (Journal In Timeから頂きました。[ ここ ])

で、OKかと思ったんだけど、footnoteの部分が出てなかったので、 tDiary の RDStyle を参考にしてビジタークラスを作ってみた。

Ruby 1.8対応

cgi['key'][0] と書かれた箇所を、cgi.params['key'][0] に根こそぎ置換した。


*1日記も停滞してるしね
*2今頃数年前の記事を読んでるのがいかんのだが

lmdk の仕様

May, 14 2007 (Mon)

これは何か?

bloxsomのruby版であるlilyの改造版である。 lilyもどきを縮めて lmdkとうい事で。

機能

flavour で、表示をコントロールする。 plugin で、挙動をコントロールする。 tDiary のプラグインが簡単に移植出来るようにする。 style で、記述フォーマットを変更出来るようにする。 データのアップデートは他に任せる。 静的なファイルの書き出し。

基本仕様

設定ファイル

本体、及びプラグイン、フレーバー、スタイルの 初期設定情報。 tDiaryでは、web上で更新出来るようになっているが、 lmdkはrubyで好きなように設定出来ることが目標なので、 単純に初期設定ファイルに記述する仕様とする。 (誰かが、作ってくれると嬉しい…)

読込みパスの解析

フレーバーの決定 読み込むデータの決定 引数の例

@url = http://www.artif.org/lmdk.cgi
@path_info = /lily/plugin/categories.html/2007/05

形式は、

(/dir)*(/filename.flavour)(/yyyy)(/mm)(/dd)
  • dir --- ディレクトリ部分
  • filename --- 記事のファイル名(拡張子を除いた部分)
  • flavour --- 出力に使用するフレーバー名
  • yyyy mm dd --- 記事を絞り込む日付データ

出力対象の記事の決定

読込みパスの解析結果に従って、出力対象の記事を決定する

プラグインのロード

プラグインディレクトリ内に有る .rb ファイルを読込み (インスタンス eval)、そのファイルのベース名と 同じ関数を実行する。

contets-type 出力

現在のところ、html 形式と rss 形式の出力を実行する。

header 出力

フレーバーの head 部を、erubis で整形し出力する。

entry 出力

出力対象の記事毎に、以下の処理を実行する。

date 出力

フレーバーの date 部を、erubis で整形し出力する。

story 出力

対象記事を style で形式変換後、フレーバーの story 部を erubis で整形し出力する。

foot 出力

フレーバーの foot 部を、erubis で整形し出力する。

フレーバー

バラバラである必要は無いので、単体の rhtml ファイルとする。 但し、content-type は、コメントで埋め込む。

拡張子がフレーバー名というのはちょっと使いにくいしね。

<!--Start: head --> <!--End --> <!--Start: date --> <!--End --> <!--Start: story --> <!--End --> <!--Start: foot --> <!--End -->

の形式で、<!-- content-type: xxxxx --> の行から、 content-type を取得する事にする。

プラグイン

やはり、tDiary のプラグインが使えた方が便利。 ただ、あくまで個人がカスタマイズして使い倒すというのが 主眼なので、こだわらない方がいいかも。

スタイル

とりあえず、RDスタイルのみ対応予定

Artifpad

May, 14 2007 (Mon)

lilypad の自分版。 さすがに、ftp でメンテするのは面倒なので、subversion との合わせ技を狙ってみる。

何をするのか

svn上の最新版(lilymdk 本体と、ブログのデータ)を、 http://www.artif.org/ に反映する。 これでローカルでの修正を速やかにサーバーに反映出来る。 ついでに、バックアップにもなって一石二鳥。

操作手順

  1. ローカルでゴニョゴニョ
  2. svn でコミット
  3. Artifpad でサーバーの作業領域をアップデート

機能

  • 操作ページ
    • 更新ボタン
    • 更新結果表示
    • artif.org へのリンク
  • svnの内容を update するシェルスクリプト

そのうち実装するかもしれない機能

  • 更新内容が気にいらない時の戻し機能 subversion の機能を使えば簡単?
  • artifpad 上で指定記事を修正する機能 記事を投稿後にコミットするだけ

disp_image.rb

May, 14 2007 (Mon)

image tDiary の disp_image.rb のサブセット版。

右の写真は、image_|eft で表示している。

設定する変数

@imagedir
画像ファイルの保存ディレクトリ
@imageurl
画像ファイル保存ディレクトリのURL
@image_maxwidth
サイズ指定が無い場合で画像の横幅がこの値を 越える場合に、width に指定される値。 (要は、表示幅の最大値)

image 関数

imagefile
イメージファイル名
alt
alt に設定する文字列
thumbnail
サムネール
size
width に設定する値
place
右寄せか、左寄せか、デフォルトか。 img タグの class 指定に反映される。

amazon plugin

May, 14 2007 (Mon)

Amazon を利用して、書籍データを表示する。 書籍のデータは、前もって get_amazon_xml.rb を使用して 取得しておくものとする。

#本のデータベースを作りたいという気もあるので…