用org-mode导出html时:
* 一级标题
** 二级标题
导出之后是两级标题。 如果在org-mode下只不用一级标题,直接从二级标题开始:
** 二级标题
** 二级标题
导出html之后,自动都自动变成一级标题了。
请教各位大神,这个有没有什么解决方案? 是在org-mode中写代码的时候能解决,还是需要怎么做?
用org-mode导出html时:
* 一级标题
** 二级标题
导出之后是两级标题。 如果在org-mode下只不用一级标题,直接从二级标题开始:
** 二级标题
** 二级标题
导出html之后,自动都自动变成一级标题了。
请教各位大神,这个有没有什么解决方案? 是在org-mode中写代码的时候能解决,还是需要怎么做?
在导出 headline 的时候,ox-html.el 中的 org-html-headline
会使用 ox.el 中的 org-export-get-relative-level
来获取标题的级别。这个函数会由当前标题的绝对级别(你给出的例子就是二级标题)加上 :headline-offset
这个导出属性来决定。
;; see https://orgmode.org/worg/dev/org-export-reference.html#org0fc5381
(defun org-export-get-relative-level (headline info)
"Return HEADLINE relative level within current parsed tree.
INFO is a plist holding contextual information."
(+ (org-element-property :level headline)
(or (plist-get info :headline-offset) 0)))
:headline-offset
属性由 org-export--collect-tree-properties
来设定,具体是如下代码:
(setq info
(plist-put info
:headline-offset
(- 1 (org-export--get-min-level data info))))
对于最小级别为二级的情况,:headline-offset
就是 -1
,因此导出时由 org-export-get-relative-level
得到的就是一级标题。
要修改这个行为,可以考虑给 org-export--collect-tree-properties
设定一个 :filter-return
advice:
(defun my-headline-filter (info)
(plist-put info :headline-offset 0))
(advice-add 'org-export--collect-tree-properties :filter-return 'my-headline-filter)
;;(advice-remove 'org-export--collect-tree-properties 'my-headline-filter)
当然这只是一种方法。
谢谢大神指点。 刚才我自己试了下,在一级标题后边写了个空格,问题解决了。
* 空格
** 二级标题
这样确实也行,生成了一个空的 headline