org 导出 html 的一个难点就是内嵌视频,基本上需要通过内嵌 html 的方式来插入视频,像下面这样:
#+begin_export html
<video width="640" height="360" preload="metadata" controls="controls"><source type="video/mp4" src="./Baby唱小金鱼.mp4" /></video>
#+end_export
但是这种方式太繁琐了,不如直接自定义一个 video link,在导出成 html 时帮我自动生成 video tag 片段,如下所示:
(defun org-video-link-export (path desc backend)
(let ((ext (file-name-extension path)))
(cond
((eq 'html backend)
(format "<video preload='metadata' controls='controls'><source type='video/%s' src='%s' /></video>" ext path))
;; fall-through case for everything else
(t
path))))
(org-link-set-parameters "video" :export 'org-video-link-export)
(org-export-string-as "video:xxx.mp4" 'html t)
<p>
<video preload='metadata' controls='controls'><source type='video/mp4' src='xxx.mp4' />
</video>
</p>
