[Centaur] markdown 预览支持语法高亮和各类图

最近有同事想在 markdown 文档中画图,建议 Centaur Emacs 增加这个功能。经过几个小时研究,昨天实现了这个功能,当然只是基本功能。

几点说明:

  1. 尽量使用markdown-mode内置功能,不支持实时预览。
  2. 必须使用 multimarkdown 导出 html。其他渲染引擎(比如 markdown、markdown2、pandoc等)效果差异太大,暂不支持。
  3. 语法高亮使用highlightjs
  4. 图渲染引擎使用 mermaid.js
  5. 所有 css 和 js 库都使用远程加载。如有需要,可自行修改相关变量加载本地库实现完全离线预览。
  6. 由于 Grip 和 GitHub API 本身的限制,该功能目前无法集成到 grip-mode
  7. 优先使用内置的 webkit xwidget 预览,没有该功能使用系统默认浏览器预览。
  8. 因为不是独立包,不提供过多的配置选项。有能力的可自行修改和覆盖相关变量。

12赞

这个确实很秀

题外话,我想问问Centaur Emacs默认主题是什么,还有图片里的字体叫什么啊?~~~

mermaid.js 这个库很优秀啊,我看看要不要弄到EAF里面去,哈哈哈哈。

对,多方考察,目前 mermaid 确实是最好用的。EAF 集成应该很容易

主题:doom-one 字体:SF Mono

1赞

从今天开始,Emacs里面可以运行任何你想要的程序 (Only Linux) Done

EAF自己处理 makrdown 到 mermaid div 格式的装换,现在做干特图很爽了。

GitHub 上似乎不支持中文?

graph TD
	A[胎压] -->| psi? | B(快拆 花鼓 把立)
	B --> C{刹车}

你是怎么配置使用的?贴出来看看哪里有问题

神了,自己修复了? :sweat_smile:

这个功能很赞,大佬有没有计划整理一个独立的包出来啊?

一个相关的包,通过 org-babel 生成。https://github.com/arnm/ob-mermaid

参考大佬的配置,已经实现Markdown 和 org-mode写各种图了。赞 :+1: :+1:

有用就好,enjoy

@seagle0128 请问下你在Mac 上现在用哪个版本的emacs? 能够支持xwidgets。我安装emacs-plus 老是报下面的错:

brew install emacs-plus@28 --with-jansson  --with-xwidgets
==> Downloading https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch
#=#=#
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Error: Failed to download resource "emacs-plus@28--patch"
Download failed: https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch

更新:这个是目前Mac系统下curl的一个bug,暂时还没修复。HomeBrew官网有一些解决方法,但不彻底。

牛逼。学习了。不过用Emacs为啥不用Org-mode

各有各的用处吧,markdown用在很多场合。

目前我用emacs-mac。xwidget支持使用emacs-plus没有问题,27和28都用过。没有遇到过你这个问题

多谢,我也一直用的是emacs-mac,看来还是不折腾xwidget了。用Chrome预览其实效果也挺好。
另外,请问下Org下能否实现和Markdown 一样通过浏览器预览? 目前我用的org-babel 只能将mmd代码块生成单张图片,能否也将导出的html加上相应的css?

我在用 emacs-plus with xwidgets,这个报错是你访问 raw.githubusercontent.com 的问题。