Modifying Sparse Trees and Exporting in Org Mode

2017-04-21 12:03:21

I want to use org-mode's sparse trees to export some of the headings in a document. Specifically, I want headlines and entries for all matches of a tag search, plus parents. org-show-context-detail controls this, but doesn't have quite the right setting. local is closest, but local also includes the next heading at the same level of match; I do not want next heading.

* Heading


:EXPORT: yes


* Subheading


:EXPORT: yes


I am some content! I should be exported and visible!

* Definitely Don't Want This Subheading




So how do I make and export a sparse tree using an EXPORT=yes tag search, containing Heading, Subheading, and the entry of Subheading, without including the next heading? (Note: I do know about C-v in the org export dispatcher -- but it will still include a visible-but-folded headline, like Definitely Don't Want This Subheading.)

I was just looking at

  • I was just looking at this, ended up kludging a workaround.

    According to

    org-show-following-heading, org-show-siblings, org-show-entry-below and org-show-hierarchy-above no longer exist. Instead, visibility is

    controlled through a single variable: org-show-context-detail.

    But the values for for org-show-context-detail; minimal, local, ancestors, lineage, tree, canonical or t don't work. You want ancestors, but this doesn't show the entry. The entry text is shown for the 'local' value, but that shows the following headline.

    My solution was to locate the function that does the display, org-show-set-visibility() in org.el, copy it wholesale to my init.el, and hack the line that decides whether to show the entry. I changed the check for 'local' to be 'ancestors'.

    ;; Show current heading and possibly its entry, following headline

    ;; or all children.

    ;; (if (and (org-at-heading-p) (not (eq detail 'local))) <-- ORIGINAL

    2017-04-21 14:31:26