僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

AtomとEvernoteを連携するever-notedownを使う

Vimプラグインであるmemolistで作成した技術メモが大量にDropBoxに入っているのですが、 プレビューが面倒だなぁって思っていて、VimからMarkdownをプレビューできるPreVimを使ってもいるのですが、ワンクッションおくのでうーんと思っていました。

Qiitaのインターフェースは好きなので、じゃあKobitoでも使うかぁって思ったのですが、なんとなく却下。 #ひどい

で、最近回りの人達がAtomを使い始めたので、自分も使ってみようと思って手を出しています。

今はまだ、Atom自体でコーディングをするつもりにはなれませんが、一旦はEvernoteへの連携のために使ってみようと思い。

ということで、今回はAtomEvernote連携パッケージである、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

として最初のノートを開きます。

f:id:kazuph1986:20161223152803p:image

あとは、適当に編集して⌘Sで保存し、プレビューのEvernoteアイコンクリックで、Evernote側にも保存されます。

f:id:kazuph1986:20161223152812p:image

画像はどうなる?

最初自分で~/.atom/evnd 以下にインストールしないといけないのかなぁって思ったのですが、なんとFinderで画像を⌘Cした後に、編集エリアで⌘V するだけでした!!

f:id:kazuph1986:20161223152828p:plain

最高か。

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自体の表示はデフォでもかなりいい感じにハイライトされてますね。右のプレビューもいい感じです。

f:id:kazuph1986:20161223152816p:image

ではEvernote自体ではどうでしょうか?

f:id:kazuph1986:20161223152757p:image

いい感じです!当たり前かもですがプレビューと同じ見た目ですね。

ついでですが、先程の画像もちゃんとアップロードされて思った通りの場所に貼ってあります。

f:id:kazuph1986:20161223152822p:image

Evernote側を修正したらどうなる?

当然気になるやつですよね。

Evernote側を修正してみます。

f:id:kazuph1986:20161223152245p:plain

ありゃ、壊れちゃいました。

ただ、よく見ると単に全体が`<div>`で囲われただけで、エディタ側`<div>`を削除したら直りました、、、と思ったら色々コード部分の改行がおかしくなったりしているので、やらない方がいいかなと思いました。気が向いたら直します。

ご利用は計画的にという感じですが、ever-notedownが結構作り込まれていることがわかります。

Evernoteからはてなに投稿する

最初みたままモードからのコピペしかない?って思ったのですが、そのままやっても画像が反映されず。まあそうですよねーって思ってたのですが、なんと連携が可能みたいです。

f:id:kazuph1986:20161223152837p:plain

まず、はてなの記事編集画面を開き右にある設定から探すとEvernote連携があることがわかります。 ONにするとEvernoteの記事一覧が出てきて、貼り付けってするとべべってコピペされました。

f:id:kazuph1986:20161223152840p:plain

画像も最初は表示されませんが、徐々にアップロードされます。

ちなみにMarkdownモードやると完全に壊れて使い物にならないので、みたままモードでやるといいです。

当然ですが、AtomからEvernoteに保存したあとに、Evernote側でクラウドとの同期が終わっている必要があります。

まとめ

ever-notedown いい感じです。

実際この記事はever-notedownで書きましたが、個人Qiitaを手に入れたような快適さでした。

皆様も是非。

[Note ID: f91a1095ca8ec708f5908722220b6b32]

2016-12-23 15:27:15