AppendNoteS – 追記型メモAppendNoteの高速化版

拙作MyScriptsスクリプト「AppendNote」がMyScriptsを介さずただのURLに生まれ変わりました。Twitterで謎のURLをメモしていたのを見かけた人がいるかもしれませんが、それのまとめと説明です。

MyScriptsを介さず高速化

AppendNoteは日毎に分けたファイルにメモを追記するMyScriptsスクリプトでした。画像添付のできないDropbox向けPostEverみたいなもの。この手のメモをEvernoteから切り離す為に作りました。プレーンテキストとして保存できるので、後で整理する為のメモとして使い勝手が良いです。詳しくは以下をどうぞ。

これまではLaunch Center Pro(以下launchpro)でメモを書いて、ファイル名や時間を生成する為にMyScriptsへ渡していましたが、launchproのアップデートにより、直接テキストエディタアプリに渡せるようになりました。これによりかなりの高速化となりました。今回からTextforceにも対応。

必要なアプリ

Launch Center Pro 1.1
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 250円(サイズ: 18.8MB)

TextExpander 1.2.7
カテゴリ: 仕事効率化
現在の価格: 450円(サイズ: 2.6MB)

テキストエディタアプリはTextforceがcallbackに対応したので選択肢が増えました。

Notesy for Dropbox 2.3.1
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 450円(サイズ: 14.3MB)

テキスト編集 Textforce for Dropbox 2.11.0
カテゴリ: 仕事効率化, ビジネス
現在の価格: 350円(サイズ: 2MB)

使う

NotesyとTextforce版の2つ用意しました。launchproのアクションに登録してください。

aps_01

  • notesy://x-callback-url/append?name=<ddate>&text=%2A%2A<ttime>%2A%2A%0A%0A[prompt-return]%0A%0A&x-success=launchpro%3A
  • textforce://file?path=/notesy/<ddate>.md&method=write&text=%2A%2A<ttime>%2A%2A%0A%0A[prompt-return]%0A%0A&mode=a&callback=launchpro%3A

前述しましたがlaunchproのアップデートでURLに直接TextExpanderスニペットが記述できるようになりました。<>の中にスニペットを書いておくと、実行時に展開されます。URLエンコードもしてくれる。

パスは両方Notesyフォルダになっていますが、Textforce版は好きなフォルダを選べるので書き換えてください。それと、実行後launchproに戻るようになっていますが、他のアプリを起動したい時はURL末尾のlaunchpro%3Aを書き換えてください。Sylfeedならsylfeed%3Aです。

TextExpanderの設定

<ddate><ttime>というのはTextExpanderスニペットを直接記述しています。それぞれ年月日(%Y-%m-%d)と時分(%H:%M)を登録しています。ここは自分の設定と置き換えてください。書式は公式サイトのFAQに説明があるので参考にしてください。

使い方は前と同じです。launchproのアクションを実行するとプロンプトが表示されるので、メモをしてGoボタンをタップ。送り先のテキストエディタアプリが起動して貼り付けられます。Notesyは即lanuchproに戻ってきます。TextforceはCloseボタンをタップするまでcallbackが実行されません。

Notesyは早いけど同期処理が実行される前にcallbackが実行される。TextforceはCloseボタンをタップする手間があるけど、同期処理を待てる。一長一短ありますね。

注意

使う時はどちらか一つにした方が良いです。同期処理の関係で、Textforceで同期していても、Notesyは同期前の状態なのでよくコンフリクトします。

応用

launchproはペーストボードにも対応しているので、[prompt-return][clipboard]にすると、タップするだけでペーストボードアイテムをテキストエディタアプリに送れます。

TextExpanderを持っていない

これまでのAppendNoteはもう使えないのかというと、そんなことは無く、特にお知らせもしていませんがアップデートしています(機能追加も特にない)。今後特にアップデートする予定はありませんが、更新チェックが使えるのでたまにご利用ください。

launchproもTextExpanderも使わずDraftsを使う

Drafts 2.5.7
カテゴリ: 仕事効率化, ソーシャルネットワーキング
現在の価格: 250円(サイズ: 7.8MB)

