我想知道我是否在org-mode中有任何功能可以使我能够使用秘密结构进行操作,即:我在编辑时可以看到的结构,但是它被视为不是在出口时。它主要是在导出到ascii时导入。
示例:
我想在.org文件中这样做:
* Normal heading
** Secret heading 1
Some text 1
** Secret heading 2
Some text 2
** Secret heading 3
Some text 3
要导出到此:
Normal heading
--------------
Some text 1
Some text 2
Some text 3
使标题保密的原因可能是标签,财产或其他东西,但秘密标题应该是可折叠的。
修改
找到此解决方案(from here)(我正在使用org-mode 7.9.3 f。它不起作用。仍然显示带有:ignoreheading:标记的标题:
;; backend aware export preprocess hook
(defun sa-org-export-preprocess-hook ()
"My backend aware export preprocess hook."
(save-excursion
(when (eq org-export-current-backend 'latex)
;; ignoreheading tag for bibliographies and appendices
(let* ((tag "ignoreheading"))
(org-map-entries (lambda ()
(delete-region (point-at-bol) (point-at-eol)))
(concat ":" tag ":"))))))
(add-hook 'org-export-preprocess-hook 'sa-org-export-preprocess-hook)
答案 0 :(得分:4)
您可以使用EXCLUDE_TAGS
属性并标记某些部分,然后使用org-export-exclude-tags
导出。 E.g:
#+EXCLUDE_TAGS: noexport
* Public Section
* Secret Section :noexport:
文档here。
答案 1 :(得分:3)
你想要的是here - 这是答案(重复):
将以下内容添加到.emacs
文件中:
(require 'ox-extra)
(ox-extras-activate '(ignore-headlines))
在您要忽略的标题上使用ignore
标记(而不是忽略其内容)
答案 2 :(得分:1)
我升级到org-mode 8.2.5h,并且这样做有效:
(defun sa-ignore-headline (contents backend info)
"Ignore headlines with tag `ignoreheading'."
(when (and (org-export-derived-backend-p backend 'latex 'html 'ascii)
(string-match "\\`.*ignoreheading.*\n"
(downcase contents)))
(replace-match "" nil nil contents)))
(add-to-list 'org-export-filter-headline-functions 'sa-ignore-headline)
但是,只有你没有选项:#+ OPTIONS:tags:nil
。猜测很明显,在调用依赖某个标签的过滤之前,标签不应该被过滤掉 - 但这让我误解了很长时间。
注意:导出到ascii时,标题下划线将保持不带标题,因此您也需要此设置:
(setq org-ascii-underline (quote ((ascii) (latin1) (utf-8))))
...一起删除头条新闻。
答案 3 :(得分:1)
在linked question about the ignoreheading tag我在Emacs 24.1.1中为Org 8.2.10发布了一个有效的simpler org-export-before-parsing-hook solution。
它基于org-map-entries
函数的文档,该文档还声明它会自动将其包装在save-recursion
中。它比使用concat
更简单,因为org-map-entries
的第二个参数是一个议程式匹配字符串。
答案 4 :(得分:1)
在尝试解决同样的问题时,我发现this线程描述了如何使用ox-extra.el
标记扩展notignore
。除非明确标记notignore
,否则此方法不会导出任何标题。标题的内容正常导出。
对于我的大多数文档,notignore
方法比“忽略”方法更有用。因为大多数标题都是“秘密结构”。不打算出口。
目前我的init.el文件中已激活notignore-headlines
。任何人都可以建议一种基于每个文档激活它的方法。