すぐには確認できないけれど、Instapaper、Pinboard、OmniFocusの受信トレイには送信したくないウェブページや興味深いリンクによく出会います。簡単に言えば、それらは「確認すべきもの」です。私は以下のURLを、同じ名前のEvernoteノートに追加しています。
iOS版Drafts 3.0のレビューで詳しく述べたように、iPhoneやiPadからテキストを追加するのは、Agile TortoiseアプリとEvernoteアクション、そしてブラウザのブックマークレットを組み合わせれば簡単です。しかし、Macでは同様にシンプルなワークフローを考えなければなりませんでした。残念ながらOS X版Draftsアプリがないため、同様の機能を実現するにはAppleScriptに頼らざるを得ませんでしたが、5月にリリースされたKeyboard Maestro 6.0の新機能のおかげで、この状況は(部分的に)改善されました。
iPhone や iPad と同様に、選択した Web ブラウザー (Google Chrome) の現在のタブを取得し、それを (日付とともに) 「チェックアウトすべきもの」Evernote ノートの下部に次の形式で追加できるようにしたいと考えています。
日付
ウェブページ名
ウェブページURL
ご覧の通り、既存のメモにテキストを追加した後、保存したい3つのデータを2つの改行で区切ります。また、Macを使用しているため、キーボードショートカット1つで起動でき、アプリ間を移動することなくバックグラウンドで実行され、完了時にローカル通知を送信するマクロを作成したいと考えています。Keyboard Maestroを使えば簡単です。[1]
Keyboard Maestro 6.0の最も優れた機能の一つは、AppleScriptを使わずにブラウザからデータを取得できる、全く新しいブラウザアクションとトークンのセットです。以前のバージョンのKeyboard Maestroでは、Google Chromeで現在のタブの名前を取得するといった単純な操作でも、少なくとも3行のAppleScriptが必要でした。
tell application “Google Chrome” get title of active tab of window 1 end tell
Keyboard Maestro 6.0 では、変数を次の値に設定するだけです。
%ChromeTitle%
…これはアクティブなChromeタブの名前を常にテキストとして返すトークンです。Safariでも同様に%SafariTitle%、日付などの他の種類のデータを使用して動作します。
「タブをEvernoteに追加」マクロを作成するには、Keyboard Maestroのアクションを5つだけ必要です。最初の3つでは、日付(ICU形式)を生成し、現在のブラウザタブのタイトルとURLを取得して、3つの別々の変数に保存します。Keyboard Maestroでは、アクションセル内でブラウザトークンのプレビューを直接確認できます。
このワークフローの「核」となるのは、既存のEvernoteノート「Stuff To Check Out」にテキストを追加するために使用するAppleScriptです。Bruce Timberlake氏が作成したこの古いスクリプトを微調整したもので、Evernoteのfind notes、create note、appendコマンドを利用しており、最新のEvernote for Macでも動作します。
tell application "Keyboard Maestro Engine" set KMVarTitle to get value of variable "browsetitle" set KMVarURL to get value of variable "browseurl" set KMVarDate to get value of variable "browsedate" set KMAppend to "\n\n" & KMVarDate & "\n" & KMVarTitle & "\n" & KMVarURL tell application "Evernote" set foundNotes to find notes "notebook:\"" & "Inbox" & "\"" & " intitle:\"" & "Stuff To Check Out" & "\"" set found to ((length of foundNotes) is not 0) if not found then set curnote to create note with text KMAppend title "Stuff To Check Out" notebook "Inbox" else repeat with curnote in foundNotes tell curnote to append text KMAppend end repeat end if synchronize end tell end tell
2行目から5行目では、Keyboard Maestro Engineプロセスに、マクロで先ほど保存した3つの変数の値を取得し、スクリプトで使用できる3つの新しい変数に渡すように指示しています。5行目では、これらの変数が1つの変数に連結され、\n改行を示すために使用されています。
実際のEvernoteスクリプトは6行目から17行目の間で実行されます。このスクリプトはEvernoteに「Inbox」ノートブック内の「Stuff To Check Out」というノートを検索するよう指示します。一致する名前のノートが見つかった場合、そのノートの末尾にテキストが追加されます(13行目)。ノートが見つからない場合、選択された名前とテキストで新しいノートが「Inbox」ノートブックに作成されます(10行目)。最後に、Evernoteは同期して変更内容をクラウドに保存します(16行目)。結果は次のようになります。
また、マクロの最後には、テキストが追加されたことを確認するネイティブ通知が表示されます。
このマクロは、OmniFocusの受信トレイやPinboardアカウントを乱雑にすることなく、URLを一時的な場所(デバイス間で同期)に保存できるシンプルかつ効果的な方法を提供してくれるので、Macで作業する際に毎日使っています。ChromeやEvernoteが起動しているかどうかのチェックは追加していませんが、このマクロは、追加できるアクションやAppleScriptへの変更(例えば、ノートのタイトル、日付の形式、保存先ノートブックの変更など)の両面で、非常にカスタマイズ性に優れています。マクロはこちらからダウンロードできます。
-
これで Mac を自動化する方法の探求は終わりだと思ったでしょう。↩︎
追加コンテンツと特典にアクセスする
Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。
毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。
詳細については、こちらおよびクラブの FAQ をご覧ください。
Club MacStories : アプリ、ヒント、自動化ワークフロー、長文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。
Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。
Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。