/ 最近 .rdf 追記 編集 設定 本棚

脳log[20071229] image.rbの引数っておかしいよね



2007年12月29日 (土)

[tDiary] image.rbの引数っておかしいよね

最近ちょこちょこ日記に画像を貼ったりアップロードしたファイルにリンクを張ったりしてたのは image.rbに代えて、image.rbを手直ししたプラグインを試してたから。

 ここがヘンだよ、image.rb

 パラメータの扱い

プラグインの仕様はこう↓。

image( number, 'altword', thumbnail, size, place )

大小二枚の画像をアップロードし、サムネイルの下の「本文に追加」ボタンを押すとそれぞれ下のようなテキストが日記本文に追加される。('オリジナル'、'サムネイル'の部分は自分で書き換えました)

{{image 0, 'オリジナル', nil, [500,500]}}
{{image 1, 'サムネイル', nil, [50,50]}}

画像1(サムネイル)を <img>要素として日記中に埋め込み、それをクリックすると 画像0(オリジナル)が表示されるようにしたいとする。その場合のプラグイン呼び出しの記述は下のようになる。

{{image 0, '画像の説明。(クリックで拡大画像)', 1, [50,50]}}

「本文に追加」ボタンで挿入されるどちらのテキストからも遠い。加えて第一パラメータの意味が第三パラメータの有無によって変わるところがユーザーを大混乱に陥れる。自分なんてたまにしか画像をアップロードしないから毎回だまされる。

 SVGも画像ファイルだよ

SVGファイルをアップロードしようとしても拒否された。埋め込みはできなくてもアップロードとリンクくらいはしたかったし、ルールを追加することで SVGでも FLVでも適切に日記中に埋め込めるようにできるのが理想。

 ファイル名

べつにヘンじゃないけど、20071229_0.jpg のような名前というより IDのようなものではなく、ローカルでのファイル名を維持したいな、と思う。

 オレ仕様の image.rb (メソッド名は imageから fileになっている)

file( 'filename' )
 #=> <a href="fileurl">filename</a>
file( 'displaytext', :href=>'filename' )
 #=> <a href="fileurl">displaytext</a>
file( 'imagename', :href=>'filename' )
 #=> <a href="fileurl"><img src="imageurl"></a>
file( 'imagename', :title=>'altword', :size=>[50,50], :type=>'photo' )
 #=> <img src="imageurl" title="altowrd" alt="altword" width="50" height="50" class="photo">
file( 'thumbnail', :title=>'altword', :href=>'number', :size=>size, :type=>'photo' )
 #=> image( number, 'altword', thumbnail, size ) と同じ

(シンタックスハイライト機能が欲しい……*。なんて読みにくいんだ)

「本文に追加」ボタンを押すと四番目のものが本文に追加されるのでそこに :href=>'number'を付け加えるだけでリンク付きのサムネイル画像を日記に埋め込める。パラメータを入れ替えたりしなくてもよい。

第一引数はいつだって日記中に埋め込まれるテキストや画像のことだし、その他の引数はすべてオプションで、第一引数の付加情報(リンク先、代替テキスト、大きさなど)になっている。

 関連して

skel/preview.rhtml に <%%=form_proc( @date )%> を追加してプレビュー後でもファイルをアップロードできるようにし、アップロードするときには書きかけの本文が消えることの確認を表示してキャンセルもできるようにした。(そうしたら本文をクリップボードにコピーしてからアップロードできるし)

また、form_procで表示される縮小画像に自身へのリンクを(target="_blank"で)持たせた。縮小表示されてる画像を別窓で本来のサイズで表示するだけだけど割と便利。

 image.rbのしがらみを発見

http://www.tdiary.org/archive/devel/threads.html#00718

互換性や image.rbを利用する他のプラグインとのからみで使いにくくなってるのかぁ、と思ったがどうも違う。第三引数(thumbnail)は新しく追加されたもののようだ。サムネイルの議論をしてたからって第三引数の名前を thumbnailにしちゃったのが悲劇の始まり。link_toにしておけば第一引数の意味を変えなくて済んだのに。

* 付けた。http://vvvvvv.sakura.ne.jp/ds14050/diary/20071230.html#p01