我的init.el是从init.org动态生成的。我还从init.org文件生成init.html文档。
我可以毫无问题地手动调用M-x org-babel-tangle
和M-x org-export-as-html
,但我想要一个同时执行这两项工作的功能。
我写了以下函数:
(defun export-init-org ()
"Generate init.html and init.html from the current init.org file."
(interactive)
(call-interactively 'org-export-as-html)
(call-interactively 'org-babel-tangle))
这不起作用。它创建init.html文件,但不创建init.el文件。我尝试重新排序电话:
(defun export-init-org ()
"Generate init.html and init.html from the current init.org file."
(interactive)
(call-interactively 'org-babel-tangle)
(call-interactively 'org-export-as-html))
这可以正常工作,init.el和init.html都已创建。为什么是这样?我的第一个功能出了什么问题?
答案 0 :(得分:1)
我的org安装中没有org-export-as-html
。我怀疑你使用的是旧版本。但是,我认为您所看到的是org-export-as-html
文件副作用的结果。如果此函数导致Emacs切换缓冲区,则最终会在html结果上调用org-babel-tangle
,而不是org源。这当然不起作用。请尝试相应确认:
(defun export-init-org ()
"Generate init.html and init.html from the current init.org file."
(interactive)
(save-excursion ;; restores original buffer after running
(call-interactively 'org-export-as-html))
(call-interactively 'org-babel-tangle))