Draftsは下書き用メモアプリ。最近のアップデートでURLアクションの呼び出しに対応して面白い進化をしています。

AppendNoteはDraftsだと単体で実現可能です。前はファイル名prepend条件の時にテンプレートが使えなかったと思うのですが、いつの間に改善されたんだろうか。まあそれはいいとして、ササッと作ったら動いたのでツイートしたものが以下です。URLをタップするとDraftsのDropbox Actionにインポートされます。

あとがき

launchproのアクションが便利になりすぎて、アクションを実行するURLスキームが欲しくなってきました。アクションにテキストを送れたり。なんだか本末転倒なのでほどほどに留まって欲しい気もしますが。

年度末の忙しさも落ち着いたので、そろそろ放置したTodoを処理していきたいこのごろです。

MarkdownをNotesyでHTMLに変換してウェブページを作成する

1ボタンで。出力するアプリによってはファイル作成からプレビューまでできます。

やり方

Notesyが必要です。トリガーはMyScriptsでもMyShortcutsでもLaunch Center Proでもブックマークレットでも何でもいい。出力するアプリもURLスキーム経由でテキストが渡せたらOK。

NotesyにはMarkdown文書をHTML文書に変換する機能があります。編集画面下メニューのmdボタンをタップしたらプレビューが表示される。よくある機能です。少し違うのは、その変換機能をURLスキームから実行した時。変換したHTMLソースをペーストボードにコピーしたり、他のアプリに出力できる所。

URLスキームはこちら。render-markdownはペーストボードにコピーしたMarkdown文書をHTML形式に変換して、ソースをペーストボードにコピーする。

  • notesy://x-callback-url/render-markdown

Markdown文書をコピー→URLスキームでNotesyを起動して変換&コピー。確認してみるとヘッダ付きのHTML文書に変換されている。NotesyのMarkdown設定にあるCSSが埋め込まれているので装飾もOK。

notesy-rm_01

ペーストボードアイテムではなく、テキストを渡したい時はtextパラメータを付けます。テキストはURLエンコードが必要です。

  • notesy://x-callback-url/render-markdown?text=テキスト

ヘッダまで付いてくるのでブログ用途には邪魔ですが、これはこれでメールの本文にもできるし、独立したウェブページとして扱えるメリットがあります。

応用編

本編です。とてもややこしい。

変換したHTML文書をアプリに渡してファイル作成からプレビューまで。これを一気にやりましょう。使うアプリはTextforceです。URLスキームはこちら。

  • notesy://x-callback-url/render-markdown?output-param=text&x-success=textforce%3A%2F%2Ffile%3Fpath%3D%2Fblog.html%26method%3Dwrite%26mode%3Dw%26after%3Dquick_look

Markdown文書をコピーしてURLスキームからNotesyを起動して変換。成功したらTextforceを起動してblog.htmlに上書きしてプレビュー。もちろんtext=テキストを付けた形でもいい。

  • notesy://x-callback-url/render-markdown?text=テキスト&output-param=text&x-success=textforce%3A%2F%2Ffile%3Fpath%3D%2Fblog.html%26method%3Dwrite%26mode%3Dw%26after%3Dquick_look

URLを書き換える時はよく確認してください。Textforceのブックマークが空になったり、アラートが止まらなかったり、色々と激しいエラーが発生しました。タスク切り替えからアプリを終了させたら止まります(再起動後一度だけエラー表示あり)。

一つだけ注意したいのがoutput-paramです。出力用のパラメータ名を指定するもの。Textforceならtextです。Nebulous Notesならいくつかありますが、既存のファイルに後方追記するならappendです。いくつか例を挙げてみます。

メール本文に貼り付け
mailto:?body=テキスト
notesy://x-callback-url/render-markdown?output-param=body&x-success=mailto%3A
DraftPadに置換
draftpad://insert?text=テキスト
notesy://x-callback-url/render-markdown?output-param=text&x-success=draftpad%3A%2F%2F%2Finsert
Bywordにファイル作成して貼り付け
byword://new?text=テキスト
notesy://x-callback-url/render-markdown?output-param=text&x-success=byword%3A%2F%2Fnew

