我正在使用 org-mode 从我的笔记生成 html 页面。我使用了将 Org-mode 文件发布为 HTML设置博客系统。
我已经定义了一个导出模板。但要使用它,我必须在我的 notes 项目中的每个 org 文件顶部添加以下行。
#+SETUPFILE: ~/.emacs.d/org-templates/level-0.org
有没有办法设置这个.emacs
或自定义一个 org-mode 变量,这样我就不必在每个文件中都放置这一行?
根据org-mode 手册,#+SETUPFILE
是缓冲区内的设置。这是否意味着我无法为所有 org 文件全局定义它?
这些 二SU 上的答案告诉了如何自定义 HTML 导出样式。但我的模板文件除了 CSS 样式外还包含其他设置。因此仅自定义样式对我来说不起作用。
答案1
这是我的理解。
如果需要全局定义设置,则应该定义HTML/LaTeX 导出器的选项在org-publish-project-alist
里面.emacs
。
#+SETUPFILE
当你需要覆盖全局设置并为少数或单个文件定义自定义设置时,可以使用这个。如果这些设置经常使用,你可以定义一个模板,并使用 SETUPFILE 来指示 org-mode 使用该模板导出此 org 文件。
因此,我通过定义全局设置解决了我的问题,.emacs
并放弃了使用全局模板的想法
:author "Andy"
:email "[email protected]"
:language "en"
:link_home "index.html"
:style "<link rel=\"stylesheet\" type=\"text/css\" href=\"css/style.css\" />
答案2
你可以添加钩org-publish-before-export-hook使用类似函数
(defun my-add-setup ()
"Insert SETUPFILE statement in the beginning of the buffer for export ONLY."
(interactive) ; for testing in scratch
(goto-char (point-min))
(insert "#+SETUPFILE: ~/.emacs.d/org-templates/level-0.org\n")
)
PS:我自己没有尝试过。