On Thursday,  9 Jan 2020 at 09:20, Sven Bretfeld wrote:
> Hi everybody
> Is this possible?
> ** headline      <-- not exported
>    :PROPERTIES:  <-- not exported
>    Some content. <-- exported

yes.  I do this all the time to add structure to a document, structure
that is not required in the exported version.

I have the following code:

#+begin_src emacs-lisp
  (defun esf/remove-lines-with-ignore-heading-tag (backend)
    (message "Deleting lines with ignore heading tag")
    (while (search-forward-regexp "^\\*+.*[ 
\t]+[a-ZA-Z0-9:]*:ignoreheading:[a-ZA-Z0-9:]*$" (point-max) t)
       ((eq backend 'latex) (replace-match "#+latex: % \\&" ))
       ((eq backend 'html) (replace-match "#+html: <!-- \\& -->" ))
       (t (replace-match ""))))
    (message "... done deleting ignored headings."))
  (add-hook 'org-export-before-processing-hook 

which then causes any headline with the ignoreheading tag to be removed,
leaving the subtree under that headline present.

One caveat: the subtree content inherits behaviour from the previous
headline.  For instance, if the previous headline was one that would not
be exported at all, then this subtree will also not be exported.  E.g.:

#+begin_src org
  ,* heading 1
  Text that will be exported
  ,* heading 2                                :ignoreheading:
  Text that will also be exported but without the heading
  ,* heading 3                                     :noexport:
  Text that will not be exported.
  ,* heading 4                                :ignoreheading:
  Text here will also not be exported because it ends up being under
  "heading 3" which has the :noexport: tag.

Note that my implementation is old and it could very well be that later
versions of org have introduced something to cater for this use case.  I
have org customizations going back over 10 years...

Eric S Fraga via Emacs 27.0.50, Org release_9.3-34-g2eee3c

Reply via email to