こんな感じ。Nebulous NotesはどうやらURLスキームで受け取れる文字数が少ないようで、この用途には向いていません。どうしてもNebulous Notesに渡したい時はMyScriptsにでも渡してOpen in経由ですね。TEXTとだけ書いたスクリプトを用意したらいいです。

notesy-rm_02

…output-param=text&x-success=myscripts://run?スクリプト名とやったらMyScripts起動でアプリが落ちました。エンコードしても同じ。x-success=myscripts://run?スクリプト名と、単にクリップボードにコピーしてスクリプトを実行しても落ちた。x-success=myscripts:だと落ちない。アプリを切り替えて即Open in実行だと落ちるのかな。

以上。コピーして1ボタンで完了するMarkdown→HTML変換でした。元ネタはTwitterのNotesy公式アカウントから。

記事中に出てきたアプリ

Notesy for Dropbox 2.2
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 450円(サイズ: 14.3MB)

MyScripts 2.5
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 350円(サイズ: 2.3MB)

MyShortcuts+Viewer 1.4
カテゴリ: ユーティリティ, 仕事効率化
現在の価格: 85円(サイズ: 0.4MB)

Launch Center Pro 1.0.4
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 450円(サイズ: 18.2MB)

Dropboxテキスト編集 Textforce – (ブックマーク, 正規表現検索) 2.10.0
カテゴリ: 仕事効率化, ビジネス
現在の価格: 350円(サイズ: 2MB)

DraftPad 1.6.2
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 無料(サイズ: 0.6MB)

Nebulous Notes (for Dropbox) 6.0.1
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 450円(サイズ: 10.8MB)

Byword 1.1.1
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 250円(サイズ: 4MB)

あとがき

ここまでやってくれるアプリは珍しいですね。メール貼り付けを見つけた時はよく考えられてるなと思いました。できればbodyタグ内だけ出力するパターンも欲しい。

Notesyをメモ帳として使う – メモを追記してアプリに戻るURLスキーム

以前こんな記事を書きました。
MacとiPhoneのメモ帳環境を考えた

中々のマニア向け記事で個人的に満足度の高い内容でした。今回はそれの、Notesyからメモを追記するURLスキームの話。callbackにも対応。

Notesy for Dropbox 2.2
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: 450円(サイズ: 14.3MB)

Notesyはx-callback-urlに対応している

以前テキストエディタアプリのURLスキームとパラメータまとめでちょっと書いた頃はあんまり理解できていませんでした。実際はこれがすごく便利だった。

例えば以下のURLスキームだと、fooという名前のファイルを作成して、hello worldというテキストを追記し、成功したらLaunch Center Proに戻ってくる。Notesyはcallbackに対応したDropbox対応エディタだった。以前はこれに気付けていませんでした。

notesy://x-callback-url/append?name=foo&text=hello+world&x-success=launchpro:

x-successというのがcallback用です。成功があるなら失敗もあるのかというと、x-errorというのがある。この場合エラー終了しても問答無用でcallbackが実行されるのでエラーに気付けないかもしれません。ちなみに上のURLスキームを完全版にすると以下のようになります。

notesy://x-callback-url/append?name=foo&text=hello+world&x-success=launchpro:&x-error=launchpro:

他にもx-sourcex-cancelというのがありますが、Notesyでは今の所使い所が無いような気がします。Dueだとx-sourceに指定したものが戻るアプリ名に使える。

appendnote_01

x-callback-urlとは何かというと、URLスキーム用のAPIです。アプリ開発者はこのAPIを使って簡単にURLスキームの実装ができる。使う側も同じ仕様なので、アプリが変わっても対応しやすい。例えばリマインダーアプリのDueがx-callback-urlを使っています。URLスキームに付けるパラメータ名はアプリによって違うのが当たり前だったりするので、実は使う側にもメリットがある。

他にもいくつか対応アプリがあるので、詳しくは公式サイトをご覧ください。
Appsx-callback-url | x-callback-url

使う

ここからは実践編です。俺はLaunch Center Proでプロンプトから文字を入力します。書いてOKをタップしたらNotesyに追記してLaunch Center Proに戻ってくる。

appendnote_02

