Function: org-export--selected-trees
org-export--selected-trees is a byte-compiled function defined in
ox.el.gz.
Signature
(org-export--selected-trees DATA INFO)
Documentation
List headlines and inlinetasks with a select tag in their tree.
DATA is parsed data as returned by org-element-parse-buffer.
INFO is a plist holding export options.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox.el.gz
(defun org-export--selected-trees (data info)
"List headlines and inlinetasks with a select tag in their tree.
DATA is parsed data as returned by `org-element-parse-buffer'.
INFO is a plist holding export options."
(let ((select (cl-mapcan (lambda (tag) (org-tags-expand tag t))
(plist-get info :select-tags))))
(if (cl-some (lambda (tag) (member tag select)) (plist-get info :filetags))
;; If FILETAGS contains a select tag, every headline or
;; inlinetask is returned.
(org-element-map data '(headline inlinetask) #'identity)
(letrec ((selected-trees nil)
(walk-data
(lambda (data genealogy)
(let ((type (org-element-type data)))
(cond
((memq type '(headline inlinetask))
(let ((tags (org-element-property :tags data)))
(if (cl-some (lambda (tag) (member tag select)) tags)
;; When a select tag is found, mark full
;; genealogy and every headline within the
;; tree as acceptable.
(setq selected-trees
(append
genealogy
(org-element-map data '(headline inlinetask)
#'identity)
selected-trees))
;; If at a headline, continue searching in
;; tree, recursively.
(when (eq type 'headline)
(dolist (el (org-element-contents data))
(funcall walk-data el (cons data genealogy)))))))
((or (eq type 'org-data)
(memq type org-element-greater-elements))
(dolist (el (org-element-contents data))
(funcall walk-data el genealogy))))))))
(funcall walk-data data nil)
selected-trees))))