FirefoxでTiddlyWikiを使う

自分がPCでメモをとる場合、プラットフォームを選ばず、将来的に読めなくなることがないだろうという理由でテキスト形式を使ってきたんですが、最近、そのほとんどをTiddlyWikiに置き換えてしまいました。

TiddlyWikiはいわゆるWikiエンジンの1つですが、普通のWikiと違ってサーバサイドではなくクライアントサイドのJavaScriptで実行します。サーバを立てる必要がないので、個人的にWikiを利用したいときに向いています。

Wikiということで、ハイパーテキストが容易に扱え、装飾が可能など、シンプルなテキスト形式にない特徴を持っていて、その上、保存形式はHTML(+ CSS + JavaScript)なので、標準テキスト形式同様、たいていのPCで読むことができて、書いたデータが将来無駄になるとは考えにくいというのが移行した理由です。

1つのファイルで全部済んでしまうというのも、バックアップが取りやすくてよいです。

詳しい導入方法や使い方などは、keyword:TiddlyWikiのリンク先をたどっていくといろいろと書いてあると思うので、それを参照してもらうことにして、以下ではFirefoxでの導入時の注意点を述べたいと思います。
TiddlyWikiはファイルの保存なども含め、全てをJavaScriptで処理しています。しかし、JavaScriptでローカルのファイルにアクセスできてしまうことはセキュリティ上重大な問題となります。そこでFirefoxでは、通常のJavaScriptではそのようなことはできないようになっていて、「特権」を与えられたJavaScriptのみがローカルのファイルにアクセスできるようになっています。

TiddlyWikiでは特権はファイルを保存するときに何回か求められます。これには結構時間がかかるので、常用するときには「次回以降も同様に処理する」をチェックして、それ以降特権を求めるダイアログを表示しないようにすることになると思います。そのとき、特権の対象がローカルのファイル全体になってしまいます。これは結構怖いです。

そこで、特権をTiddlyWikiのファイルのみに与えるように変更します。先ほどのように、「次回以降も同様に処理する」にチェックを入れた場合、Firefoxの設定ファイル"prefs.js"をテキストエディタで開くと、以下のような行があるはずです。

user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect");
user_pref("capability.principal.codebase.p0.id", "file://");

この"file://"以下を、TiddlyWikiのファイルを示すURIに修正して下さい。Firefoxのロケーションバーに表示されるURIを参考にするといいでしょう。気になる人はグループ名(codebase.p0)も変えちゃって下さい。例えばWindowsの場合はこんな感じです。

user_pref("capability.principal.tiddlywiki.granted", "UniversalXPConnect");
user_pref("capability.principal.tiddlywiki.id", "file:///C:/tiddlywiki/tw.html");

これでTiddlyWikiのファイルのみに特権を与えることができます。

参考 : http://www.mozilla-japan.org/projects/security/components/per-file.html