Launch Center Proに登録しているURLスキームはこちら。

  • myscripts://run?title=AppendNote&text=[prompt]

MyScriptsスクリプトです。AppendNoteという名前。中でTimeLIBというスクリプトをインポートしています。MyScriptsをインストールしたiOSデバイスで以下のリンクをタップするとスクリプトがインストールされます。2つとも必要です。

インストールしたらMyScripts側は触らず、Launch Center Proでメモを書いてOKすると、日付をファイル名(今日なら2013–01–04.md)にしたファイルに、追記時間を太字にして追記される。ファイルが無かったら作成する。下の画像の左側のように追記され、プレビューすると右側のようになる。

appendnote_03

こんな感じ。Evernote補助アプリでいうと、PostEverやEverGear、えばろぐのテキストオンリー版みたいなイメージです。メリットはcallbackで自動的にアプリに戻れる所。送信待ちの時間を全く感じません。Markdown記法も使えます。Launch Center Proのプロンプトは改行できないので長文には向きませんが。

使い方いろいろ

ブラウザやRSSリーダーなんかでテキストをコピーして、通知センターから起動するのも便利です。引用して、その下にメモを書いてもいい。その場合はMyScriptsスクリプト内のx-successの指定を削除するか、書き換える必要があります。

appendnote_04

テキストを書いて渡せたらいいので、検索ハブQuickaSeeqのような検索アプリからも使えます。一番良いのはDraftPadのような下書きアプリでしょう。他にもMyShortcutsを使って通知センターから起動できるようにしておけば書くアプリを選びません。

それぞれ追加用のリンクを用意しました、以下をタップするとインストールされます。事前にMyScripts用スクリプトをインストールしておいてください。

あとがき

MyScripts様々です。MyScriptsが出てからアプリ連携が本当に豊かになった。まだ日本国内限定(国内でも一部な気がしますが)な所があるので、早くこの異様なURLスキーム文化が世界に拡がってほしい。

要整理のただのメモ書きをEvernoteに保存しておくのが嫌になり作ったメモ書き環境ですが、中々うまくいっています。メモ書きって見返すとかなりどうでもよかったりするので、よくファイルごと削除してる。

実はAppendNoteで実現していることは、Day Oneなら何の手間もなくできます。画像添付に位置情報付加、天気情報まで残せる。AppendNoteはNotesyのcallbackで戻れるし、前述の通り速いです。Day Oneでは起動時間+ロック解除+編集を確定するまでの手間がネックでした。多分それやってる間にAppendNoteなら3回書ける。一度に3回も書きませんが。iOSとMac版どちらも持っているお気に入りアプリなので使いたい所ですが、今回の用途には合いませんでした。

MacとiPhoneのメモ帳環境を考えた

簡単なテキストの受け渡しや、すぐ見る為の一時的なメモ書き。こういうのはこれまでATOK Pad(Mac・iPhoneとも)でEvernote同期してきた。ただちょっと不満があったので見なおしてみたまとめ。

不満

いくつかある不満を挙げてみた。

  • Evernote同期は遅い(共通)
  • 使っているテキストエディタで編集できない(共通)
  • 大半が一時的なものなのでEvernoteに保存したくない(共通)
  • ノートのコンフリクトが結構ある(iOS)
  • URLスキームで追記とかできない(iOS)
  • ATOK Padのコピペバルーン表示の仕様が嫌いだ(iOS)

要はスピードです。1アクションですぐ書けるようにしたい。

解決する

答えは既に出ている気もしますが、考えた。

共通の不満

まずは共通の不満から。これはもうEvernote同期をやめるしかない。他の案としては、

  • Dropbox
  • iCloud
  • その他

これぐらい。その他は専用のサーバで同期するもの。Simplenoteとか他多数。LAN内でWifi同期は外した。

まずはDropbox。同期は早い。エディタ選び放題。これは良い。
次にiCloud。同期はDropboxより早い。エディタは少ないし組み合わせが限られる。微妙。
最後にその他。これだとエディタが限定されるので却下。

考えるまでもなくDropboxです。iCloudは再考の余地ありですが、新たにアプリを購入する気はないので今回は却下。ちなみにiCloud同期ならByword(iOS,Mac)を考えていました。

