今日の振り返り/ Evernoteにガントチャート
ふと、Evernoteにガントチャートというアイデアが降ってきた。きっかけは何だったのかはわからない。
最初は、Scrivenerで進捗管理をやろうと思っていたのだった。HTMLでテーブルを書き、それをScrivenerに取り込む。ちょっとやってみたがJavascriptが使えないのでこの路線はダメ。では、Numbersで作ったファイルを取り込めば?__表示はされるが、編集ができない。それでは意味がない。
そこでふと思い出したのだ。最近のEvernoteはテーブルの背景色を変えられる機能が追加されたことを。
それをうまく使えばそれっぽいことができるかもしれない。
Evernoteのテーブルの背景色をかえて何かできないか思案中。 pic.twitter.com/rNGnAyaeCW
— 倉下 忠憲 (@rashita2) 2014, 12月 6
とりあえずやってみたところ、手動でやることは難しくない。工程を書いていって、達成したところの背景職を変えれば良いだけだ。こういうのはガントチャートとは言わないのだろうが、私としては全体の進捗状況が視覚的に把握できていればそれで満足なので問題はない。
が、手動で変えるのは若干面倒である。まあ一日に爆発的に進捗することはありえないので、手間でも問題はないのかもしれない。でも、アルゴリズムを考えたくもなる。
最大の問題は、AppleScriptでEvernoteを操作するときに、「選択しているノート」の情報は取得できても、ノート内のカーソル位置が取得できないことだ。だから、「選択しているセルの背景色を変える」というスクリプトは書けない(と、思う)。
じゃあ、そもそも無理じゃんか、という気がするが、まったく手がないわけではない。
たとえば、セルの中にチェックボックスを設置しておく。で、そこの進捗が終わったらチェックボックスをオンにする。で、スクリプトを走らせ、チェックボックスがオンになっているセルの背景色を変える、という手順を踏むならば、カーソルの現在場所は関係無くなる。
あるいは、チェックボックスなど使わずに、セルに「済」という文字が入っていれば背景色を変えてもよい。
AppleScriptでは、ノートの情報を
html content of xnote
という形で取得できる。
※xnoteは変数で、何かのノートの情報が入っているとする。またEvernoteへのtellブロック内で記述すること。
set notehtml to html content of xnote
とすれば、notehtmlにノートのHTMLが放り込まれるし__htmlやbodyなどが削除されたノートの中身だけのhtmlデータだ__、逆に、
set html content of xnote to notehtml
とすれば、そのノートの中身を書き換えられる。
ということは、対象のノートのhtmlを抜き出して、「済」が付いているセルに関しては背景色を置換してから、もとのノートのhtmlに返してやれば、当面の目的は叶う。
とりあえず考えただけでコードは書いていないし、そもそもこれをEvernoteでやる必要があるのかすら謎だが、ちょっと時間ができたら書いてみよう。