1. madever
Evernote for MacでMarkdownを利用できるようにするAppleScript。
Markdown文書からEvernoteのリッチテキストに変換したり、EvernoteのリッチテキストからMarkdown文書に変換したりといったことができる。
このように、Evernoteクライアント上で構造化されたデザイン文書を作成することが可能で、デザインは自分でカスタマイズできる。
2. installing
cd ~/Library
mkdir Scripts
cd Scripts
git clone git://github.com/sandai/madever.git
or
https://github.com/sandai/madever/zipball/master
gitを利用していなければ上記のURLから普通にダウンロード。ダウンロードできたら解凍してできたディレクトリの名前をmadever
に変更して、
~/Library/Scripts
に配置。~/Library
はOS X Lion以降であれば隠しフォルダになっていると思うので、こちらを参考にして見つける。
madeverディレクトリは~/Library/Scripts
以下に置かなければ正しく動作しないので注意。
最終的に、~/Library/Scripts/madever
のようなディレクトリ構造になっていれば問題ない。なお、~/Library/Scripts
ディレクトリが存在しなければ自分で作成する。
2.1. Pandoc
madeverではmarkdownやリッチテキストの変換処理をPandocというコンバータを利用してるので、それを別途インストールする必要がある。その方法を以下に2つ挙げる。
2.1.1. Homebrew
% brew install haskell-platform
% cabal update
% cabal install pandoc
次に.zshrcにパスを通す。(madeverはパスが通っていなくても問題はない)
PATH=$HOME/.cabal/bin:$PATH
2.1.2. Installer
http://code.google.com/p/pandoc/downloads/list
Hombrewなどパッケージ管理システムを利用していなければインストーラを利用すると良い。
2.1.3. 上記以外の方法でインストールしている場合
madever側のスクリプトでは~/.cabal/bin/pandoc
と/usr/local/bin/pandoc
のpandocは自動で利用できるようにしているが、それ以外のパスであれば対応できていない。
その場合は自分でパスを設定する必要がある。madever/madever.scpt
をAppleScriptエディタで開いて、
任意のパスを記述してほしい。
4. use
Evernoteでmarkdownやリッチテキストを変換するにはmadeverディレクトリにあるmadever/madever.scpt
を実行する。実行方法はいくつかあるが最も基本的だと思われる方法を以下に3挙げる。
個人的には3つ目のSparkを推奨する。
4.1. メニューバーから実行
AppleScriptエディタ.appを開いて環境設定画面のチェックを画像のように入れる。
するとメニューバーにスクリプトのアイコンが表示されるのでそこからmadeverが実行できる。
4.2. Alfredから実行
Alfredはランチャーアプリ。appstoreからインストールできる。インストールしたらメニュバーの「Preferences…」を次のように設定する。
あとはホットキーを押して下の画像のように呼び出すと実行できる。
4.2.1. Alfredで利用できない場合
Alfredはspotlightのインデックスを利用している。よって、~/Library
がspotlightの対象外であればサーチにひっかからず呼び出せない。この現象はOS X Lionで確認済みだが以前のバージョンでも同じかもしれない。
その場合ホームディレクトリなどspotlightの対象に該当する適当な場所にmadeverディレクトリを置いて、シンボリックリンクを~/Library/Scripts/madever
に張るようにすれば良い。
ln -s ~/madever ~/Library/Scripts/madever
4.3. Sparkから実行(推奨)
Sparkはホットキーアプリ。これを利用すればショートカットでスクリプトを実行することが可能となるので、スクリプトを意識せずにネイティブな機能のように変換することができる。個人的にはこの方法を推奨する。
- 導入の参考ページ
4.3.1. 導入例
ショートカットを⌘R
に設定してmadever.scpt
を選択すれば、Evernote上で ⌘R
を押すと実行できるようになる。
4.3.2. SparkでLibraryディレクトリが見つからない場合
OS X Lion以降であれば下の画像のようにLibraryディレクトリがSparkで表示されていないかもしれない。
その場合は、こちらの方法でまずFinderでLibraryディレクトリを表示して、ScriptsディレクトリをDrag&DropでSparkのウィンドウに持っていけばmadeverディレクトリが表示される。
4.4 madeverの操作
上記のいずれかの方法でmadever.scpt
を実行すると、下の画像のように文書をmarkdownにするかhtml(リッチテキスト)にするかダイアログが表示されるので、どちらかを選択すればあとは自動で全て行われる。
5. theme
madeverでは自分で文書のデザインをCSSによって作成することができる。作成したはテーマはmadever/themes
以下にテキスト形式で保存し、loadteheme.scpt
を編集することで利用できるようになる。
5.1. テーマの作成
madever/themes/template.txt
をコピーして名前を変更し適当なエディタで編集する。
事前に利用できるセレクタは限られているので、テンプレートの通りにセレクタを利用しプロパティを設定して欲しい。
5.1.1. 書式
基本的にはCSSと代わりないが独自の形式で記述する。形としては次のような形式となるが、よくわからなければ他のテーマの記述を参考にすると良い。
body
property 1
property 2
h1
property 1
property 2
property 3
-- コメントは行頭で--を使うことで利用できる
h2
property 1
property 2
property 3
property 4
上記のような形で記述する必要がある。
- あらかじめきめられたセレクタだけを利用する
- セレクタの上は1行だけ開ける
- プロパティ同士は離さない
これらのことを守れば問題はない。
5.1.2. テーマの保存
作成したテーマはmadever/themes
以下に保存する。ファイル形式は他のテーマでも.txt
になっているがテキストファイルとして扱えるなら何でも構わない。
5.2. テーマの変更
テーマを変更するにはmadever/loadtheme.scpt
をAppleScriptエディタでを開きproperty filename: ""
に変更したいテーマのファイル名を指定して保存すれば変更される。
5.3. 作成したテーマを利用する前に
テーマを作成した後はmadever/test/test.md
のテキストをEvernoteにコピーして試してみると良い。
6. Markdown Guide of madever
madeverで利用できるMarkdown記法は基本的に通常の記法と違いはないが、Pandocに依存しているためいくつか異なる部分があること、そして、画像の扱いはMarkdown記法を使う必要がない部分で異なる。
6.1. PandocのMarkdown記法
コンバータのPandocに依存しているため通常のMarkdown記法とはいくつか異なる部分がある。
6.1.1. リストに行が空く
http://johnmacfarlane.net/pandoc/README.html#compact-and-loose-lists
たとえば、
- list 1
- list 2
- list 2 - 1
- list 2 - 2
- list 2 - 2 - 1
- list 2 - 2 - 2
- list 2 - 3
- list 2 - 4
- list 3
- list 4
のように書いてリッチテキストに変換したあと、再度markdownに変換したときに、
- list 1
- list 2
- list 2 - 1
- list 2 - 2
- list 2 - 2 - 1
- list 2 - 2 - 2
- list 2 - 3
- list 2 - 4
- list 3
- list 4
このような形で変換される。
6.1.2. 引用のネスト
http://johnmacfarlane.net/pandoc/README.html#block-quotations
> 文章
>
> > ネストされた引用を扱うためには上に一行あけるようにする
少し通常と書き方が異なるので注意。詳しくは上記URL先を参照。
6.1.3. tableのalign
リッチテキストからmarkdownに戻したときにalign属性が無効となる。そもそもmarkdownで表を書くのはおすすめしないので、あまり問題はないと思われるが。
6.2. 画像はそのまま挿入できる
Markdown記法では画像を挿入する場合以下のように記述する。
![](image.png)
madeverでもこの記述に対応しているが、Drag&Dropで挿入した画像でも問題なく扱えるようになっている。
以下の画像のようにmarkdownの文書でも画像はDrag&Dropして文書に挿入すれば、リッチテキストに変換してもそのまま表示されるようになっている。
6.3. 結局どうすればいいか
- リストは空行ができること
- 引用のネストは通常と異なること
- 画像はMarkdown記法で挿入しなくても良いこと
これらのことがわかれば基本的に問題ない。
Contact
History
- 08/10/2012
- pandocが~/.cabal/bin以下にない場合に動作が止まるバグを修正
- 21/07/2012
- themeにコメントをつけられるようにした
- 行頭で--から始まる行をコメントとして処理する
- themeにコメントをつけられるようにした
- 28/06/2012
- html(リッチテキスト)のときのimgにcssが適用できていなかったので修正
- どうやらEvernote側の仕様でimgタグのスタイル属性は排除されるらしいので、divで囲って適用させた
- html(リッチテキスト)のときのimgにcssが適用できていなかったので修正
- 25/06/2012
- htmlからmarkdownにしたときに改行の表記をバックスラッシュからスペース2つに変更
- 既にテーマが適用されているノートで、別のテーマを設定してmarkdownに変換した場合に一部のcssが残ってしまうバグを修正
- 21/06/2012 公開