在org-mode模板中包含文字HTML代码

时间:2012-03-29 06:16:12

标签: emacs elisp org-mode

在org-mode中,当您导出HTML项目时,您可以使用模板为所有导出的页面提供相同的选项,这在http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html中有所描述。我想做的是,为所有导出的页面提供HTML片段,用于分析,这不是一个选项。 org-templates有可能吗?

现在,我尝试使用

将文字HTML代码添加到基本模板level-0-template.org
#begin_html
...
#end_html

但它没有成功。有谁知道如何将html代码添加到项目中导出的每个HTML文件中?

我的项目安排如下:

|- org
   |- index.org
|- html
   |- index.html (this is exported)
|- templates
   |- level-0.org (I'd like to include default html here)
|- org_publish.el (this is the publishing config file) 

2 个答案:

答案 0 :(得分:2)

要扩展我在问题中的评论,以下是#+setupfile:#+include:之间的区别。

组织模式手册中提供了有关两者的详细信息。请参阅Setup FileInclude Files

setupfile本质上是链接文件中包含的所有组织配置的列表。它将传递诸如#+options之类的内容。但是,它不会包含原始文件可能包含的任何其他内容。

另一方面,#+include:在插入行的任何地方插入链接文件的内容。它的行为类似于LaTex中的\input。我不确定它将带来链接文件中任何组织配置设置的程度,您可能需要#+include#+setupfile文件以确保所有内容都存在。但是,由于您确实希望每个文件的正文内容都包含在内,因此您必须使用#+include来插入它。

答案 1 :(得分:1)

很高兴您找到了解决方案,方法是将代码段作为单独的html文件提供。

如果您想通过将代码段直接包含在模板文件中来使其工作,则应使用

#+BEGIN_export html
...
#+END_export

代替

#+BEGIN_html
...
#+END_html

(后者将html块作为块嵌入到呈现的html页面中,而不是您想要的;前者将按原样导出html文件中的html块,以便在显示页面时呈现该代码-您想要什么)。

相关问题