まず、状況の説明からいきます。その次に書いたコードを紹介します。
状況とニーズ
私は、「その年に読んだ本の一覧表」をEvernoteに作っています。一年分の日付を書き込み、その日に読了した本の名前を書き込む。それを続けていけば、「一年間の読了リスト」が年末には完成する、とあいなるわけです。
で、私は買った本についてはすべてメディアマーカー経由でEvernoteにノートを作っているので、その「読んだ本の一覧表」に書き込む書名は、単なるテキストでなく、本のノートのノートリンクにしたいと願うのは、別段人外の願望というものではないでしょう。
さて、その「読んだ本の一覧表」に記入するシチュエーションを想像してみましょう。
たとえば、朝起きて、「そうだ、昨日あの本読み終えたんだ。リスト更新しなきゃ」と思う。そう思ったら、最初にアクセスするノートは何でしょうか。そうですね。「読んだ本の一覧表」ノートです。で、そのノートに書名を記入しようとして、はっと思い出します。「そうだ、ノートリンクにしないと」
こうなると今度は、読み終えた本のノートが入っているノートブックに移動し、そこで対象のノートのノートリンクを取得して、再び「読んだ本の一覧表」に帰ってきて、該当箇所を探してそこにペーストすることになります。おわかりでしょうか。この面倒くささを。
しかも、そうして記入している間に、「そうだ、あの本もちょっと前に読んだんだった」とかなった日には、再びノートブックの往復作業が始まります。
これは、由々しき状態なのですが、「まあ、そういうもんだな」と長年諦めていました。
そう、Scrapboxに触れるまでは。
Scrapboxであれば、ノートの記入中であっても、別のノートへのリンクが簡単に書けます。記法があるだけなく、入力をサポートしてくれる機能すらあります。すいすいと快適に、ノート間のつながりを生み出してくれます。
そうした体験を一度してしまうと、その他のツールもこういう形であって欲しいと思うだけでなく、むしろこうあるべきなのではないか、という感覚すら強まります。簡単に言えば、ノートリンクを取得するためだけのノートブックの移動に嫌気がさしはじめた、ということです。
コードと動き
そこで、ちょっとしたAppleScriptを書いてみました。
たとえば、このように日付の下に書名を入れたいとしましょう。そこで、スクリプトを起動します。すると、
上記のようなダイアログが立ち上がります。特定のノートブックに入っている最近のノートから規定数分だけリストアップしたダイアログです。ここで、追加したい書名を選択してOKを押せば、
上記のようにスルリとノートリンクが追加されます。この間、ノートブックの移動は一切ありません。ノート記入中にショートカットでスクリプトを立ち上げ、あとは必要なノートを選択するだけです。これはもう、名古屋弁で言えば、「どえりゃーべんり」な状況です。はい。
というか、なんで標準にこの機能がついていないのかちょっとわからないくらいです。
とは言え、最初にEvernoteのノートを「検索」するので、少し待たされますが、次回以降はノートの情報を使い回すので起動は速いです。もし、指定したノートブックにノートの増減があれば、また「検索」が発動して、やや待たされます。でもまあ、ノートブックを行ったり来たりすることに比べれば非常に快適です。
もう少しこのスクリプトを改良して、速度アップ&利便性の向上に取り組みたいところですが、まずはその快適さをお伝えするために、記事に起こしてみました。とりあえず、現時点のコードは以下においておきます。
スクリプトの作成においては、「Cocoaの機能を使ってHTML文字列をコピーするAppleScriptハンドラ」がたいへん参考になりました。というか、そのまま使わせていただきました。ありがとうございます。
▼こんな一冊も:
売り上げランキング: 309