我正在使用org-mode创建一个简单的网页,并使用org-html-postamble为我的项目执行时间戳和版权声明,如here所述。现在我想只为其中一个源文件禁用后同步码。我可以使用缓冲区本地选项执行此操作,如下所述:http://orgmode.org/manual/Export-settings.html?
我试过
#+ORG_HTML_POSTAMBLE: nil
无济于事。
编辑:我在更多研究表明为什么它不起作用后更新了问题。
答案 0 :(得分:2)
如果您正在谈论文件而不仅仅是缓冲区,则可以添加local variables list。将以下行放在文件的第一行:
## -*- org-export-html-postamble: nil -*-
或者将以下块放在别处(可能在文件的最后):
## Local Variables:
## org-export-html-postamble: nil
## End:
否则,您可以通过将此组件放在缓冲区中来临时绑定变量(这可能是最常用的方式):
#+BIND: org-export-html-postamble nil
基于the org manual export settings page的以下代码段:
如果org-export-allow-bind-keywords为非零,则Emacs变量可以在导出期间使用BIND关键字变为缓冲区本地。它的语法是'#+ BIND:variable value'。这对于无法使用特定关键字进行更改的缓冲区内设置特别有用。
答案 1 :(得分:0)
问题的答案是" no"。文件局部变量不会优先于项目列表中定义的内容。引用org-html-postamble
的变量描述:
Setting :html-postamble in publishing projects will take precedence over this variable.
我的解决方案是定义两个函数
(defun first-postamble (plist) (format "(c) Donald Duck - %s" (format-time-string "%d %b %Y")))
(defun second-postamble (plist) (format "(c) Daisy Duck - %s" (format-time-string "%d %b %Y")))
在我的.emacs
中,然后在需要第一个后同步码的缓冲区中使用#+BIND: org-html-postamble first-postamble
,相应地在第二个后同步码中使用{{1}}。