Quantcast
Channel: http://highhigherhighest.com/ » Script
Viewing all articles
Browse latest Browse all 4

Ever2Mars 〜Macなブロガー必見!?Evernoteにストックしたブログネタを一瞬で MarsEditに転送するAppleScript〜を作りました。

$
0
0

Screen-Shot-2011-08-22-at-10.09.01-AM.jpg

Evernoteの個別記事をMarsEditに送るAppleScript「Ever2Mars」を作りました。

Ever2mars

ダウンロードはこちらから

直接実行しても大丈夫ですが、LaunchBarやQuickSilverなどのランチャーから呼び出して使うと便利です。 Ever2Note.scpt

※使用方法

  1. Evernoteを開きます。
  2. EvernoteからMarsEditに送りたい記事を個別ウィンドウで開いてください。
  3. Ever2Marsを実行
実行すると自動でMarsEditが立ち上がり、Evernoteから取得した記事の内容をMarsEditに反映させるとEvernote側の個別ウィンドウは閉じるようにしてあります。 ※注意事項
  • Evernoteの個別記事ウィンドウを開いていない状態で実行すると選択中のノートブックの一番最初のノートの内容でMarsEditに記事が作成され、その後Evernoteのメインウィンドウが閉じます。
  • divタグはpタグに変換するようにしてあります。
  • Evernote内の記事に含まれる画像は反映されません。 手動でMarsEditに取り込む必要があります。
  • EvernoteのタグはMarsEditのタグの欄に入るようにしてあります
  • このスクリプトを使用は自己責任でお願いいたします。 使用に伴い発生した如何なる不具合の責任も追うことは出来ません。
  • こんな風に動作します

    [youtube]http://www.youtube.com/watch?v=bWuYiauX2tU[/youtube]

    開発理由:Evernoteからコピペするのがメンドクサイ

    MarsEditを使い始めてから、ずっとEvernoteとMarsEdit両方に書きかけのネタが保存されていて、勝手が悪かったのでどちらかに統一したいなと検討。 バックアップや移動中にも編集が出来ることなどを考えてEvernoteにネタはまとめることにしたのですが、いざ、記事を書くとなると、タイトルをコピーしたり、本文をコピーしたり、メンドクサイことに気づいたのです。 ブログはこれからも書き続けていくので、その都度コピペを繰り返すのは嫌だと思いなんとか出来ないものかと考えたところ、どうやらMarsEditがAppleScriptに対応しているようだということが判明。 EvernoteがAppleScriptに対応していることは知っていたので、勉強を兼ねて作ってみることにしました。

    意外と速く完成

    このアイディアをつぶやいたのが閃いた直後の約7時間前。 ここから作業を開始しました。

    Evernoteに記事をストックという前提で、Evernoteにストックする際にタグとかをつけるわけで、いざ記事を書く段階になったら、そのタグをMarseditに反映するようなプログラムあったらいいなとおもったり。したら書くの楽チンだなless than a minute ago via Twitter for Mac Favorite Retweet Reply

    途中で仕様変更

    当初はEvernoteから当該ノートをHTML形式でエクスポートしてそのファイルをMarsEditで読み込ませようと考えていましたが、どうやらAppleScriptを使えば、わざわざHTML出力することなく、ノートのデータが取得できることが判明。 よって、該当ノートを選択→スクリプト実行→自動でMarsEditが立ち上がり、記事が流し込まれるという仕様に。 当初は記事の一覧で流し込みたい記事を選択してスクリプトを走らせれば、MarsEditにデータが流れるようにしたかったのですが、選択中のノート情報を取得する方法がわからなかったので断念。 一手間増えてしまいますが、一覧から一度開いて個別ウィンドウを立ち上げた状態でスクリプトを走らせる仕様になりました。

    製作時間・発言の推移

    つぶやきながら作成w 途中でMarsEditのPreview用のテンプレートを編集したくなり2時間ほど、横道にそれる。 実質の作業時間は5時間程。 全然大したコードは書いていないのですが、探り探りだったので時間がかかってしまいました。 今回結構勝手がわかったので、ようやくUWSCから離れて、AppleScriptに移行していけそうです。

    ん!?ちょっと待てよ、EvernoteってHTMLでノートがエクスポートできたはず。ということはタグとかも反映されてるのか?mars editにペタって貼ればOK的な状況になるのか???ちょっと試してみるless than a minute ago via Twitter for Mac Favorite Retweet Reply

    なるほどHTMLでEvernoteを書きだすと,タグとかはメタタグで出力されんのか。なんかスクリプトみたいのでいけるきがしてきたな。誰かEvernoteで出力したHTMLをMarsEditに流しこむスクリプト作ってくれないだろうか?この際だからAppleScript勉強してみるかless than a minute ago via Twitter for Mac Favorite Retweet Reply

    流れは、1下書き状態の記事(Evernote). 2 1を選択してHTMLでエクスポート。3 2でエクスポートしたHTMLをMarsEditに流す。あれ?Evernoteってスクリプト使えるんだっけ?もしそれなら、HTML出力とかしないでダイレクトにMarsEditいけるのかな?less than a minute ago via Twitter for Mac Favorite Retweet Reply

    意外と速く進んでる。今日中に公開出来るかも。つか需要あんのかな?less than a minute ago via Twitter for Mac Favorite Retweet Reply

    この機能は今回見送り↓

    どなたか選択中(単体)のEvernoteのノートの値を取得するやり方ご存知の方いらっしゃいませんか? tell note 1 で値自体は取得できたんですけど、それだとノートブックの一番上のノートの情報だけなんですよ。任意に選択したノートの値を取得したい次第です。less than a minute ago via Twitter for Mac Favorite Retweet Reply

    意外と速く進んでる。今日中に公開出来るかも。つか需要あんのかな?less than a minute ago via Twitter for Mac Favorite Retweet Reply

    コードはこちら

    初心者丸出しのコードですが、希望の動作は出来ているので、まずはこれで良しとします。 スーパープログラマの方が颯爽とやってきて、「こんな風にしたらどうだい?」ってな感じでコードを綺麗にしてくれるの待ってます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, "
    ", "") set content to replaceText(content, "
    ", "
    ") set content to content & "

    あとがき

    " tell application "System Events" --MarsEditで新規記事を起動 tell process "MarsEdit" activate tell menu bar 1 tell menu "File" pick menu item "New Post" end tell end tell end tell end tell delay 1 tell application "MarsEdit" --MarsEditにEvernoteで取得した情報を流しこむ。 set title of document 1 to etitle set tags of document 1 to tagB set body of document 1 to content activate end tell tell application "Evernote" close window 1 --開いた個別記事のウィンドウを閉じる end tell --置換用関数(引用) on replaceText(theText, serchStr, replaceStr) set tmp to AppleScript's text item delimiters set AppleScript's text item delimiters to serchStr set theList to every text item of theText set AppleScript's text item delimiters to replaceStr set theText to theList as string set AppleScript's text item delimiters to tmp return theText end replaceText [/cc]

    ダウンロードはこちらから

    Ever2Note.scpt ダウンロードいただけた方は是非Twitterなどでフィードバックをいただけると嬉しいです。 MarsEdit - the blog editor for WordPress, Tumblr, Blogger and more. App
    カテゴリ: ソーシャルネットワーキング
    価格: ¥3,450
    Evernote App
    カテゴリ: 仕事効率化
    価格: 無料

    あとがき

    他にもAppleScriptは作ってるんですが、ネタはあるんだけどグッとくるネタがなくてここ何日か悶々としてました。 そのかわり、Evernoteにネタを集約したりとかそういう自分の中での決め事を色々決めたり、修正したりしてたのですが、Twitterは毎日やってるからこっちと並行して日刊をやろうかなと思います。 日刊は基本毎日更新だけど、自分のTwitterの発言をまとめたりするもっとゆるい感じにしようかなと。 このブログもタイトル「ライフログ」なんですけどねw

    Viewing all articles
    Browse latest Browse all 4

    Trending Articles