日記
postdiary.rbで回り込みを使いたい (06:02)Edit

postdiary.rbでの写真投稿はimage_rightで受けるようにしているんだけど、よく考えたら、

本文+\n+imgタグ

という形式で投稿されちゃうんで、せっかくimage_rightしていても本文が回り込んでくれない。かといって、

imgタグ+\n+本文

にしちゃうと、俺の場合は本文にセクションタイトル要素を書いているんで、それが写真の後ろに来てしまう。というのがいやだったんで、postdiary.rbを、

-  @body = "#{@body.sub( /\n+\z/, '' )}\n#{img_src}"
+  @body = @body.split(/\n/).insert(1, img_src).join("\n")
+  @body = "#{@body.sub( /\n+\z/, '' )}\n"

に変えてみた。要は、本文の1行目をセクションタイトルと見なし、2行目にimgタグを挿入し、その後ろの残りの本文をくっつける。という改造をしてからふと思いついたけど、本当はSubjectを使って、

'!"+subject+"\n"+imgタグ+\n+本文

を投稿するようにした方がいいような気がしてきた(Wikiスタイルの場合)。メール投稿のsubjectは、日付のタイトル扱いではなくセクションタイトル扱いの方が似つかわしい気がする。

subjectを使うようにしてみた

最初にsubjectを見て、subjectがあったら@bodyの頭に(Wikiスタイルの)セクションタイトルの形式で追加。んでもって、imageがあったら、それは@bodyの2行目に挿入。(日付の)タイトルは送らない。というアプローチ。下はpostdiary.rb(Revision: 1.1)との差分。Wikiスタイル+カテゴリ使用の人じゃないとそのままじゃ使えないと思う。

153a154,160
>       title = ''
>       if /^Subject:(.*)$/ =~ head then
>               title = $1.strip
>               title = NKF::nkf('-eXd', title)
>               @body = "! [moblog]#{title}\n#{@body}"
>       end
>
160c167,168
<               @body = "#{@body.sub( /\n+\z/, '' )}\n#{img_src}"
---
>               @body = @body.split(/\n/).insert(1, img_src).join("\n")
>               @body = "#{@body.sub(/\n+\z/, '')}"
183,187d190
<       title = ''
<       if /^Subject:(.*)$/ =~ head then
<               title = $1.strip
<       end
<
190c193
<       data = "title=#{CGI::escape NKF::nkf( '-eXd', title )}"
---
>       data = "title="

Published At2004-08-18 00:00Updated At2004-08-18 00:00