Evernoteの個別記事をMarsEditに送るAppleScript「Ever2Mars」を作りました。
ダウンロードはこちらから
直接実行しても大丈夫ですが、LaunchBarやQuickSilverなどのランチャーから呼び出して使うと便利です。 Ever2Note.scpt※使用方法
- Evernoteを開きます。
- EvernoteからMarsEditに送りたい記事を個別ウィンドウで開いてください。
- Ever2Marsを実行
こんな風に動作します
[youtube]http://www.youtube.com/watch?v=bWuYiauX2tU[/youtube]開発理由:Evernoteからコピペするのがメンドクサイ
MarsEditを使い始めてから、ずっとEvernoteとMarsEdit両方に書きかけのネタが保存されていて、勝手が悪かったのでどちらかに統一したいなと検討。 バックアップや移動中にも編集が出来ることなどを考えてEvernoteにネタはまとめることにしたのですが、いざ、記事を書くとなると、タイトルをコピーしたり、本文をコピーしたり、メンドクサイことに気づいたのです。 ブログはこれからも書き続けていくので、その都度コピペを繰り返すのは嫌だと思いなんとか出来ないものかと考えたところ、どうやらMarsEditがAppleScriptに対応しているようだということが判明。 EvernoteがAppleScriptに対応していることは知っていたので、勉強を兼ねて作ってみることにしました。意外と速く完成
このアイディアをつぶやいたのが閃いた直後の約7時間前。 ここから作業を開始しました。Evernoteに記事をストックという前提で、Evernoteにストックする際にタグとかをつけるわけで、いざ記事を書く段階になったら、そのタグをMarseditに反映するようなプログラムあったらいいなとおもったり。したら書くの楽チンだな
途中で仕様変更
当初はEvernoteから当該ノートをHTML形式でエクスポートしてそのファイルをMarsEditで読み込ませようと考えていましたが、どうやらAppleScriptを使えば、わざわざHTML出力することなく、ノートのデータが取得できることが判明。 よって、該当ノートを選択→スクリプト実行→自動でMarsEditが立ち上がり、記事が流し込まれるという仕様に。 当初は記事の一覧で流し込みたい記事を選択してスクリプトを走らせれば、MarsEditにデータが流れるようにしたかったのですが、選択中のノート情報を取得する方法がわからなかったので断念。 一手間増えてしまいますが、一覧から一度開いて個別ウィンドウを立ち上げた状態でスクリプトを走らせる仕様になりました。製作時間・発言の推移
つぶやきながら作成w 途中でMarsEditのPreview用のテンプレートを編集したくなり2時間ほど、横道にそれる。 実質の作業時間は5時間程。 全然大したコードは書いていないのですが、探り探りだったので時間がかかってしまいました。 今回結構勝手がわかったので、ようやくUWSCから離れて、AppleScriptに移行していけそうです。ん!?ちょっと待てよ、EvernoteってHTMLでノートがエクスポートできたはず。ということはタグとかも反映されてるのか?mars editにペタって貼ればOK的な状況になるのか???ちょっと試してみる
なるほどHTMLでEvernoteを書きだすと,タグとかはメタタグで出力されんのか。なんかスクリプトみたいのでいけるきがしてきたな。誰かEvernoteで出力したHTMLをMarsEditに流しこむスクリプト作ってくれないだろうか?この際だからAppleScript勉強してみるか
流れは、1下書き状態の記事(Evernote). 2 1を選択してHTMLでエクスポート。3 2でエクスポートしたHTMLをMarsEditに流す。あれ?Evernoteってスクリプト使えるんだっけ?もしそれなら、HTML出力とかしないでダイレクトにMarsEditいけるのかな?
意外と速く進んでる。今日中に公開出来るかも。つか需要あんのかな?
どなたか選択中(単体)のEvernoteのノートの値を取得するやり方ご存知の方いらっしゃいませんか? tell note 1 で値自体は取得できたんですけど、それだとノートブックの一番上のノートの情報だけなんですよ。任意に選択したノートの値を取得したい次第です。
意外と速く進んでる。今日中に公開出来るかも。つか需要あんのかな?
コードはこちら
初心者丸出しのコードですが、希望の動作は出来ているので、まずはこれで良しとします。 スーパープログラマの方が颯爽とやってきて、「こんな風にしたらどうだい?」ってな感じでコードを綺麗にしてくれるの待ってますw 置き換えの部分で使っている関数は http://www.tonbi.jp/AppleScript/tips/String/FindReplace.html で公開されているコードを拝借させていただきました。 [cc] tell application "MarsEdit" to activate --起動確認。MarsEditが起動していなければ起動 delay 1 tell application "Evernote" --Evernoteから情報を取得 activate tell window 1 tell note 1 set etitle to get title set tagC to get tags set tagL to length of tagC set tagB to "" repeat with i from 1 to tagL set tagT to (item i of tagC) set tagB to tagB & "," & name of tagT end repeat set content to get ENML content --余計なHTMLタグは無視し本文だけを抜き出す end tell end tell end tell set content to replaceText(content, "< ?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>", "") set content to replaceText(content, "", "") set content to replaceText(content, "< !DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">", "") set content to replaceText(content, "", "")
set content to replaceText(content, "
", "あとがき
ダウンロードはこちらから
Ever2Note.scpt ダウンロードいただけた方は是非Twitterなどでフィードバックをいただけると嬉しいです。 MarsEdit - the blog editor for WordPress, Tumblr, Blogger and more.カテゴリ: ソーシャルネットワーキング
価格: ¥3,450
Evernote
カテゴリ: 仕事効率化
価格: 無料