AtomとEvernoteを連携するever-notedownを使う
Vimのプラグインであるmemolistで作成した技術メモが大量にDropBoxに入っているのですが、 プレビューが面倒だなぁって思っていて、VimからMarkdownをプレビューできるPreVimを使ってもいるのですが、ワンクッションおくのでうーんと思っていました。
Qiitaのインターフェースは好きなので、じゃあKobitoでも使うかぁって思ったのですが、なんとなく却下。 #ひどい
で、最近回りの人達がAtomを使い始めたので、自分も使ってみようと思って手を出しています。
今はまだ、Atom自体でコーディングをするつもりにはなれませんが、一旦はEvernoteへの連携のために使ってみようと思い。
ということで、今回はAtomのEvernote連携パッケージである、ever-nodedownを使ってみます。
ソースコードもハイライトされてものがEvernoteにアップロードされるので、とても便利ですよ。
ever-notedownのインストール
atomにはコマンドラインを用いてパッケージをインストールする方法があることは知っているのですが、いやGUIだからむしろじゃまでしょ??って思って、普通に設定から入れます。
⌘,
で設定を開いて +install
からインストールします。
一応公式の手順があるので、それに従いましたがgitでの管理が必須化はわかりません。
$ ln -s path/to/your/folder ~/.atom/evnd$ cd ~/.atom/evnd$ echo "{}" > index.json$ cd path/to/your/folder$ git init------ Optional ------$ git add .$ git commit -m "Initial commit"
バグを修正する(日本語環境だけ?)
ということで、いきなりバグを踏みました。 もしかしたら海外のMacでは正常に動作するのかもしれませんが、僕の手元の環境ではだめでした。
cd~/.atom/packages/ever-notedownvim lib/evernote-helper.coffee
以下の様に変更して下さい。
- cmd += "\tset newDate to date (m & \"/\" & d & \"/\" & y)"+ cmd += "\tset newDate to date (y & \"/\" & m & \"/\" & d)"
AppleScriptのdate関数に食わせる年月日の順番が違いました。
また、どうやらEvertnoteのnotebook対応が微妙だったみたいなので、その部分も修正します。
vim lib/note-prototypes/note-base.coffee
- if options.notebook and @notebook? then queryString += " notebook:\"#{@notebook.name}\""+ if options.notebook and @notebook? then queryString += " notebook:\"受信箱\""
ever-notedownで作成した記事にNotebookを指定する箇所があるのですが、自分の場合はそこを指定してもお望みのノートブックへは保存できませんでした。悲しい。
僕がたまたまメインのBoxを受信箱にしているのでそうしましえ。 これで問題なく動きます。
使ってみる
ちなみにEvernoteもインストールされてないとだめです。
最初WebAPIを使って同期するのかな?と思ったら、Macに入れたデスクトップ版Evernoteアプリに対してAppleScript経由で操作をしているようでした。
AtomのMenu > Packages > Ever Notedown > New Note > Create Note NoteB
として最初のノートを開きます。
あとは、適当に編集して⌘Sで保存し、プレビューのEvernoteアイコンクリックで、Evernote側にも保存されます。
画像はどうなる?
最初自分で~/.atom/evnd
以下にインストールしないといけないのかなぁって思ったのですが、なんとFinderで画像を⌘C
した後に、編集エリアで⌘V
するだけでした!!
最高か。
Evernote上での見た目
試しにソースコードを貼ってみます。
## TODO: Implement this!##@subscriptions.add atom.config.observe 'ever-notedown.renderDiagrams', (toRender) =># if toRender and not window.evnd.chartsLibsLoaded# chartsHelper ?= require './charts-helper'# chartsHelper.loadChartsLibraries() @subscriptions.add atom.config.onDidChange 'ever-notedown.gitPath', (event) => newGitPath = event.newValue reloadGitRepo = => @loadGitRepo newGitPath, null, (newStorageManager) => if newStorageManager? window.evnd.storageManager = newStorageManager @loadJSON (newNoteIndex) => window.evnd.noteIndex = newNoteIndex if window.evnd.evndView? then window.evnd.evndView.refresh() window.evnd.gitPath = newGitPath dmsg = "Changing git repo path for EVND to #{newGitPath}" if atom.config.get('ever-notedown.gitPathSymlink') then dmsg += " (symbolic link)" atom.confirm message: dmsg + "?" buttons: "Confirm": => reloadGitRepo() "Cancel": => return "Revert": => atom.config.set 'ever-notedown.gitPath', event.oldValue
Atom自体の表示はデフォでもかなりいい感じにハイライトされてますね。右のプレビューもいい感じです。
ではEvernote自体ではどうでしょうか?
いい感じです!当たり前かもですがプレビューと同じ見た目ですね。
ついでですが、先程の画像もちゃんとアップロードされて思った通りの場所に貼ってあります。
Evernote側を修正したらどうなる?
当然気になるやつですよね。
Evernote側を修正してみます。
ありゃ、壊れちゃいました。
ただ、よく見ると単に全体が`<div>`で囲われただけで、エディタ側`<div>`を削除したら直りました、、、と思ったら色々コード部分の改行がおかしくなったりしているので、やらない方がいいかなと思いました。気が向いたら直します。
ご利用は計画的にという感じですが、ever-notedownが結構作り込まれていることがわかります。
Evernoteからはてなに投稿する
最初みたままモードからのコピペしかない?って思ったのですが、そのままやっても画像が反映されず。まあそうですよねーって思ってたのですが、なんと連携が可能みたいです。
まず、はてなの記事編集画面を開き右にある設定から探すとEvernote連携があることがわかります。 ONにするとEvernoteの記事一覧が出てきて、貼り付けってするとべべってコピペされました。
画像も最初は表示されませんが、徐々にアップロードされます。
ちなみにMarkdownモードやると完全に壊れて使い物にならないので、みたままモードでやるといいです。
当然ですが、AtomからEvernoteに保存したあとに、Evernote側でクラウドとの同期が終わっている必要があります。
まとめ
ever-notedown いい感じです。
実際この記事はever-notedownで書きましたが、個人Qiitaを手に入れたような快適さでした。
皆様も是非。