chatu(插图) - 在 orgmode 和 markdown-mode 快速插图

新年好呀。 之前做了个 org-drawio 只支持在 orgmode 里插入 drawio 导出的图片。 现在这个 chatu.el 扩展下功能,可以从 drawio、plantuml 导出图片,或者用 curl 下载图片,或者通过 babashka 脚本生成图片。最后插入到 orgmode 或者 markdown 中去。

插件代码:

效果预览:

orgmode

markdown

视频演示:

欢迎帮忙测试、修改。

欢迎添加其他的图片转换功能。

比如,你要添加支持 excalidraw 的话,只要像像 chatu-drawio.el 一样,添加一个 chatu-excalidraw.el ,然后增加两个函数:

  • chatu-excalidraw-script 用来拼出导出图片的 shell 脚本
  • chatu-excalidraw-open 用来打开原始文件
18 个赞

祝您 新年快乐,龙年腾飞!

能否增加, 导入后, 快速按 年月, 快速归档到 指定目录

龙年好!

因为格式转换的时候用了异步操作,set-process-sentinel 不知道怎么传参数到 sentinal 里去。 如果放在外面的话,图片还没生成,也没法 archive

(use-package chatu
  :load-path "~/.emacs.d/site-lisp/chatu"
  :hook ((org-mode markdown-mode) . chatu-mode)
  :commands (chatu-add
             chatu-open)
  :custom ((chatu-input-dir "./draws")
           (chatu-output-dir "./images")))

添加 chatu-mode

  • C-c C-c (orgmode),C-c C-c C-c (markdown-mode),插入导出图片
  • C-c C-o 打开原始文件

视频演示

添加两个选项

  • :crop
  • :nopdf

#+chatu: :drawio "diagram.drawio" :crop :nopdf

这样写的插图行的话,就不生成临时的 pdf 文件,并剪裁图片。

视频演示:

添加支持 R 语言

视频演示:

添加支持 Clojure

视频演示

添加 LilyPond 乐谱图片

视频演示

合着 clj-chart 也是你写的是吧

嗯,是的。简单封装了下 java 的 xchart

chatu-mode 添加支持 python 生图

视频演示:

4 个赞

这个python插图和org-babel有什么区别吗

org-babel的代码在orgmode buffer里,chatu-mode 的代码是在独立的python文件里。

请问这个能用来插入电路图吗?

(我找到了 [新插件] org-xournal 在org-mode中快速插入手写笔记 利用 xournalpp 插入手写笔记,不过手画复杂一点的电路图还是不太方便。)

以及如果能扩展一个 imagemagick 作为后端来处理本地图片文件,是不是就能解决 求助:org-mode 图片反色显示 - Org-mode - Emacs China 了?

只要有处理图片转换的命令行工具的话,什么都能转。 你能提供工具使用信息吗?

谢谢回复!imagemagick 对应的命令是 convert,例如将 a.png 反色处理,生成 b.png

convert a.png -negate b.png

imagemagick 的更多用法可参见 convert --helpman convert,或者 Linux 中国的这篇文章,或者 imagemagick 官网

此外 imagemagick 还提供 mogrify 命令,它会直接修改原文件而不是输出为另一个文件。

这个好处理的。插入电路图是不是需要特殊应用呀。

1 个赞

不好意思,是我没表达清楚。不需要特殊应用。

我之所以问电路图的事,是因为我对于除 xournalpp 这种手绘以外的电路图制作方面不熟悉,而 chatu 同时提供了多种绘图方法,具体用哪种画电路(或者都不用,而是用 latex 代码块的 tikz 包)让我感到茫然。目前我打算尝试 draw.io

我之前尝试过tikz画电路图。或许可以扩展chatu支持tikz

1 个赞

添加了一个叫 chatu-inline 扩展

1 个赞