何かを調べていたら「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"))
元の記事から変えているところはこんな感じ。
spilit-window
しているだけ)M-x markdown-preview-eww
で起動見て分かるとおり、出力する HTML ファイル名が固定になっているので、制限事項がある。
動作環境は「Emacs を同時にひとりで使っており、編集+プレビューをしたい Markdown ファイルがひとつの場合」って感じかな。
そうじゃないと、他人が編集中の Markdown の内容がプレビューとして eww 内に表示され漏洩するるというセキュリティ問題が発生するのでお気をつけを。
実際のレンダリング結果はこんな感じになる(ウインドウ下部が eww の表示)
なんかこの程度の文章だと、わざわざ eww でプレビューする価値が無いかもなぁ(笑)
あと、リスト表示の後部にある赤いカーソルのように見えるヤツは「行末の余分なホワイトスペースは赤く表示する」というグローバル設定が効いているもの。marked
でレンダリングした HTML ファイルに行末スペースが含まれているみたいだね。