iOS側の不満

次はiOS側の不満。これもEvernote同期を使わない時点でATOK Padも使えないので、URLスキームの実装されたDropbox同期アプリから選ぶことになる。そういうのなら無駄にいっぱい持ってる。

Dropbox内に保存できたらいいだけなので、作成は考えなくてもいい。Textforceならブックマークですぐ呼び出せるし。検索まで考えたらNotesyがいいか。

使うアプリを選ぶ

何を使うかなと思っていたらこんな記事を見つけた(英語)。
James’ Ubiquitous Blog – Journal – Using Dropbox to sync notes between nvALT & Notesy

Mac用アプリのnvALTとiOSアプリのNotesyをDropbox同期して使うという内容。nvALTはSimplenoteと同期するアプリだけど、作業フォルダをDropboxフォルダ内にすればそりゃいけるよなーと感心した。同じやり方で、不完全だけどiCloud同期もできたりする。

nvALTは同期機能があるので、他の環境でファイルを操作した時の挙動がちゃんと用意されています。Notesy側でファイルを削除したら、nvALT側でファイルを復旧するかとか聞いてくれる。これは安心。

nvALTは軽いしメニューバーに常駐させてホットキーで呼び出す使い方もできる。Markdownプレビューができるし、作成するファイルタイプを指定できる。外部エディタを指定したら他のエディタで編集もできる。URLはクリッカブル。

Notesyは作業フォルダ内の全ファイルをキャッシュしてくれる。その後の操作が早いし、全文検索もできる。URLスキーム対応は万全。画像やPDFや音楽や動画ファイルを表示してOpen inで渡せたりもします。そんな使い方する人はいないでしょうが。

ということでMac側はnvALT、iOS側はNotesyを使う事に決定。

やり方

Notesyは特に変更する必要がありません。nvALTは設定が必要です。説明は上記のリンク先にありますが、ここでも書いておきます。

nvalt_settings01

まずは作業フォルダを変更します。nvALTの設定からNotesタブを開きます。Other…をクリックするとファイルダイアログが開くので、Dropboxフォルダ内のnotesyフォルダを選択する。違うアプリを使う人はそのフォルダに。

nvalt_settings02

それから、その下にあるStorageタブをクリック。保存方法が選択できるのでPlain Text Files *を選択してください。

その下にExtensionという一覧があるので、nvALTのファイル一覧に表示したいファイルの拡張子を追加してください。ここにない拡張子のファイルは非表示になります。

追加ボタンが非表示になっていますが、 – の左隣をクリックすると追加できます。一覧から拡張子を選択してチェックマークのボタンクリックで、作成するファイルのデフォルト拡張子を設定できます。Notesy側も変更したい時は、Notesyの設定→AdvancedからDefault File Extensionを変更してください。

同期設定は以上です。以下はお好みで。

nvalt_settings03

俺はメニューバーに常駐させてホットキーで呼び出したいのでGeneralタブの設定も変更しました。あとは、ウィンドウを閉じてもアプリが終了しないようにチェックを外した。ホットキーはとりあえずF2に設定。

注意点

nvALTは元々ローカルのみか、Simplenoteと同期して使うように作られています。その為仕様が合わせられており、フォルダ分類せずにタグで分類します。notesyフォルダ内に作成したフォルダはnvALTの一覧に表示されません。

Notesy側ではnvALTで付けたタグが使えません。

ただ、これらを逆に利用することもできます。古くなったファイルはアーカイブ用のフォルダを作って入れておけばファイル一覧がスッキリします。Mac版だけタグで分類しても十分役に立ちます。
(注: nvALT・Notesy共にファイルの移動機能はありません)

あとがき

このやり方に変えて2日経ちました。かなり快適です。nvALTは速攻で起動するし、iPhone側なら作成はNotesyでなくてもいいので、即メモ環境を作るのは簡単です。どちらも書くまでの待ち時間がほぼ無いので快適になりました。

MacとiOSの同期だけ考えたらiCloudが一番楽だし早いですが、好きなエディタを使いたいのでこんな面倒くさいことに。一度環境を作ってしまえば後が楽なのは俺好みです。