« 07.27 18メートル | ココ | 08.02 移動に移動でみんなクタクタ »
2009年7月31日
TWiki日本語大作戦 リターンズ
TWiki 4.2以上でトピックを編集するときに、自動的にWYSIWYGエディタが使われるようになってるんですが、このWYSIWYGエディタを使うと日本語が大変なことになるんですよねー。個人的にはraweditを使えば全然問題ないんで、特に困ってはないんですが、他人も編集するようにするとなってはそうも言ってられず。
Railsのto_jsonメソッドにも同じような問題があるんで、そのときの対応を参考にさくっと直そう…と思ったら全然参考にならんのでやんの。WYSIWYGエディタの場合、raweditと切り替えが出来るんやけども、そのときにプラグインに定義してあるルーチンをAjaxで呼び出しているらしい。
ということで、$TWIKI_HOME/lib/TWiki/Plugins/WysiwygPlugin ディレクトリのHTML2TML/Leaf.pmと、TML2HTML.pmを編集。
$ diff -c HTML2TML/Leaf.pm.bk HTML2TML/Leaf.pm
*** HTML2TML/Leaf.pm.bk 2009-07-31 17:09:34.000000000 +0900
--- HTML2TML/Leaf.pm 2009-07-31 16:55:18.000000000 +0900
***************
*** 64,69 ****
--- 64,70 ----
$t =~ s/\[/[/g;
}
unless ($options & $WC::KEEP_ENTITIES) {
+ $t =~ s/%u([0-9A-F]{4})/chr(hex $1)/ego;
$t =~ s/&($text_entities_re);/chr($text_entities{$1})/ego;
$t =~ s/ /$WC::NBSP/g;
}
$ diff -c TML2HTML.pm.bk TML2HTML.pm
*** TML2HTML.pm.bk 2009-07-31 17:09:09.000000000 +0900
--- TML2HTML.pm 2009-07-31 17:06:04.000000000 +0900
***************
*** 290,295 ****
--- 290,297 ----
$text =~ s/$TT0(#[0-9]+;)/&$1/go;
$text =~ s/$TT0([$TWiki::regex{mixedAlphaNum}]+;)/&$1/go;
+ $text =~ s/%u([0-9A-F]{4})/$1;/gs; ## append
+
# Horizontal rule
my $hr = CGI::hr({class => 'TMLhr'});
$text =~ s/^---+$/$hr/gm;
TWikiのデコードのほうが楽やった。まぁ最新のでは直ってるのかもしれんけど。
By ただ at 22:11 カテゴリー ; Perl , プログラミングとか
« 07.27 18メートル |
07月の記事
| 08.02 移動に移動でみんなクタクタ »
トラックバック
このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/1452