みやさか と申します。昨日はどうもありがとうございました。
今度はバグ報告ではなくて提案なんですが、こんな機能はどうでしょう。
アンカー自動生成プラグイン a.rb で日本語文字を URL にエンコードする
際に、文字エンコードに UTF-8 を指定可能にするものです。
以下は私がやってみた改造ですが、私は ruby は始めたばかりなので、
もっとエレガントな方法がありましたら、教えてくださいませ。
nkf を使う限り、ruby のバージョンに依存するのが難点です。
nkf への追加オプション "-E" は、入力文字コードの決めうち(EUC)です。
何故こんなことを思いついたのかというと、私はよく日記に wikipedia
のページへのリンクを貼るのですが、あの長ったらしくて見苦しい
wikipedia の URL を見ずに wikipedia へのリンクを書けたらいいなぁ、
と思ったからです。ほかにも UTF-8 を使用しているサイトはあるので、
実用性は大きいのではないでしょうか。
diff -ur diary.bak/misc/plugin/a.rb diary/misc/plugin/a.rb
--- diary.bak/misc/plugin/a.rb Fri Feb 23 08:14:00 2007
+++ diary/misc/plugin/a.rb Sat Feb 24 04:56:00 2007
@@ -46,8 +46,13 @@
A_REG_PIPE = /\|/
A_REG_COLON = /\:/
A_REG_URL = /:\/\//
+if RUBY_VERSION >= '1.8.2'
+A_REG_CHARSET = /euc|sjis|jis|utf8/
+A_REG_CHARSET2 = /sjis|jis|utf8/
+else
A_REG_CHARSET = /euc|sjis|jis/
A_REG_CHARSET2 = /sjis|jis/
+end
A_REG_MY = /^\d{8}/
if @options and @options["a.path"]
@@ -93,7 +98,7 @@
return "" unless option
return option unless charset
if charset =~ A_REG_CHARSET2
- ret = NKF::nkf("-#{charset[0].chr}", option)
+ ret = NKF::nkf("-#{charset[0].chr} -E".sub(/-u/,'-w'), option)
else
ret = option
end
----------------------------
宮坂 賢 (MIYASAKA Masaru)
alkaid@...
|