Remember The Milk へGmail 経由でタスクを追加するためのブックマークレット

真性引き篭もり/entry : remember the milkに感動。」 を読んで、ベンリそうと思ったので早速アカウントを作ると同時に、Gmail 経由でタスクを追加できるブックマークレットを作ってみたので公開してみます。既に同じようなのがあるとは思いますが、気にしない方向で。
以前作った「スレッドフロート型メモとしてのGmail をSleipnir から利用するブックマークレット」 をベースに改造してみました。
RTM のアカウントを作ると同時にタスクを追加するための専用のメールアドレスが発行されるのですが、このアドレスに"+" が含まれるため、Gmail のメール作成画面で"+" が" "(半角スペース) に変換されてしまい、原因究明にてこずりました。
で、色々調べた結果、"encodeURI" ではなく"encodeURIComponent" を使うことで解決できました。"encodeURI" と"encodeURIComponent" の違いは「予約文字をエンコードするかしないか」 で、"+" をそのまま使いたい場合は"encodeURIComponent" でないとダメ、ということみたい。以下参考にした資料。

RTM にメールでタスクを追加する際のフォーマット。

以上を踏まえて作ったブックマークレット。Firefox 2.0 にて動作確認済み。


javascript:popw='';Q='';x=document;y=window;if(x.selection) {Q=x.selection.createRange().text;} else if (y.getSelection) {Q=y.getSelection();} else if (x.getSelection) {Q=x.getSelection();}popw = y.open('https://mail.google.com/mail?view=cm&tf=0&to='+encodeURIComponent('「受信箱のメールアドレス」')+'&su=' + encodeURIComponent(Q) + '&body=' + encodeURIComponent('Priority:3'+'\n'+'Tags:タグ1 タグ2'+'\n'+'URL:') + encodeURIComponent(location.href) + encodeURIComponent('\n'+'---'+'\n'+'メモはここに書く'+'\n'+'-end-'),'gmailForm','');if (!document.all) T = setTimeout('popw.focus()',50);void(0);

Firefox での追加の仕方は、まずRTM のサイトを適当な箇所にブックマークし、そのブックマークでRTM を開きます(favicon が読み込まれる)。
rtm1.png
ブックマークのプロパティを開き、URL を上記のJavaScript に変更し、[OK] を押します。
rtm2.png
上記のスクリプトで実際に実行させるとこんな感じ。マウスで反転させている箇所をメールの件名(→RTM でのタイトル) に入れます。何も選択していない場合は空になります。
rtm3.png
タグは半角スペースを間に入れれば適当に並べられるっぽいので適宜変更すると吉。"---"(半角ハイフン3つ) の次の行はメモとして認識されます。これも複数付けることができる模様。最終行には"-end-" を付けておくと文末にシグネチャとか付いていても無視してくれるのでベンリ。
この手のツールはいつも途中で挫折してしまいがちなので、今回こそは使いこなせますように…。