Org reader: Add partial support for #+EXCLUDE_TAGS option. (#4950)

Closes #4284.

Headers with the corresponding tags should not appear in the output.

If one or more of the specified tags contains a non-tag character
like `+`, Org-mode will not treat that as a valid tag, but will
nonetheless continue scanning for valid tags. That behavior is not
replicated in this patch; entering `cat+dog` as one of the entries in
`#+EXCLUDE_TAGS` and running the file through Pandoc will cause the
parser to fail and result in the only excluded tag being the default, `noexport`.
This commit is contained in:
Brian Leung
2018-10-05 14:28:17 -07:00
committed by John MacFarlane
parent e4ca51c2a7
commit a26b3a2d6a
5 changed files with 61 additions and 7 deletions
+29
View File
@@ -0,0 +1,29 @@
```
% pandoc -f org -t native
#+EXCLUDE_TAGS:apple cat bye dog %
* This should not appear :apple:
* NOEXPORT should appear if not specified in EXCLUDE_TAGS :noexport:
* This should not appear :cat:hi:laptop:
** Children of headers with excluded tags should not appear :xylophone:
* This should not appear :%:
^D
[Header 1 ("noexport-should-appear-if-not-specified-in-excludetags",[],[]) [Str "NOEXPORT",Space,Str "should",Space,Str "appear",Space,Str "if",Space,Str "not",Space,Str "specified",Space,Str "in",Space,Str "EXCLUDE",Subscript [Str "TAGS"],Space,Span ("",["tag"],[("tag-name","noexport")]) [SmallCaps [Str "noexport"]]]]
```
```
% pandoc -f org -t native
#+EXCLUDE_TAGS:elephant
* This should not appear :elephant:
* This should appear :fawn:
^D
[Header 1 ("this-should-appear",[],[]) [Str "This",Space,Str "should",Space,Str "appear",Space,Span ("",["tag"],[("tag-name","fawn")]) [SmallCaps [Str "fawn"]]]]
```
```
% pandoc -f org -t native
#+EXCLUDE_TAGS:
* NOEXPORT should appear if not specified in EXCLUDE_TAGS :noexport:
^D
[Header 1 ("noexport-should-appear-if-not-specified-in-excludetags",[],[]) [Str "NOEXPORT",Space,Str "should",Space,Str "appear",Space,Str "if",Space,Str "not",Space,Str "specified",Space,Str "in",Space,Str "EXCLUDE",Subscript [Str "TAGS"],Space,Span ("",["tag"],[("tag-name","noexport")]) [SmallCaps [Str "noexport"]]]]
```