本文 編集 履歴 ソース 差分 最近の更新 VikiWikiとは

VikiWiki - CharengeReplace

2003-05-12時点での置換え機能を試してみました

vikiwiki.cgi を下記のように変更

# Define your replace words by the Hash class.
#$REPLACE_WORD = nil
$REPLACE_WORDS={ \
 "&date;"=>Time::now.strftime("%Y-%m-%d") \
,"&time;"=>Time::now.strftime("%I:%M:%S") \
,"&now;"=>Time::now.strftime("%Y-%m-%d (%a) %H:%M:%S") \
,"&now_12;"=>Time::now.strftime("%Y-%m-%d (%a) %p %I:%M:%S") \
}

これを普通に記述したら、期待通りの置換えをしました。ばっちりです。

...ただ、いくつか問題らしきものがあります。

エスケープが効かない


{{行(文節/単語)のエスケープ}}

{ { {
複数行
囲んだもの全部
説明のため括弧の間に空白を入れてるけど実際は連続3つ
} } }

これらの記述に置換え文字列を書いてもそれらは他の記述と同じようにエスケープして欲しいのですが、置換え指定してるものはエスケープに関係なく置換えされる。

Preview では置換えない

本当に置換えできているのかの確認用にプレビューしようとしても実際に置き換るタイミングは保存後なんで、プレビュー確認できない。

この辺は好みの問題だと思いますが、自分では予期していない置換えをあぶりだすためにプレビューでの置換えも可能にして欲しいです。

書式に2バイト文字が使用できない

2バイトというか、まあ試したのは日本語だけですけど...

"&now;"=>Time::now.strftime("%Y-%m-%d (%a) %H:%M:%S")

この記述は置換え可能

"&now;"=>Time::now.strftime("%Y年%m月%d日 (%a) %H時%M分%S秒")

こっちは文字化けちゃいます

上のやり方では使用不可でした。置換え自体はrubyまんまみたいなんで、多分、rubyの構文をきっちり駆使すれば回避できる??付け焼刃ではよくわからず...

でも少くとも日付フォーマットに関しては、仕様としておいた方がいいのかな。2バイト文字も使用可能としたらEUC,SJIS,UTF8での変換あたりで嫌なことになりそうだし。それか、知らないどっかでとんでもない事になりそうな。考えすぎ??

とにかくオレ自身は変換で日本語は指定することないので、仕様ということで納得