« New Sounds in BRASS 2006 | home雑記帳Topへ | 松任谷由実コンサートツアー2006 THE LAST WEDNESDAY »

2006年04月22日(土)

TiddlyWiki全角パス保存用パッチ

現在、オリジナルのTiddlyWikiを、Windows上のFirefoxで全角の含まれたパス(フォルダ名、ファイル名)に保存しようとすると、エラーにより保存できません。
これに対応するためのパッチを作成してみました。
色々試してみて、今のところ動作良好なので、テスト公開してみます。

TWSaveSJPathPatch

コンセプトは、プラグインのみで、TiddlyWikiのソースに手を加えないこと。
プラグインになっていますので、tiddlerを追加して内容をコピーし、タグに'systemConfig'を追加すると動作します。追加・保存するまでは全角の含まれないフォルダで作業を行ってください。
TiddlyWikiをお使いの方は試してみていただけると幸いです。問題がありましたらblogコメントください。
あと、javascriptにはあまり詳しくないので、ここはこうした方が、等の情報もありましたらよろしくお願いします。

TiddlyWikiのバージョン2.0.5以降用に作成しました。これ以前のバージョンではエラーになります。
Windows2000・XPのFirefox1.5.0.2で動作を確認しています。
また、WindowsXPのIE6、Windows2000のIE6・IE5.5でも通常通り動作することを確認しました。
WindowsXPのOperaでも正常に読み込めます。保存は試していません。
他の環境での動作報告も歓迎です。
よろしくお願いいたします!

[2006年4月24日 追記]
お使いの際は、必ずバックアップをとってからお試しください。
万が一、内容が失われることが無いとも限りません。
また、現在のところTiddlyWikiのバージョン2.0.5~2.0.10で動作を確認していますが、これ以降のバージョンで動作するとは限りません。バージョンアップの際もバックアップを取る、systemConfigタグを消す、tiddler自体削除するなど、ご注意願います。

Posted by Zephyr : 16:06 | カテゴリ TiddlyWiki

トラックバック

このエントリーのトラックバックURL:
http://flow.dip.jp/x/mt/mt-tb.cgi/264

コメント (9)

すごい!実にスマートな解決方法です。早速使わせていただきましたがまったく問題なしです。JavaScriptでもこんな風にすれば関数をhookできるんですね。
IEでときどきセーブに失敗するのは、全角パス問題ではなかったのか。誤解してました。
これでTiddlyWikiを他人に勧めるときの最大のネックであった「全角パス問題」が完全に解消されたのではないでしょうか。

投稿者 WikiStyle : 2006年04月24日(月)

Zephyr [TypeKey Profile Page]:

WikiStyleさん、レポートありがとうございます。また、紹介もしていただき恐縮です。
hookの仕方やXPCOMの使い方など、ほとんど見よう見まねでなかなか自信ないんですが、色々調べたり試したりしてみて、とりあえず大丈夫そうなので公開してみました。
今のところ、内容を見ずに処理してたり、Shift_JIS決め打ちだったりするので、様々な環境に対応するにはもうちょっと改良が必要そうですが、日本語Windows環境ではこれで大丈夫だと思います。
あと、トラックバック送ってみましたが、やはり表示が文字化けしてしまいましたね。失礼しました。文字エンコードを設定すると一応読めますが…。

投稿者 Zephyr [TypeKey Profile Page] : 2006年04月24日(月)

お久しぶりです。TWSaveSJPathPatchは今も問題なく動作しています。もはや必携プラグインですね。

さて、最近Opera(ver8.54)を試してみました。
window.netscapeオブジェクトはOperaにもあるらしくこのプラグインを入れているとOperaでもフックされて保存時にNoClassDefFoundErrorとなってしまいました。

if (config.userAgent.indexOf("opera") == -1)
のような条件でOperaを除外した方が良いかもしれません。

投稿者 WikiStyle : 2006年06月18日(日)

なるほど。了解です。情報ありがとうございます。
他のブラウザでもありえる話ですね。もうちょっと検討して更新しようと思います。

投稿者 Zephyr : 2006年06月19日(月)

てつ:

こんにちは。
時期外れの投稿、且つ、Java も使えませんのに、TiddlyWiki 最近をはじめたもので稚拙な内容ですいませんが、お尋ねします。
//状況//
 Ver.2.1.3 で使わせていただきました。
 ペーストしたコードを保存すると、中ほどの
  if (window.netscape == undefined) が
  if (window.netscape undefined)
 と "==" が脱落して、undefined 以降最後まで、コードの "}" を除いた全てに、一重消し線が入ります。
//結果//
(FireFox) Win2k jre1.5.0_06
  保存時:問題なし
  読込時:[Java Sclipt アプリケーション]の警告
    It appears that this TiddlyWiki has been incorrectly saved. Please see
    Http://wwtiddlywiki.com/#Downloadsoftware for details
(IE6) XP W2k 同様 jre1.5.0_06
  保存時: IE 警告、保存不可
    保存できません。ブラウザが対応していないか(できればFireFoxを使ってください)、またはパス名に無効な文字が使われています。
  読込時: エンコード(Shift-JIS)が自動選択されて 文字化け と
       別途使わせていただいた config.shadowTiddlers以外の日本語化Pluginでエラー発生
    # UTF-8 選択で解消
//ご教示ください//
TiddlyWiki を Ver.2.0.* もしくは jre の別バージョン に変更などすれば、解決できるのでしょうか ?
よろしくお願いしますm(__)m

投稿者 てつ : 2007年01月06日(土)

>てつさん
コメントありがとうございます。反応が遅くなりました。
まず、Ver.2.1.3をお使いとのことなので、できればImportTiddlers機能をお使いになることをお勧めします。また、コメントなども含め、プラグインのTiddlerは丸ごとコピーして使った方が良いと思います。
今回の状況ですが、まず、==で取り消し線が出るのは、LegacyStrikeThroughPluginの機能です(2.1.0から標準で入っています)。
これが出るということは、javascript:以降のコード部分のみコピーしていると思いますが、前後の/*{{{*/ ~ /*}}}*/まで含めていただければ、表示は改善されるでしょう。ただ、コード部分のみでも動作としては問題ないはずなのですが…。
また、TiddlyWikiはJavascriptで動作しますので、JavaのJREには影響されません。(Opera等では保存にJavaを使う場合もありますが)
以上のように、//状況//と//結果//は全く別の要因です。まずプラグインの状況を確認してみてください。

投稿者 Zephyr : 2007年01月09日(火)

てつ:

> 反応が遅くなりました。
全てご指摘の通りで、解決しました(^_^)ありがとうございます。

>javascript:以降のコード部分のみコピーして・・・表示は改善されるでしょう。
はい。記事が初期表示された状態のまま読み進めて、見えているコードのみコピーしていました。
これにて既に解決しましたが、

>ImportTiddlers機能をお使いになることをお勧めします。
こちらも、試させて頂きました。今後、他にも応用させて頂きます。
的確、ご親切なご教示、ありがとうごさいました m(__)m

投稿者 てつ : 2007年01月09日(火)

信長:

今まで2.1.3で利用していました。
(Zephyrさん、ありがとうございます)

2.2.0にバージョンアップしたら、動作しなくなりました。
しかし、本体側で対応したらしく、TWSaveSJPathPatchプラグイン無しで動作します。
(というか、消さないと動作しませんけど・・・)

投稿者 信長 : 2007年06月07日(木)

>信長さん
コメントありがとうございます。
2.2テスト中でした。
これから記事で書こうと思います。

投稿者 Zephyr : 2007年06月08日(金)

コメントをどうぞ