雑文発散

«前の日記(2015-04-07) 最新 次の日記(2015-04-09)» 編集
過去の日記

2015-04-08 [長年日記]

[Emacs] Emacs の中で Markdown を preview する(eww 編)

何かを調べていたら「emacsの中でmarkdownをpreviewする」というページに出会った。

この記事中では emacs-w3m を使っているけど、同じようなやり方であれば eww でもできるよなぁと思って、ちょっと試してみた。

(require 'markdown-mode)

(defun eww-open-file-other-window (file)
  (if (one-window-p) (split-window))
  (other-window 1)
  (eww-open-file file))

(defun markdown-preview-eww ()
  (interactive)
  (message (buffer-file-name))
  (call-process "/usr/local/bin/marked" nil nil nil
        "--gfm" "-o" "/tmp/marked.html" (buffer-file-name))
  (eww-open-file-other-window "/tmp/marked.html"))

元の記事から変えているところはこんな感じ。

  • emacs-w3m ではなく eww を利用
  • grip ではなく marked を利用
  • ウインドウ制御は簡略化(spilit-window しているだけ)
  • キーバインドは定義していないので M-x markdown-preview-eww で起動

見て分かるとおり、出力する HTML ファイル名が固定になっているので、制限事項がある。

動作環境は「Emacs を同時にひとりで使っており、編集+プレビューをしたい Markdown ファイルがひとつの場合」って感じかな。

そうじゃないと、他人が編集中の Markdown の内容がプレビューとして eww 内に表示され漏洩するるというセキュリティ問題が発生するのでお気をつけを。


実際のレンダリング結果はこんな感じになる(ウインドウ下部が eww の表示)

markdown-mode + eww

なんかこの程度の文章だと、わざわざ eww でプレビューする価値が無いかもなぁ(笑)

あと、リスト表示の後部にある赤いカーソルのように見えるヤツは「行末の余分なホワイトスペースは赤く表示する」というグローバル設定が効いているもの。marked でレンダリングした HTML ファイルに行末スペースが含まれているみたいだね。