在org-mode中,是否有将(当前)子树导出为HTML的功能?

34
在org-mode中,是否有将(当前)子树导出为HTML的函数?如何做到这一点?
在org-mode中,可以使用以下命令将当前子树导出为HTML:`C-c C-e H s`。
4个回答

48

使用 Org 8:

M-x org-export-dispatch
C-s (change the export scope to subtree)
h (HTML menu)
h (export to HTML file)

2
是的,只需使用这些命令定义一个键盘宏即可(请参见KeyboardMacros)。请注意,在最近版本的org mode中,您还可以通过使用“C-u C-c C-e”导出您所在的最后一个子树,无论您在哪里(当然,您也可以定义一个宏来执行此操作)。 - david-hoze
3
你可以将函数调用(org-html-export-to-html nil t)分配给任何一个函数。创建一个明确的命令,或者将上述内容包装在(lambda ...)表达式中(参见匿名函数)。 - fniessen

29

你还可以使用org-narrow-to-subtree来缩小缓冲区并运行正常导出。


比我的拙劣代码好多了。 - ben rudgers
1
它绑定到按键 C-x n s,返回到扩展视图则是 C-x n w。感谢您的提示! - Dox
在这种情况下,编号保持全局,而更改作用域会从头开始枚举,并使用标题作为标题。同时使用两者可以得到一个清晰的图像。 - Flint

8
当transient-mark-mode被打开时,只有活动区域将被导出。
ODT导出的信息在这里找到,同样适用于HTML。

导出多个标题时的绝佳选择。 - Flint

1

该函数是org-html-export-to-html,可以使用参数nil t调用以导出当前子树。

(defun subtree-html () 
  (interactive) 
  (org-html-export-to-html nil t))

你也可以创建宏(然后由函数执行)。

步骤:

  1. 开始录制键盘宏:C-x(https://www.gnu.org/software/emacs/manual/html_node/emacs/Basic-Keyboard-Macro.html#Basic-Keyboard-Macro
  2. 按照这个答案的步骤:https://dev59.com/XmIj5IYBdhLWcg3wHhpX#20630177(M-x org-export-dispatch C-s h h)
  3. 停止录制宏:C-x e
  4. 使用kmacro-name-last-macro保存(不是name-last-kbd-macro
  5. 使用M-x insert-kbd-macro插入到文件中
  6. setq last-kbd-macro替换为execute-kbd-macro
  7. 现在你可以把它变成一个(可能是交互式的)函数(或者放到lambda中并绑定到一个键上)。例如,(defun subtree-html () (interactive) (execute-kbd-macro _____)) 其中_____insert-kbd-macro的输出。
如果有一种不那么复杂的方法来完成这个任务,而且不会影响可见性/缩小范围(或者可以轻松地恢复它),我很想听听您的建议。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接