pdf 也适合这种需求场景,比如某一页 pdf 是个示意图或者大表格,做笔记的时候引用这一页时还能显示图片,想看上下文点进去就打开 pdf。
这么一说,我又觉得这类功能或许应该抽象成一个通用的框架,更像是协议性质的,增加一种 org link 的语法,比如叫做 filepreview
那么在配置文件里,只需要对不同后缀(格式)的文件设置一个转成图片的命令和命令参数,比如以下设置:
(setq filepreview-preview-command
'(("\\.ps" "convert %s.ps %s_hash.png")
("\\.pptx" "convert %s.pptx %s_hash.jpg -page %d")
("\\.pdf" "convert %s.pptx %s_hash.jpg -page %d -rotate 90")
("\\.mm" "convert %s.mm %s_hash.jpg")
)
(setq filepreview-cache-folder ~/org/.previewcache)
以上 convert 语法都是伪代码了,不同格式可能有不同命令 然后
[[filepreview:~/product/presentation.pptx:3]]
在每次执行 org-redisplay-inline-images 时候检查 presentation.pptx 修改的时间戳,如果相比上次有修改, 就去调用 preview-command 把第三页重新转成 jpg ,更新 cache 里的图片预览并且显示出来 (每个预览用文件名 hash 之类的对应上)
点击链接的话还是遵循 find-file/org-open-at-point 之类的打开外部程序的接口