トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2006-12-28(木) [長年日記]

GTD的仕事納め

Remember The Milkスクリーンショット いや、単に今日の(今年の)仕事リストが空になったということだけど。

Tags: rtm gtd

sfmltoj.rbを最近のSF.netに対応させる

SourceForge.netのメーリングリストアーカイブで日本語を表示させるsfmltoj.rbが、最近のSF.netリニューアルに追従していないと指摘されたので、ちょっとハック。むとうさんは困ってないのかしら? あとでメールしておこう。

--- sfmltoj.rb.orig	2006-01-10 09:14:47.000000000 +0900
+++ sfmltoj.rb	 2006-12-28 15:09:51.000000000 +0900
@@ -82,10 +82,6 @@
 #

 # headers
-str.gsub!(/html lang="en"/, 'html lang="ja"')
-str.gsub!(/<head>/, %Q[<head>
-<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
-])
 str.gsub!(/href="\//, 'href="http://sourceforge.net/')

 #
@@ -110,19 +106,17 @@
 #

 str.gsub!(/\=\?ISO-2022-JP\?B\?([^?]*?)\?\=/mi){
-  NKF.nkf("-Je", $1.gsub(/\s/, "").unpack("m")[0])
+  NKF.nkf("-Jw", $1.gsub(/\s/, "").unpack("m")[0])
+}
+str.gsub!(/\=\?utf-8\?b\?([^?]*?)\?\=/mi){
+  NKF.nkf("-Ww", $1.gsub(/\s/, "").unpack("m")[0])
 }

 #
 # Mail contents
 #
-str.gsub!(/<pre>(.*?)<\/pre>/m) {
-  message = NKF.nkf("-Je", CGI.unescapeHTML($1))
-  message = CGI.escapeHTML(message)
-  message.gsub!(/&lt;A href=(.*) target=&quot;_NEW&quot;&gt;(.*)&lt;\/A&gt;/) {
-    "<A href=" + CGI.unescapeHTML($1) + " target=\"_NEW\">" + $2 + "</A>"
-  }
-  "<pre>#{message}</pre>"
+str.gsub!(/(\033\$B.*?\033\(B)/m) {
+  CGI::escapeHTML( NKF::nkf("-Jw", CGI.unescapeHTML($1)) )
 }

 #
@@ -152,6 +146,6 @@
 #
 # puts the result.
 #
-puts "Content-Type: text/html; charset=EUC-JP"
+puts "Content-Type: text/html; charset=utf-8"
 puts ""
 puts str

もとのコードはEUC-JPを吐くようになっていたが、最近はUTF-8なメールも増えているし、SF.jp自体がUTF-8化されてしまったので、それに追従。おかげでコードがだいぶすっきりしたけど、NKFがUTF-8対応していないちょっと古いrubyだと動かんかも。

本日のツッコミ(全2件) [ツッコミを入れる]
むとう (2006-12-29(金) 02:48)

NKFをIconvに書き換えてリリースしました。
#SF.jpのrubyのバージョンが古かったのでNKFのままだと文字化けが直らなくて・・・。

ただただし (2006-12-29(金) 11:59)

ありがとうございます〜
どこかで古いRubyを見たのは覚えていたけど、SF.jpだったか……。


トップ «前日 最新 翌日» 編集
RSS feed