EmacsでGithub Flavored Markdown
githubでは、当然のことながらはてな記法が使えないので、markdownでも使うか、ということでEmacsでmarkdownをウハウハするメモです。
Emacsにmarkdown-modeを入れる
markdown-mode.elは(Emacs Markdown Mode)からダウンロード可能です*1。このmarkdown-mode、なかなか最強です。
が、"C-c C-c m"などのプレビュー系のコマンドが
/bin/bash: markdown: command not found
というエラーが出て須らく失敗してしまいました。
原因は以下の2点でした。
- markdown実行ファイルが未インストール
- markdownのパスが解決できない
まず、markdownの変換プログラムが必要です。ちゃんとしたプレビューをしたいのであれば、何らかのGithub Flavored Markdown(GFM)処理系を入れる必要があります。RubyであればRedcarpet*2、Node.jsであればgh-markdown-cliを入れれば良さそうです。今回はgh-markdown-cliをインストールしました。
$ sudo npm install gh-markdown-cli -g
GFMでなくて良いのであれば、公式を使うなり、HomebrewでインストールするなりすればOKです。
次に、パスですが、何故か私の環境ではフルパスを指定しないと解決できませんでした。というのも、Shellでは/usr/local/binにパスが通っているのですが、Emacsでは通っていなかったようです。
Emacsでrbenvを使う環境変数PATHで手間取ったのでメモ | びーおーぷんどっとねっと
の通り、ザクっとパスを追加しておきます。
(dolist (dir (list "/sbin" "/usr/sbin" "/bin" "/usr/bin" "/opt/local/bin" "/sw/bin" "/usr/local/bin" (expand-file-name "~/bin") (expand-file-name "~/.emacs.d/bin") )) (when (and (file-exists-p dir) (not (member dir exec-path))) (setenv "PATH" (concat dir ":" (getenv "PATH"))) (setq exec-path (append (list dir) exec-path)))) ;; markdown-mode (add-hook 'markdown-mode-hook '(lambda() (setq markdown-command "mdown")))
markdown-commandにパーサをセットすると、それが変換時に使われるようになるようです。ソースコードが色付けされませんが、プレビューする分には上記で十分でしょう。
公式サイトにも書いてありますが、SmartyPantsを使いたいのであれば、パイプで渡せばOKです。