* ox-taskjuggler.el (org-taskjuggler-map-special-nodes): new function to capture mapping over tagged special nodes. (org-taskjuggler-project-plan): factor to use the new function. --- contrib/lisp/ox-taskjuggler.el | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el index ce4a8ab..2cf2c78 100644 --- a/contrib/lisp/ox-taskjuggler.el +++ b/contrib/lisp/ox-taskjuggler.el @@ -625,6 +625,12 @@ doesn't include leading \"depends\"." ;;; Translator Functions +(defun org-taskjuggler-map-special-nodes (tag tree f) + (org-element-map tree 'headline + (lambda (hl) + (and (member tag (org-export-get-tags hl info)) + (funcall f hl))) + info nil 'headline)) (defun org-taskjuggler-project-plan (contents info) "Build TaskJuggler project plan. @@ -647,13 +653,10 @@ Return complete project plan as a string in TaskJuggler syntax." ;; `org-taskjuggler-resource-tag'. Only gather top level ;; resources. (apply 'append - (org-element-map tree 'headline - (lambda (hl) - (and (member org-taskjuggler-resource-tag - (org-export-get-tags hl info)) - (org-element-map (org-element-contents hl) 'headline - 'identity info nil 'headline))) - info nil 'headline)))) + (org-taskjuggler-map-special-nodes + org-taskjuggler-resource-tag tree + (lambda (hl) (org-element-map (org-element-contents hl) 'headline + 'identity info nil 'headline)))))) ;; Assign a unique ID to each resource. Store it under ;; `:taskjuggler-unique-ids' property in INFO. (setq info -- 2.5.0