【问题标题】:Including literal HTML code in org-mode templates在组织模式模板中包含文字 HTML 代码
【发布时间】:2012-03-29 06:16:11
【问题描述】:

在 org-mode 中,当您导出 HTML 项目时,您可以使用模板为所有导出的页面提供相同的选项,这在此处进行了描述 http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html。我想做的是给所有导出的页面一个 HTML sn-p,用于分析,这不是一个选项。 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) 

【问题讨论】:

  • 您要在哪里包含文字 HTML 代码?一个更完整的设置示例会让您更容易看到需要什么。
  • 您是否包括level-0.org 使用#+setupfile: <path>/level-0.org?如果您尝试将其更改为#+include: <path>/level-0.org。 (如果这符合您的要求,我将提供更多详细信息作为答案)
  • @JonathanLeech-Pepin 这很有效,尽管我将 html sn-p 放在一个单独的文件中,该文件包含在所有其他组织文件中。我不知道#+setupfile#+include之间的区别

标签: emacs elisp org-mode


【解决方案1】:

为了扩展我在问题中的评论,这里是 #+setupfile:#+include: 之间的区别。

有关两者的详细信息,请参阅 Org-Mode 手册。请参阅Setup FileInclude Files

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

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

【讨论】:

    【解决方案2】:

    很高兴您通过将您的 sn-p 作为单独的 html 文件进行采购来解决您的问题。

    如果您想通过将 sn-p 直接包含在模板文件中来使其工作,您应该使用

    #+BEGIN_export html
    ...
    #+END_export
    

    而不是

    #+BEGIN_html
    ...
    #+END_html
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多