这里列出了一些解决方案:http://wikemacs.org/wiki/Markdown#Live_preview_as_you_type。
纯 Emacs(几乎)的解决方案和简单的解决方案,不需要 Python 或 Nodejs 的额外库,是不耐烦模式。
不耐烦模式
它被设计为与 html 一起使用,但文档提供了一个技巧以使其与 markdown 一起使用。它也像一个魅力,但需要一个配置步骤:
- 使用
M-x package-install RET impatient-mode RET 安装不耐烦模式,前提是您已将 package.el 配置为使用 melpa 存储库。
- 使用
M-x httpd-start 启动 emacs 的 Web 服务器。
- 在您有兴趣实时预览的缓冲区中启动不耐烦模式:
M-x impatient-mode。
- 打开浏览器到 localhost:8080/imp。您将看到启用该模式的缓冲区列表。单击一个:您会看到缓冲区的实时渲染。
要启用 markdown 转换,我们遵循 wikemacs:
-
在某个地方定义这个 elisp 函数,比如在你的 init 文件中:
(defun markdown-html (buffer)
(princ (with-current-buffer buffer
(format "<!DOCTYPE html><html><title>Impatient Markdown</title><xmp theme=\"united\" style=\"display:none;\"> %s </xmp><script src=\"http://strapdownjs.com/v/0.2/strapdown.js\"></script></html>" (buffer-substring-no-properties (point-min) (point-max))))
(current-buffer)))
告诉不耐烦模式使用它:M-x imp-set-user-filter RET markdown-html RET。
- 回到您的浏览器,它可以工作了!
Flymd(不适用于 FF>=68)
编辑:感谢 cmets,flymd-fyit 在 Firefox 68 及更高版本中不起作用。
使用 package.el (M-x package-install RET flymd RET) 安装它,然后只需调用 M-x flymd-flyit。它打开带有渲染标记的浏览器。
我们可以启用/禁用自动重新加载和 github markdown 风格。
编辑:较新的解决方案,需要外部包。
livedown 模式(使用 npm)
https://github.com/shime/emacs-livedown 需要 livedown npm 包。另外,这个 emacs 包不在 MELPA 中,你必须在本地克隆它。否则,这是一个很好的轻量级解决方案。
Vmd 模式(npm,电子)
另一个解决方案是vmd-mode,它与vmd 节点包一起使用。这不是最重量级的解决方案:vmd 基于 Electron (!)。
Grip-mode(Python,Github 的速率限制)
另一个是grip-mode,它依赖于一个 Python 包:
pip install --user grip
M-x package-install grip-mode
然后在降价缓冲区中运行M-x grip-mode。它会在您的浏览器中打开一个新标签页。
不幸的是,在撰写本文时,它受到 Github 的速率限制。事实上,为了像 Github 一样精确地呈现内容,它调用了它的 API。它不会在本地呈现内容。因此,我们限制为每小时 60 个电话,这很少。看到这个问题:https://github.com/joeyespo/grip/issues/35