与此问题相关:如何定义 org-mode HTML 导出的模板?
我希望通过点击来定制插入的模板,C-c C-e t
以便获得一些定制,甚至在一些关于放置内容的评论中获得一些帮助说明。
也许使用其他 Emacs 方式插入文本片段会更好?或者使用 org-mode 模板扩展?
答案1
简短答案:看起来并不容易大幅修改结构。有一些出口选项建议喜欢org-export-plist-vars
,但我个人还没有玩过。
寻找答案:当您调用 时C-c C-e t,您正在调用 org-mode 函数org-insert-export-options-template
。我对函数 ( C-h f) 进行了快速帮助,但没有看到任何帮助文本或可传递给它的选项,所以我不得不查看函数的源代码 ( M-x find-function
ENTER org-insert-export-options-template
ENTER>)。
通读该org-insert-export-options-template
函数,我发现它正在通过 获取要插入的文本org-get-current-options
。它的描述中没有关于配置其行为的帮助,因此也去查看它的源代码。在那里,您将看到熟悉的完整模板信息段落,当您调用 时,它会插入到文本中org-insert-export-options-template
。填充的值来自各种其他组织变量、缓冲区名称等。
推荐:我个人的做法是花一些时间决定我想要哪些选项,然后在开始新的 org 时从其他 org 文件中复制这些选项。我也考虑过使用自动插入模式为我自动填充一个新的 org 文件但我把它推迟了。
答案2
除了“插入代码片段”选项之外,您可能还对 #+SETUPFILE: /path/to/template.org 感兴趣。如果您希望为导出设置预定义设置,这将非常有用。您可以根据需要创建任意数量的设置。我将其与 yasnippet 结合起来执行以下操作:
# -*- mode: snippet; require-final-newline: nil -*-
# name: blogtemplate
# key: <bl
# --
#+SETUPFILE: ~/.emacs.d/org-templates/level-$1.org
#+DATE: $2
#+KEYWORDS: $3
#+BEGIN_HTML
<h1 class="title">$0</h1>
#+END_HTML
$1、$2 等定义制表位,以便您可以像网络表单一样填写它。
编辑:
关于编写 yasnippet 和制表位的详细信息可以在这里找到: https://joaotavora.github.io/yasnippet/snippet-development.html
但本质上,插入代码片段后,它会将您置于 $1,然后按 Tab 键将您置于 $2,依此类推。这样您就可以快速填写所需的内容。