MarkdownをリアルタイムプレビューするためにGrip及びgrip-modeを試す。 Org-modeファイルも使えるため、今回はorg-modeを例とするが、基本的に使い 方は同じである。

Grip及びgrip-modeをインストールする

grip-modeは内部でGripというツールを使用している。このGripがリアルタイ ムレンダリングの機能を提供している。GripはPythonで実装されているので、 pipを用いてインストールする。

pip install grip

さらに grip-mode をインストールする。 grip-mode はMELPAからインス トールできる。

(use-package grip-mode :ensure t :defer t)

リアルタイムプレビューを実行する

MarkdownやOrg-modeをカレントバッファの状態にして M-x grip-browse-preview を実行する。するとEmacsのバッファ上でリアルタイム プレビューが開始される。

grip-browse-previewはXwidget Webkitをバッファに貼り付ける

grip-browse-preview は内部で xwidget-webkit-browse-url を使う実装 になっている。=xwidget-webkit-browse-url= はEmacs上のバッファにWebkit を貼り付けることができる。それを用いてリアルタイムプレビューを実現して いる。


(defun grip--browse-url (url)
  "Ask the browser to load URL.

Use default browser unless `xwidget' is available."
  (if (and grip-preview-use-webkit
           (featurep 'xwidget-internal))
      (progn
        (xwidget-webkit-browse-url url)
        (let ((buf (xwidget-buffer (xwidget-webkit-current-session))))
          (when (buffer-live-p buf)
            (and (eq buf (current-buffer)) (quit-window))
            (pop-to-buffer buf))))
    (grip--browser url)))
grip-mode.el (抜粋)