保存时如何将组织文件导出到HTML文件?

e32*_*e32 7 emacs org-mode

我想在保存时将我的组织文件导出到HTML文件到某个目录.我可以使用Emacs和Org-mode但我不知道Elisp.

tar*_*leb 7

Emacs有一些在某些事件中被调用的钩子.你正在寻找的钩子可能是after-save-hook.只需将其设置为每次保存文件时要运行的功能.在你的情况下,这将是org-html-export-to-html.

有很多方法可以做到这一点,但以下方法可能是最快的,并不涉及任何"真正的"elisp.将以下行放在org文件中的某处:

# Local variables:
# after-save-hook: org-html-export-to-html
# end:
Run Code Online (Sandbox Code Playgroud)

下次打开该文件时,您将收到警告,并询问是否应设置局部变量(因为这可能不安全,但这里不是问题).按y,一切都应该正常工作.


And*_*ler 7

使用Org-Mode 8.3和Emacs 24.5.1,接受的答案会创建一个伪缓冲区*Org HTML Export*,您必须手动保存,而密钥C-c C-e h h更方便地直接保存文件.

要在后台真正自动导出,请尝试以下代码:

# Local variables:
# eval: (add-hook 'after-save-hook 'org-html-export-to-html t t)
# end:
Run Code Online (Sandbox Code Playgroud)

您可以将此解决方案与以下功能结合使用.emacs:

(defun toggle-html-export-on-save ()
  "Enable or disable export HTML when saving current buffer."
  (interactive)
  (when (not (eq major-mode 'org-mode))
    (error "Not an org-mode file!"))
  (if (memq 'org-html-export-to-html after-save-hook)
      (progn (remove-hook 'after-save-hook 'org-html-export-to-html t)
             (message "Disabled org html export on save"))
    (add-hook 'after-save-hook 'org-html-export-to-html nil t)
    (set-buffer-modified-p t)
    (message "Enabled org html export on save")))
Run Code Online (Sandbox Code Playgroud)