自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。
Ruby言語やLinuxのネタが多いです。
April 30, 2003 [おもひで]
■ [Ruby-GNOME2] XML Tree Viewer
ZnZさんが試してくれたようです。cygwinでも動くんですね。良かった。
あー、書き忘れたんですが、XMLファイルはUTF-8のみのサポートです、って追記しておきました。
#そういや、日本語試してませんでした(^^;)。
■ [Hiki]プラグイン
Ruby-GNOME2にいくつか仕込んでみたんだけど、日本語埋め込みってどうにかならないかなぁ。難しい問題だとは思うけど。
とりあえず、ひととおり英語に直したけど、これ、プラグインのバージョンアップの度にやらないといけないかと思うと結構憂鬱。
■ [Hiki]添付ファイル
Ruby-GNOME2 Project WebsiteのXML Tree ViewerのページではHikiで最近実装された添付ファイルプラグイン(とCGI)を使っている。めちゃくちゃ便利だ。
Hiki標準では$options['attach.form'] = trueを使うことで全てのページにファイルUpload用のフォームが追加されるのだが、これよりも編集画面でフォームが表示された方がオレの好みなので以下のプラグインを作って、TextFormattingRulesの方に記述した。
def show_attached_files
s = ""
if (files = attach_page_files).size > 0
s << %Q!<p>Attached Files: \n!
files.each do |file_name|
s << " [#{attach_anchor(file_name)}] "
end
s << "</p>\n"
end
s
end
TextFormattingRulesはこんな感じ
{{show_attached_files}}
{{attach_form}}
■ あと、Uploadした後に編集画面に戻ってくるようなパッチをattach.cgiに適用すればOK。
--- /home/mutoh/hiki/misc/plugin/attach/attach.cgi 2003-04-21 23:10:23.000000000 +0900
+++ attach.cgi 2003-04-30 12:22:45.000000000 +0900
@@ -9,7 +9,7 @@
def attach_image
cgi = CGI.new
- if cgi['attach'][0]
+ if cgi.params['attach'][0]
params = cgi.params
page = CGI.escape(params['p'][0] ? params['p'][0].read : 'FrontPage') raise unless params['p'][0] && params['attach_file'][0]
@@ -28,7 +28,7 @@
end
rescue Exception
ensure
- redirect(cgi, "hiki.cgi?#{page}")
+ redirect(cgi, "hiki.cgi?c=edit;p=#{page}")
end
end
end

プラグインの日本語埋め込み、どうしようかな。本体と同じようにプラグイン用のメッセージファイルでも用意するかねぇ?
難しい問題ですよね。日本語をデフォルトにしておいて、言語が切り替えられたときはリソースファイルを読み込んで日本語を上書きするような仕組みを作ると良いのかもしれませんけど...。
プラグインから編集画面へFORMなどを追加できるようにイジっていて気付いたのですが、編集画面でテキストを編集。さて、あとはこのファイルを添付しておしまい。とやると、悲惨なことになりませんか?
どこで報告すればいいのか分からなかったのでここにツッコミ.
ruby-gnome2のHikiでファイルをuploadした後,リダイレクトされると
(RuntimeError)
./hiki/command.rb:57:in `dispatch'
/home/groups/r/ru/ruby-gnome2/cgi-bin/hiki/ja/hiki.cgi:27
/home/groups/r/ru/ruby-gnome2/cgi-bin/hiki/ja/hiki.cgi:25:in `open_db'
/home/groups/r/ru/ruby-gnome2/cgi-bin/hiki/ja/hiki.cgi:25
こんなエラーが出てしまいます.
確認してみます。今日はバグデーらしいですね(-o-;)。
#ってか、報告はRuby-GNOME2 MLで良いですよ(^^;)。