* Babel should not work in the subtree marked as not exported @ 2014-03-11 12:47 zwz 2014-03-11 13:27 ` Ken Mankoff 0 siblings, 1 reply; 33+ messages in thread From: zwz @ 2014-03-11 12:47 UTC (permalink / raw) To: emacs-orgmode In my setup, there is (setq org-export-exclude-tags '("private" "exclude") and In my test.org: * test ** Not exported :exclude: #+BEGIN_SRC ditaa :file test.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC ** blah blah blah blah blah When I try to export it to pdf, the test.png is still generated, although it is not used for the pdf at all. So I think the export procedure may be optimized for more efficiency. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 12:47 Babel should not work in the subtree marked as not exported zwz @ 2014-03-11 13:27 ` Ken Mankoff 2014-03-11 13:41 ` Andreas Leha 2014-03-11 14:03 ` Rainer M Krug 0 siblings, 2 replies; 33+ messages in thread From: Ken Mankoff @ 2014-03-11 13:27 UTC (permalink / raw) To: zwz; +Cc: emacs-orgmode On 2014-03-11 at 08:47, zwz wrote: > In my setup, there is > (setq org-export-exclude-tags '("private" "exclude") > > and In my test.org: > > * test > > ** Not exported :exclude: > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > > > When I try to export it to pdf, the test.png is still generated, > although it is not used for the pdf at all. > So I think the export procedure may be optimized for more efficiency. No, because I often have code and sections I don't want exported, but I want their side-effects active. For example, code with sessions where part is not exported, but I need that code run so code elsewhere, using the same session, is able to run and be exported. -k. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 13:27 ` Ken Mankoff @ 2014-03-11 13:41 ` Andreas Leha 2014-03-11 13:57 ` Ken Mankoff 2014-03-11 14:03 ` Rainer M Krug 1 sibling, 1 reply; 33+ messages in thread From: Andreas Leha @ 2014-03-11 13:41 UTC (permalink / raw) To: emacs-orgmode Hi Ken, Ken Mankoff <mankoff@gmail.com> writes: > On 2014-03-11 at 08:47, zwz wrote: >> In my setup, there is >> (setq org-export-exclude-tags '("private" "exclude") >> >> and In my test.org: >> >> * test >> >> ** Not exported :exclude: >> #+BEGIN_SRC ditaa :file test.png :cmdline -E >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> #+END_SRC >> >> ** blah blah >> blah blah blah >> >> >> When I try to export it to pdf, the test.png is still generated, >> although it is not used for the pdf at all. >> So I think the export procedure may be optimized for more efficiency. > > No, because I often have code and sections I don't want exported, but > I want their side-effects active. For example, code with sessions > where part is not exported, but I need that code run so code > elsewhere, using the same session, is able to run and be exported. > > -k. So what is your suggestion for the OP to achieve what he is after? noexport and noeval at the same time. Regards, Andreas ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 13:41 ` Andreas Leha @ 2014-03-11 13:57 ` Ken Mankoff 2014-03-12 10:53 ` zwz 0 siblings, 1 reply; 33+ messages in thread From: Ken Mankoff @ 2014-03-11 13:57 UTC (permalink / raw) To: Andreas Leha; +Cc: emacs-orgmode Hi Andreas, On 2014-03-11 at 09:41, Andreas Leha wrote: > Hi Ken, > > Ken Mankoff <mankoff@gmail.com> writes: > >> On 2014-03-11 at 08:47, zwz wrote: >>> In my setup, there is >>> (setq org-export-exclude-tags '("private" "exclude") >>> >>> and In my test.org: >>> >>> * test >>> >>> ** Not exported :exclude: >>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> #+END_SRC >>> >>> ** blah blah >>> blah blah blah >>> >>> >>> When I try to export it to pdf, the test.png is still generated, >>> although it is not used for the pdf at all. >>> So I think the export procedure may be optimized for more efficiency. >> >> No, because I often have code and sections I don't want exported, but >> I want their side-effects active. For example, code with sessions >> where part is not exported, but I need that code run so code >> elsewhere, using the same session, is able to run and be exported. >> >> -k. > > > So what is your suggestion for the OP to achieve what he is after? > noexport and noeval at the same time. > I do not have a suggestion. I'm not very familiar with the various options, and didn't know noeval exists. That sounds like a good solution. The OP suggestion of "may be optimized" is vague, but I took it, perhaps incorrectly, to mean "don't run code in noexport sections", hence my disagreement. -k. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 13:57 ` Ken Mankoff @ 2014-03-12 10:53 ` zwz 2014-03-12 22:58 ` Andreas Leha 0 siblings, 1 reply; 33+ messages in thread From: zwz @ 2014-03-12 10:53 UTC (permalink / raw) To: emacs-orgmode Ken Mankoff <mankoff@gmail.com> writes: > Hi Andreas, > > On 2014-03-11 at 09:41, Andreas Leha wrote: >> Hi Ken, >> >> Ken Mankoff <mankoff@gmail.com> writes: >> >>> On 2014-03-11 at 08:47, zwz wrote: >>>> In my setup, there is >>>> (setq org-export-exclude-tags '("private" "exclude") >>>> >>>> and In my test.org: >>>> >>>> * test >>>> >>>> ** Not exported :exclude: >>>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>> #+END_SRC >>>> >>>> ** blah blah >>>> blah blah blah >>>> >>>> >>>> When I try to export it to pdf, the test.png is still generated, >>>> although it is not used for the pdf at all. >>>> So I think the export procedure may be optimized for more efficiency. >>> >>> No, because I often have code and sections I don't want exported, but >>> I want their side-effects active. For example, code with sessions >>> where part is not exported, but I need that code run so code >>> elsewhere, using the same session, is able to run and be exported. >>> >>> -k. >> >> >> So what is your suggestion for the OP to achieve what he is after? >> noexport and noeval at the same time. >> > > I do not have a suggestion. I'm not very familiar with the various > options, and didn't know noeval exists. That sounds like a good > solution. The OP suggestion of "may be optimized" is vague, but I took > it, perhaps incorrectly, to mean "don't run code in noexport > sections", hence my disagreement. > > -k. I totally get you. As I was not aware of the fact that it is session related, I used the vague phrase. Now I just want to know how to turn off "session" for some source block. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-12 10:53 ` zwz @ 2014-03-12 22:58 ` Andreas Leha 2014-03-13 14:24 ` Eric Schulte 0 siblings, 1 reply; 33+ messages in thread From: Andreas Leha @ 2014-03-12 22:58 UTC (permalink / raw) To: emacs-orgmode Hi zwz, zwz <zhangweize@gmail.com> writes: > Ken Mankoff <mankoff@gmail.com> writes: > >> Hi Andreas, >> >> On 2014-03-11 at 09:41, Andreas Leha wrote: >>> Hi Ken, >>> >>> Ken Mankoff <mankoff@gmail.com> writes: >>> >>>> On 2014-03-11 at 08:47, zwz wrote: >>>>> In my setup, there is >>>>> (setq org-export-exclude-tags '("private" "exclude") >>>>> >>>>> and In my test.org: >>>>> >>>>> * test >>>>> >>>>> ** Not exported :exclude: >>>>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>>> #+END_SRC >>>>> >>>>> ** blah blah >>>>> blah blah blah >>>>> >>>>> >>>>> When I try to export it to pdf, the test.png is still generated, >>>>> although it is not used for the pdf at all. >>>>> So I think the export procedure may be optimized for more efficiency. >>>> >>>> No, because I often have code and sections I don't want exported, but >>>> I want their side-effects active. For example, code with sessions >>>> where part is not exported, but I need that code run so code >>>> elsewhere, using the same session, is able to run and be exported. >>>> >>>> -k. >>> >>> >>> So what is your suggestion for the OP to achieve what he is after? >>> noexport and noeval at the same time. >>> >> >> I do not have a suggestion. I'm not very familiar with the various >> options, and didn't know noeval exists. That sounds like a good >> solution. The OP suggestion of "may be optimized" is vague, but I took >> it, perhaps incorrectly, to mean "don't run code in noexport >> sections", hence my disagreement. >> >> -k. > > I totally get you. > As I was not aware of the fact that it is session related, I used the > vague phrase. > Now I just want to know how to turn off "session" for some source block. That can be done with ':session none'. - Andreas ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-12 22:58 ` Andreas Leha @ 2014-03-13 14:24 ` Eric Schulte 2014-03-13 22:48 ` Andreas Leha 0 siblings, 1 reply; 33+ messages in thread From: Eric Schulte @ 2014-03-13 14:24 UTC (permalink / raw) To: Andreas Leha; +Cc: emacs-orgmode >>>> >>>> So what is your suggestion for the OP to achieve what he is after? >>>> noexport and noeval at the same time. >>>> I'm jumping in half way through here, but wouldn't setting the :noeval property to "yes" and :export property to "none" on the subtree work? One may also want to COMMENT the subtree to inhibit it's export wholepiece (not just code blocks). Best, -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-13 14:24 ` Eric Schulte @ 2014-03-13 22:48 ` Andreas Leha 2014-03-14 1:03 ` Eric Schulte ` (2 more replies) 0 siblings, 3 replies; 33+ messages in thread From: Andreas Leha @ 2014-03-13 22:48 UTC (permalink / raw) To: emacs-orgmode Hi Eric, Eric Schulte <schulte.eric@gmail.com> writes: >>>>> >>>>> So what is your suggestion for the OP to achieve what he is after? >>>>> noexport and noeval at the same time. >>>>> > > I'm jumping in half way through here, Thanks for jumping in. > but wouldn't setting the :noeval > property to "yes" and :export property to "none" on the subtree work? Well, the property-setting works, but that is really cumbersome. In a typical org file, it takes 5 keystrokes to toggle the :noexport: tag (C-c C-c n TAB RET). But I do not want to count the keystrokes it take to additionally set these properties. Just to confirm. This is what you suggest, correct? --8<---------------cut here---------------start------------->8--- * test ** Not exported :noexport: :PROPERTIES: :noeval: "yes" :export: "none" :END: #+BEGIN_SRC ditaa :file test.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC ** blah blah blah blah blah --8<---------------cut here---------------end--------------->8--- > > One may also want to COMMENT the subtree to inhibit it's export > wholepiece (not just code blocks). This does not seem to work, as the test.png is also created here. Again, just to confirm. This is your suggestion, correct? --8<---------------cut here---------------start------------->8--- * test ** COMMENT Not exported #+BEGIN_SRC ditaa :file test.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC ** blah blah blah blah blah --8<---------------cut here---------------end--------------->8--- So, my question to this thread is: What is the easiest way to disable a subtree during export completely so that also none of the code blocks is evaluated (regardless of its :session argument). Or even more precisely: Couldn't the COMMENT keyword do exactly that? I do not expect code from inside a COMMENT subtree to be considered during export. Regards, Andreas ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-13 22:48 ` Andreas Leha @ 2014-03-14 1:03 ` Eric Schulte 2014-03-14 5:44 ` Samuel Wales ` (2 more replies) 2014-03-14 1:10 ` John Hendy 2014-03-14 8:34 ` Sebastien Vauban 2 siblings, 3 replies; 33+ messages in thread From: Eric Schulte @ 2014-03-14 1:03 UTC (permalink / raw) To: Andreas Leha; +Cc: emacs-orgmode Andreas Leha <andreas.leha@med.uni-goettingen.de> writes: > Hi Eric, > > Eric Schulte <schulte.eric@gmail.com> writes: > >>>>>> >>>>>> So what is your suggestion for the OP to achieve what he is after? >>>>>> noexport and noeval at the same time. >>>>>> >> >> I'm jumping in half way through here, > > Thanks for jumping in. > >> but wouldn't setting the :noeval >> property to "yes" and :export property to "none" on the subtree work? > > Well, the property-setting works, but that is really cumbersome. In a > typical org file, it takes 5 keystrokes to toggle the :noexport: tag > (C-c C-c n TAB RET). But I do not want to count the keystrokes it take > to additionally set these properties. > Not that bad "C-c C-x p n RET yes", I get 8 to set noeval, if you've done it already in that Org file. You could also easily wrap this behavior into a function and bind that to a key-chord. > > Just to confirm. This is what you suggest, correct? > > --8<---------------cut here---------------start------------->8--- > * test > > ** Not exported :noexport: > :PROPERTIES: > :noeval: "yes" > :export: "none" > :END: > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > --8<---------------cut here---------------end--------------->8--- > > > >> >> One may also want to COMMENT the subtree to inhibit it's export >> wholepiece (not just code blocks). > > This does not seem to work, as the test.png is also created here. > > Again, just to confirm. This is your suggestion, correct? > > --8<---------------cut here---------------start------------->8--- > * test > > ** COMMENT Not exported > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > --8<---------------cut here---------------end--------------->8--- > Close, I meant the following alternative --8<---------------cut here---------------start------------->8--- * test ** COMMENT Not exported :PROPERTIES: :noeval: "yes" :END: #+BEGIN_SRC ditaa :file test.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC ** blah blah blah blah blah --8<---------------cut here---------------end--------------->8--- > > > So, my question to this thread is: What is the easiest way to disable a > subtree during export completely so that also none of the code blocks is > evaluated (regardless of its :session argument). > My example immediately above. > > Or even more precisely: Couldn't the COMMENT keyword do exactly that? I > do not expect code from inside a COMMENT subtree to be considered during > export. > No. This has been raised previously and there was a consensus that it is often desirable for code in a COMMENT section to be evaluated on export. Personally I often stuff code blocks into COMMENT sections which I want run as part of my publishing process (e.g., to create resources used in the exported document). Best, > > > Regards, > Andreas > > > > -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 1:03 ` Eric Schulte @ 2014-03-14 5:44 ` Samuel Wales 2014-03-14 13:02 ` zwz 2014-03-14 19:10 ` Samuel Wales 2014-03-14 5:48 ` Samuel Wales 2014-03-14 8:41 ` Andreas Leha 2 siblings, 2 replies; 33+ messages in thread From: Samuel Wales @ 2014-03-14 5:44 UTC (permalink / raw) To: Eric Schulte; +Cc: Andreas Leha, emacs-orgmode how about call lines? to me, they should not run if they are not supposed to be exported. is this a bug? ********* babel should not export a call line via todo kw *********** NEXT to reproduce set org-export-with-tasks to nil *********** NEXT this should not run #+call: hi(a=2) *********** hi #+name: hi #+begin_src sh :var a=1 echo hi $a #+end_src -- The Kafka Pandemic: http://thekafkapandemic.blogspot.com The disease DOES progress. MANY people have died from it. And ANYBODY can get it. Denmark: free Karina Hansen NOW. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 5:44 ` Samuel Wales @ 2014-03-14 13:02 ` zwz 2014-03-14 19:10 ` Samuel Wales 1 sibling, 0 replies; 33+ messages in thread From: zwz @ 2014-03-14 13:02 UTC (permalink / raw) To: emacs-orgmode Samuel Wales <samologist@gmail.com> writes: > how about call lines? > > to me, they should not run if they are not supposed to be exported. > > is this a bug? > > ********* babel should not export a call line via todo kw > *********** NEXT to reproduce > set org-export-with-tasks to nil > *********** NEXT this should not run > #+call: hi(a=2) > *********** hi > #+name: hi > #+begin_src sh :var a=1 > echo hi $a > #+end_src Maybe this is a simple and clear way: noexport means no export and no code running, either. While if you want to get the code run, just call it somewhere explicitly. What do you think? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 5:44 ` Samuel Wales 2014-03-14 13:02 ` zwz @ 2014-03-14 19:10 ` Samuel Wales 1 sibling, 0 replies; 33+ messages in thread From: Samuel Wales @ 2014-03-14 19:10 UTC (permalink / raw) To: Eric Schulte; +Cc: Andreas Leha, emacs-orgmode please consider this a bug report. On 3/13/14, Samuel Wales <samologist@gmail.com> wrote: > how about call lines? > > to me, they should not run if they are not supposed to be exported. > > is this a bug? > > ********* babel should not export a call line via todo kw > *********** NEXT to reproduce > set org-export-with-tasks to nil > *********** NEXT this should not run > #+call: hi(a=2) > *********** hi > #+name: hi > #+begin_src sh :var a=1 > echo hi $a > #+end_src > > -- > The Kafka Pandemic: http://thekafkapandemic.blogspot.com > > The disease DOES progress. MANY people have died from it. And > ANYBODY can get it. > > Denmark: free Karina Hansen NOW. > -- The Kafka Pandemic: http://thekafkapandemic.blogspot.com The disease DOES progress. MANY people have died from it. And ANYBODY can get it. Denmark: free Karina Hansen NOW. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 1:03 ` Eric Schulte 2014-03-14 5:44 ` Samuel Wales @ 2014-03-14 5:48 ` Samuel Wales 2014-03-14 8:40 ` Sebastien Vauban 2014-03-14 8:41 ` Andreas Leha 2 siblings, 1 reply; 33+ messages in thread From: Samuel Wales @ 2014-03-14 5:48 UTC (permalink / raw) To: Eric Schulte; +Cc: Andreas Leha, emacs-orgmode > No. This has been raised previously and there was a consensus that it > is often desirable for code in a COMMENT section to be evaluated on > export. Personally I often stuff code blocks into COMMENT sections > which I want run as part of my publishing process (e.g., to create > resources used in the exported document). i won't go against consensus, but to me the expectation is that it acts just like commented lines. for your use case, could you use a section marked noexport or org-export-with-tasks? i would use the latter. if this has been raised before, please ignore. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 5:48 ` Samuel Wales @ 2014-03-14 8:40 ` Sebastien Vauban 0 siblings, 0 replies; 33+ messages in thread From: Sebastien Vauban @ 2014-03-14 8:40 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Samuel Wales wrote: >> No. This has been raised previously and there was a consensus that it >> is often desirable for code in a COMMENT section to be evaluated on >> export. Personally I often stuff code blocks into COMMENT sections >> which I want run as part of my publishing process (e.g., to create >> resources used in the exported document). > > i won't go against consensus, but to me the expectation is that it > acts just like commented lines. > > for your use case, could you use a section marked noexport or > org-export-with-tasks? i would use the latter. I was thinking as well that this had been discussed previously, and that the decision had been: - COMMENT is equivalent to "noexport" and "noeval", i.e. no code blocks are run - "noexport" just does that: no export, but code blocks can be run. But I don't find any evidence of this. I must have misunderstood. Best regards, Seb -- Sebastien Vauban ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 1:03 ` Eric Schulte 2014-03-14 5:44 ` Samuel Wales 2014-03-14 5:48 ` Samuel Wales @ 2014-03-14 8:41 ` Andreas Leha 2014-03-14 19:59 ` Eric Schulte 2 siblings, 1 reply; 33+ messages in thread From: Andreas Leha @ 2014-03-14 8:41 UTC (permalink / raw) To: emacs-orgmode Hi Eric, Eric Schulte <schulte.eric@gmail.com> writes: > Andreas Leha <andreas.leha@med.uni-goettingen.de> writes: > >> Hi Eric, >> >> Eric Schulte <schulte.eric@gmail.com> writes: >> >>>>>>> >>>>>>> So what is your suggestion for the OP to achieve what he is after? >>>>>>> noexport and noeval at the same time. >>>>>>> >>> >>> I'm jumping in half way through here, >> >> Thanks for jumping in. >> >>> but wouldn't setting the :noeval >>> property to "yes" and :export property to "none" on the subtree work? >> >> Well, the property-setting works, but that is really cumbersome. In a >> typical org file, it takes 5 keystrokes to toggle the :noexport: tag >> (C-c C-c n TAB RET). But I do not want to count the keystrokes it take >> to additionally set these properties. >> > > Not that bad "C-c C-x p n RET yes", I get 8 to set noeval, if you've > done it already in that Org file. You could also easily wrap this > behavior into a function and bind that to a key-chord. > Plus setting :noexport: or COMMENT ;-) Well, the most serious downside is, that there is no visual feedback here. So, if I want both export and evaluation to be disabled for a subtree, I first need to remember to also set the property. And coming back later to that file, I also need to check the property of each subtree in question to see, whether evaluation is disabled. A TAG or the COMMENt are visible immediately. In my opinion, excluding a subtree from export *and* evaluation is not an esoteric use case and deserves better support. >> >> Just to confirm. This is what you suggest, correct? >> >> --8<---------------cut here---------------start------------->8--- >> * test >> >> ** Not exported :noexport: >> :PROPERTIES: >> :noeval: "yes" >> :export: "none" >> :END: >> #+BEGIN_SRC ditaa :file test.png :cmdline -E >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> #+END_SRC >> >> ** blah blah >> blah blah blah >> --8<---------------cut here---------------end--------------->8--- >> >> >> >>> >>> One may also want to COMMENT the subtree to inhibit it's export >>> wholepiece (not just code blocks). >> >> This does not seem to work, as the test.png is also created here. >> >> Again, just to confirm. This is your suggestion, correct? >> >> --8<---------------cut here---------------start------------->8--- >> * test >> >> ** COMMENT Not exported >> #+BEGIN_SRC ditaa :file test.png :cmdline -E >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> #+END_SRC >> >> ** blah blah >> blah blah blah >> --8<---------------cut here---------------end--------------->8--- >> > > Close, I meant the following alternative > > * test > > ** COMMENT Not exported > :PROPERTIES: > :noeval: "yes" > :END: > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > >> >> >> So, my question to this thread is: What is the easiest way to disable a >> subtree during export completely so that also none of the code blocks is >> evaluated (regardless of its :session argument). >> > > My example immediately above. > >> >> Or even more precisely: Couldn't the COMMENT keyword do exactly that? I >> do not expect code from inside a COMMENT subtree to be considered during >> export. >> > > No. This has been raised previously and there was a consensus that it > is often desirable for code in a COMMENT section to be evaluated on > export. Personally I often stuff code blocks into COMMENT sections > which I want run as part of my publishing process (e.g., to create > resources used in the exported document). > Sorry for being unclear here. I wanted to propose different behaviour for TAGs (lets say :noexport:) and the COMMENT keyword. I am perfectly fine with :noexport: only prohibiting export but still allowing evaluation. But I propose that COMMENT be more treated like a comment, so more like a shorthand for commenting out that subtree using '# '. That way, evaluation would be disabled. I see two benefits: 1. It serves the use-case where one wants a subtree to be not exported and not evaluated. 2. It more resembles Orgs idea of comments. And since the other use case (no export but still evaluation) is still very well supported via :noexport: there would be not too much loss. (IIRC, the COMMENT keyword was close to removal from Orgs syntax recently. So, why not add some real additional functionality to it?) WDYT? Regards, Andreas PS: IIUC, Samuel proposed the same thing: http://permalink.gmane.org/gmane.emacs.orgmode/83459 ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 8:41 ` Andreas Leha @ 2014-03-14 19:59 ` Eric Schulte 2014-03-15 13:54 ` zwz 2014-03-15 14:46 ` Nicolas Goaziou 0 siblings, 2 replies; 33+ messages in thread From: Eric Schulte @ 2014-03-14 19:59 UTC (permalink / raw) To: Andreas Leha; +Cc: emacs-orgmode > Sorry for being unclear here. I wanted to propose different > behaviour for TAGs (lets say :noexport:) and the COMMENT keyword. > I am perfectly fine with :noexport: only prohibiting export but > still allowing evaluation. > > But I propose that COMMENT be more treated like a comment, so more > like a shorthand for commenting out that subtree using '# '. > That way, evaluation would be disabled. > > I see two benefits: > 1. It serves the use-case where one wants a subtree to be not > exported and not evaluated. > 2. It more resembles Orgs idea of comments. > > And since the other use case (no export but still evaluation) is > still very well supported via :noexport: there would be not too > much loss. > > (IIRC, the COMMENT keyword was close to removal from Orgs syntax > recently. So, why not add some real additional functionality to > it?) > > WDYT? > This sounds like a good compromise to me. As you say, this should easily and visually support both use cases and is intuitive. I've not touched the export machinery myself, so I'll leave the implementation to Nicolas but I definitely support this approach. Best, > > Regards, > Andreas > > PS: IIUC, Samuel proposed the same thing: > http://permalink.gmane.org/gmane.emacs.orgmode/83459 > > -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 19:59 ` Eric Schulte @ 2014-03-15 13:54 ` zwz 2014-03-15 14:46 ` Nicolas Goaziou 1 sibling, 0 replies; 33+ messages in thread From: zwz @ 2014-03-15 13:54 UTC (permalink / raw) To: emacs-orgmode Eric Schulte <schulte.eric@gmail.com> writes: >> Sorry for being unclear here. I wanted to propose different >> behaviour for TAGs (lets say :noexport:) and the COMMENT keyword. >> I am perfectly fine with :noexport: only prohibiting export but >> still allowing evaluation. >> >> But I propose that COMMENT be more treated like a comment, so more >> like a shorthand for commenting out that subtree using '# '. >> That way, evaluation would be disabled. >> >> I see two benefits: >> 1. It serves the use-case where one wants a subtree to be not >> exported and not evaluated. >> 2. It more resembles Orgs idea of comments. >> >> And since the other use case (no export but still evaluation) is >> still very well supported via :noexport: there would be not too >> much loss. >> >> (IIRC, the COMMENT keyword was close to removal from Orgs syntax >> recently. So, why not add some real additional functionality to >> it?) >> >> WDYT? >> > > This sounds like a good compromise to me. As you say, this should > easily and visually support both use cases and is intuitive. I've not > touched the export machinery myself, so I'll leave the implementation to > Nicolas but I definitely support this approach. > > Best, > COMMENT is a good proposal. However, for someone new to org-mode, it is difficult to tell the subtle difference between COMMENT and :noexport:. IMO, it is more intuitive that :noexport: prohibits *both* export and evaluation, and if some code in a :noexport: subtree is to be evaluated, then it should be named and called in some other place. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-14 19:59 ` Eric Schulte 2014-03-15 13:54 ` zwz @ 2014-03-15 14:46 ` Nicolas Goaziou 2014-03-16 2:48 ` Eric Schulte 1 sibling, 1 reply; 33+ messages in thread From: Nicolas Goaziou @ 2014-03-15 14:46 UTC (permalink / raw) To: Eric Schulte; +Cc: Andreas Leha, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 617 bytes --] Hello, Eric Schulte <schulte.eric@gmail.com> writes: > This sounds like a good compromise to me. As you say, this should > easily and visually support both use cases and is intuitive. I've not > touched the export machinery myself, so I'll leave the implementation to > Nicolas but I definitely support this approach. Here are the patches, with tests. I leave to someone else the documentation part in the manual. As a side note, I think `org-babel-under-commented-heading-p' is useful enough (with an optional parameter to prevent inheritance, maybe) to be moved into "org.el". Regards, -- Nicolas Goaziou [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ob-tangle-Fix-org-babel-under-commented-heading-p.patch --] [-- Type: text/x-diff, Size: 1507 bytes --] From dadb93605aaef5b77837227ddd18b6e2448a00f1 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaziou@gmail.com> Date: Sat, 15 Mar 2014 15:32:59 +0100 Subject: [PATCH 1/2] ob-tangle: Fix `org-babel-under-commented-heading-p' * lisp/ob-tangle.el (org-babel-under-commented-heading-p): `org-comment-string' is case sensitive and cannot be attached to other text. --- lisp/ob-tangle.el | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index 2910d7f..bf67410 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -359,12 +359,17 @@ that the appropriate major-mode is set. SPEC has the form: (defvar org-comment-string) ;; Defined in org.el (defun org-babel-under-commented-heading-p () - "Return t if currently under a commented heading." - (unless (org-before-first-heading-p) - (if (let ((hd (nth 4 (org-heading-components)))) - (and hd (string-match (concat "^" org-comment-string) hd))) - t - (save-excursion + "Non-nil if point is under a commented heading. +This function also checks ancestors of the current headline, if +any." + (cond + ((org-before-first-heading-p) nil) + ((let ((headline (nth 4 (org-heading-components)))) + (and headline + (let ((case-fold-search nil)) + (org-string-match-p (concat "^" org-comment-string "\\(?: \\|$\\)") + headline))))) + (t (save-excursion (and (org-up-heading-safe) (org-babel-under-commented-heading-p)))))) -- 1.9.0 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-ob-exp-During-export-ignore-Babel-code-under-comment.patch --] [-- Type: text/x-diff, Size: 11461 bytes --] From fbb6fd01568a6cc25a7c8b06f0210dce1685742c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaziou@gmail.com> Date: Sat, 15 Mar 2014 09:34:05 +0100 Subject: [PATCH 2/2] ob-exp: During export ignore Babel code under commented headlines * lisp/ob-exp.el (org-babel-exp-process-buffer): Skip code under a commented headline. * testing/lisp/test-ob-exp.el (ob-export/export-under-commented-headline): New test. --- lisp/ob-exp.el | 242 ++++++++++++++++++++++---------------------- testing/lisp/test-ob-exp.el | 50 +++++++++ 2 files changed, 172 insertions(+), 120 deletions(-) diff --git a/lisp/ob-exp.el b/lisp/ob-exp.el index 09ae827..38618ee 100644 --- a/lisp/ob-exp.el +++ b/lisp/ob-exp.el @@ -163,127 +163,129 @@ this template." "^[ \t]*#\\+BEGIN_SRC"))) (goto-char (point-min)) (while (re-search-forward regexp nil t) - (let* ((element (save-excursion - ;; If match is inline, point is at its - ;; end. Move backward so - ;; `org-element-context' can get the - ;; object, not the following one. - (backward-char) - (save-match-data (org-element-context)))) - (type (org-element-type element)) - (begin (copy-marker (org-element-property :begin element))) - (end (copy-marker - (save-excursion - (goto-char (org-element-property :end element)) - (skip-chars-backward " \r\t\n") - (point))))) - (case type - (inline-src-block - (let* ((info (org-babel-parse-inline-src-block-match)) - (params (nth 2 info))) - (setf (nth 1 info) - (if (and (cdr (assoc :noweb params)) - (string= "yes" (cdr (assoc :noweb params)))) - (org-babel-expand-noweb-references - info (org-babel-exp-get-export-buffer)) - (nth 1 info))) - (goto-char begin) - (let ((replacement (org-babel-exp-do-export info 'inline))) - (if (equal replacement "") - ;; Replacement code is empty: remove inline src - ;; block, including extra white space that - ;; might have been created when inserting - ;; results. - (delete-region begin - (progn (goto-char end) - (skip-chars-forward " \t") - (point))) - ;; Otherwise: remove inline src block but - ;; preserve following white spaces. Then insert - ;; value. - (delete-region begin end) - (insert replacement))))) - ((babel-call inline-babel-call) - (let* ((lob-info (org-babel-lob-get-info)) - (results - (org-babel-exp-do-export - (list "emacs-lisp" "results" - (apply #'org-babel-merge-params - org-babel-default-header-args - org-babel-default-lob-header-args - (append - (org-babel-params-from-properties) - (list - (org-babel-parse-header-arguments - (org-no-properties - (concat - ":var results=" - (mapconcat 'identity - (butlast lob-info 2) - " "))))))) - "" (nth 3 lob-info) (nth 2 lob-info)) - 'lob)) - (rep (org-fill-template - org-babel-exp-call-line-template - `(("line" . ,(nth 0 lob-info)))))) - ;; If replacement is empty, completely remove the - ;; object/element, including any extra white space - ;; that might have been created when including - ;; results. - (if (equal rep "") - (delete-region - begin - (progn (goto-char end) - (if (not (eq type 'babel-call)) - (progn (skip-chars-forward " \t") (point)) - (skip-chars-forward " \r\t\n") - (line-beginning-position)))) - ;; Otherwise, preserve following white - ;; spaces/newlines and then, insert replacement - ;; string. + (unless (save-match-data (org-babel-under-commented-heading-p)) + (let* ((element (save-excursion + ;; If match is inline, point is at its + ;; end. Move backward so + ;; `org-element-context' can get the + ;; object, not the following one. + (backward-char) + (save-match-data (org-element-context)))) + (type (org-element-type element)) + (begin (copy-marker (org-element-property :begin element))) + (end (copy-marker + (save-excursion + (goto-char (org-element-property :end element)) + (skip-chars-backward " \r\t\n") + (point))))) + (case type + (inline-src-block + (let* ((info (org-babel-parse-inline-src-block-match)) + (params (nth 2 info))) + (setf (nth 1 info) + (if (and (cdr (assoc :noweb params)) + (string= "yes" (cdr (assoc :noweb params)))) + (org-babel-expand-noweb-references + info (org-babel-exp-get-export-buffer)) + (nth 1 info))) (goto-char begin) - (delete-region begin end) - (insert rep)))) - (src-block - (let* ((match-start (copy-marker (match-beginning 0))) - (ind (org-get-indentation)) - (headers - (cons - (org-element-property :language element) - (let ((params (org-element-property :parameters - element))) - (and params (org-split-string params "[ \t]+")))))) - ;; Take care of matched block: compute replacement - ;; string. In particular, a nil REPLACEMENT means - ;; the block should be left as-is while an empty - ;; string should remove the block. - (let ((replacement (progn (goto-char match-start) - (org-babel-exp-src-block headers)))) - (cond ((not replacement) (goto-char end)) - ((equal replacement "") - (goto-char end) - (skip-chars-forward " \r\t\n") - (beginning-of-line) - (delete-region begin (point))) - (t - (goto-char match-start) - (delete-region (point) - (save-excursion (goto-char end) - (line-end-position))) - (insert replacement) - (if (or org-src-preserve-indentation - (org-element-property :preserve-indent - element)) - ;; Indent only the code block markers. - (save-excursion (skip-chars-backward " \r\t\n") - (indent-line-to ind) - (goto-char match-start) - (indent-line-to ind)) - ;; Indent everything. - (indent-rigidly match-start (point) ind))))) - (set-marker match-start nil)))) - (set-marker begin nil) - (set-marker end nil))))))) + (let ((replacement (org-babel-exp-do-export info 'inline))) + (if (equal replacement "") + ;; Replacement code is empty: remove inline + ;; source block, including extra white space + ;; that might have been created when + ;; inserting results. + (delete-region begin + (progn (goto-char end) + (skip-chars-forward " \t") + (point))) + ;; Otherwise: remove inline src block but + ;; preserve following white spaces. Then + ;; insert value. + (delete-region begin end) + (insert replacement))))) + ((babel-call inline-babel-call) + (let* ((lob-info (org-babel-lob-get-info)) + (results + (org-babel-exp-do-export + (list "emacs-lisp" "results" + (apply #'org-babel-merge-params + org-babel-default-header-args + org-babel-default-lob-header-args + (append + (org-babel-params-from-properties) + (list + (org-babel-parse-header-arguments + (org-no-properties + (concat + ":var results=" + (mapconcat 'identity + (butlast lob-info 2) + " "))))))) + "" (nth 3 lob-info) (nth 2 lob-info)) + 'lob)) + (rep (org-fill-template + org-babel-exp-call-line-template + `(("line" . ,(nth 0 lob-info)))))) + ;; If replacement is empty, completely remove the + ;; object/element, including any extra white space + ;; that might have been created when including + ;; results. + (if (equal rep "") + (delete-region + begin + (progn (goto-char end) + (if (not (eq type 'babel-call)) + (progn (skip-chars-forward " \t") (point)) + (skip-chars-forward " \r\t\n") + (line-beginning-position)))) + ;; Otherwise, preserve following white + ;; spaces/newlines and then, insert replacement + ;; string. + (goto-char begin) + (delete-region begin end) + (insert rep)))) + (src-block + (let* ((match-start (copy-marker (match-beginning 0))) + (ind (org-get-indentation)) + (headers + (cons + (org-element-property :language element) + (let ((params (org-element-property :parameters + element))) + (and params (org-split-string params "[ \t]+")))))) + ;; Take care of matched block: compute replacement + ;; string. In particular, a nil REPLACEMENT means + ;; the block should be left as-is while an empty + ;; string should remove the block. + (let ((replacement + (progn (goto-char match-start) + (org-babel-exp-src-block headers)))) + (cond ((not replacement) (goto-char end)) + ((equal replacement "") + (goto-char end) + (skip-chars-forward " \r\t\n") + (beginning-of-line) + (delete-region begin (point))) + (t + (goto-char match-start) + (delete-region (point) + (save-excursion (goto-char end) + (line-end-position))) + (insert replacement) + (if (or org-src-preserve-indentation + (org-element-property :preserve-indent + element)) + ;; Indent only the code block markers. + (save-excursion (skip-chars-backward " \r\t\n") + (indent-line-to ind) + (goto-char match-start) + (indent-line-to ind)) + ;; Indent everything. + (indent-rigidly match-start (point) ind))))) + (set-marker match-start nil)))) + (set-marker begin nil) + (set-marker end nil)))))))) (defun org-babel-in-example-or-verbatim () "Return true if point is in example or verbatim code. diff --git a/testing/lisp/test-ob-exp.el b/testing/lisp/test-ob-exp.el index 8345da7..d5db187 100644 --- a/testing/lisp/test-ob-exp.el +++ b/testing/lisp/test-ob-exp.el @@ -356,6 +356,56 @@ Here is one at the end of a line. =2= (org-export-execute-babel-code) (buffer-string)))))) +(ert-deftest ob-export/export-under-commented-headline () + "Test evaluation of code blocks under COMMENT headings." + ;; Do not eval block in a commented headline. + (should + (string-match + ": 2" + (org-test-with-temp-text "* Headline +#+BEGIN_SRC emacs-lisp :exports results +\(+ 1 1) +#+END_SRC" + (org-export-execute-babel-code) + (buffer-string)))) + (should-not + (string-match + ": 2" + (org-test-with-temp-text "* COMMENT Headline +#+BEGIN_SRC emacs-lisp :exports results +\(+ 1 1) +#+END_SRC" + (org-export-execute-babel-code) + (buffer-string)))) + ;; Do not eval inline blocks either. + (should + (string-match + "=2=" + (org-test-with-temp-text "* Headline +src_emacs-lisp{(+ 1 1)}" + (org-export-execute-babel-code) + (buffer-string)))) + (should-not + (string-match + "=2=" + (org-test-with-temp-text "* COMMENT Headline +src_emacs-lisp{(+ 1 1)}" + (org-export-execute-babel-code) + (buffer-string)))) + ;; Also check parent headlines. + (should-not + (string-match + ": 2" + (org-test-with-temp-text " +* COMMENT Headline +** Children +#+BEGIN_SRC emacs-lisp :exports results +\(+ 1 1) +#+END_SRC" + (org-export-execute-babel-code) + (buffer-string))))) + + (provide 'test-ob-exp) ;;; test-ob-exp.el ends here -- 1.9.0 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-15 14:46 ` Nicolas Goaziou @ 2014-03-16 2:48 ` Eric Schulte 2014-03-17 21:13 ` Andreas Leha 2014-03-24 15:15 ` Nicolas Goaziou 0 siblings, 2 replies; 33+ messages in thread From: Eric Schulte @ 2014-03-16 2:48 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Andreas Leha, emacs-orgmode Nicolas Goaziou <n.goaziou@gmail.com> writes: > Hello, > > Eric Schulte <schulte.eric@gmail.com> writes: > >> This sounds like a good compromise to me. As you say, this should >> easily and visually support both use cases and is intuitive. I've not >> touched the export machinery myself, so I'll leave the implementation to >> Nicolas but I definitely support this approach. > > Here are the patches, with tests. I leave to someone else the > documentation part in the manual. > Applied with documentation. Thanks, > > As a side note, I think `org-babel-under-commented-heading-p' is useful > enough (with an optional parameter to prevent inheritance, maybe) to be > moved into "org.el". > I agree. -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-16 2:48 ` Eric Schulte @ 2014-03-17 21:13 ` Andreas Leha 2014-03-24 15:15 ` Nicolas Goaziou 1 sibling, 0 replies; 33+ messages in thread From: Andreas Leha @ 2014-03-17 21:13 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas and Eric, Eric Schulte <schulte.eric@gmail.com> writes: > Nicolas Goaziou <n.goaziou@gmail.com> writes: > >> Hello, >> >> Eric Schulte <schulte.eric@gmail.com> writes: >> >>> This sounds like a good compromise to me. As you say, this should >>> easily and visually support both use cases and is intuitive. I've not >>> touched the export machinery myself, so I'll leave the implementation to >>> Nicolas but I definitely support this approach. >> >> Here are the patches, with tests. I leave to someone else the >> documentation part in the manual. >> > > Applied with documentation. Thanks, > Thank you very much! - Andreas ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-16 2:48 ` Eric Schulte 2014-03-17 21:13 ` Andreas Leha @ 2014-03-24 15:15 ` Nicolas Goaziou 2014-03-24 16:05 ` Eric Schulte 1 sibling, 1 reply; 33+ messages in thread From: Nicolas Goaziou @ 2014-03-24 15:15 UTC (permalink / raw) To: Eric Schulte; +Cc: Andreas Leha, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 348 bytes --] Hello, Eric Schulte <schulte.eric@gmail.com> writes: > Nicolas Goaziou <n.goaziou@gmail.com> writes: >> >> As a side note, I think `org-babel-under-commented-heading-p' is useful >> enough (with an optional parameter to prevent inheritance, maybe) to be >> moved into "org.el". >> > > I agree. Here is the patch. Regards, -- Nicolas Goaziou [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Rename-org-babel-under-commented-heading-p.patch --] [-- Type: text/x-diff, Size: 5141 bytes --] From 690543c40d766802df3e30e44ef7d6f04d6c18ba Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaziou@gmail.com> Date: Mon, 24 Mar 2014 16:12:12 +0100 Subject: [PATCH] Rename `org-babel-under-commented-heading-p' * lisp/org.el (org-in-commented-heading-p): New function. * lisp/ob-tangle.el (org-babel-under-commented-heading-p): Remove function. (org-babel-tangle-collect-blocks): Use new function. * lisp/ob-exp.el (org-babel-exp-process-buffer): Use new function. * testing/lisp/test-org.el (test-org/in-commented-heading-p): New test. --- lisp/ob-exp.el | 2 +- lisp/ob-tangle.el | 18 +----------------- lisp/org.el | 16 ++++++++++++++++ testing/lisp/test-org.el | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/lisp/ob-exp.el b/lisp/ob-exp.el index 0ddb4dc..3b63422 100644 --- a/lisp/ob-exp.el +++ b/lisp/ob-exp.el @@ -158,7 +158,7 @@ may make them unreachable." "^[ \t]*#\\+BEGIN_SRC"))) (goto-char (point-min)) (while (re-search-forward regexp nil t) - (unless (save-match-data (org-babel-under-commented-heading-p)) + (unless (save-match-data (org-in-commented-heading-p)) (let* ((element (save-excursion ;; If match is inline, point is at its ;; end. Move backward so diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index bf67410..294a6ff 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -357,22 +357,6 @@ that the appropriate major-mode is set. SPEC has the form: insert-comment (org-fill-template org-babel-tangle-comment-format-end link-data))))) -(defvar org-comment-string) ;; Defined in org.el -(defun org-babel-under-commented-heading-p () - "Non-nil if point is under a commented heading. -This function also checks ancestors of the current headline, if -any." - (cond - ((org-before-first-heading-p) nil) - ((let ((headline (nth 4 (org-heading-components)))) - (and headline - (let ((case-fold-search nil)) - (org-string-match-p (concat "^" org-comment-string "\\(?: \\|$\\)") - headline))))) - (t (save-excursion - (and (org-up-heading-safe) - (org-babel-under-commented-heading-p)))))) - (defun org-babel-tangle-collect-blocks (&optional language tangle-file) "Collect source blocks in the current Org-mode file. Return an association list of source-code block specifications of @@ -396,7 +380,7 @@ can be used to limit the collected code blocks by target file." (let* ((info (org-babel-get-src-block-info 'light)) (src-lang (nth 0 info)) (src-tfile (cdr (assoc :tangle (nth 2 info))))) - (unless (or (org-babel-under-commented-heading-p) + (unless (or (org-in-commented-heading-p) (string= (cdr (assoc :tangle (nth 2 info))) "no") (and tangle-file (not (equal tangle-file src-tfile)))) (unless (and language (not (string= language src-lang))) diff --git a/lisp/org.el b/lisp/org.el index 727f646..ef0bc3f 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -23303,6 +23303,22 @@ This version does not only check the character property, but also ;; Compatibility alias with Org versions < 7.8.03 (defalias 'org-on-heading-p 'org-at-heading-p) +(defun org-in-commented-heading-p (&optional no-inheritance) + "Non-nil if point is under a commented heading. +This function also checks ancestors of the current headline, +unless optional argument NO-INHERITANCE is non-nil." + (cond + ((org-before-first-heading-p) nil) + ((let ((headline (nth 4 (org-heading-components)))) + (and headline + (let ((case-fold-search nil)) + (org-string-match-p (concat "^" org-comment-string "\\(?: \\|$\\)") + headline))))) + (no-inheritance nil) + (t (save-excursion + (and (org-up-heading-safe) + (org-in-commented-heading-p t)))))) + (defun org-at-comment-p nil "Is cursor in a line starting with a # character?" (save-excursion diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index 949392e..0144841 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -544,6 +544,38 @@ \f +;;; Headline + +(ert-deftest test-org/in-commented-heading-p () + "Test `org-in-commented-heading-p' specifications." + ;; Commented headline. + (should + (org-test-with-temp-text "* COMMENT Headline\nBody" + (goto-char (point-max)) + (org-in-commented-heading-p))) + ;; Commented ancestor. + (should + (org-test-with-temp-text "* COMMENT Headline\n** Level 2\nBody" + (goto-char (point-max)) + (org-in-commented-heading-p))) + ;; Comment keyword is case-sensitive. + (should-not + (org-test-with-temp-text "* Comment Headline\nBody" + (goto-char (point-max)) + (org-in-commented-heading-p))) + ;; Keyword is standalone. + (should-not + (org-test-with-temp-text "* COMMENTHeadline\nBody" + (goto-char (point-max)) + (org-in-commented-heading-p))) + ;; Optional argument. + (should-not + (org-test-with-temp-text "* COMMENT Headline\n** Level 2\nBody" + (goto-char (point-max)) + (org-in-commented-heading-p t)))) + + +\f ;;; Links ;;;; Coderefs -- 1.9.1 ^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-24 15:15 ` Nicolas Goaziou @ 2014-03-24 16:05 ` Eric Schulte 2014-03-24 16:21 ` Bastien 0 siblings, 1 reply; 33+ messages in thread From: Eric Schulte @ 2014-03-24 16:05 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Andreas Leha, emacs-orgmode, Eric Schulte Nicolas Goaziou <n.goaziou@gmail.com> writes: > Hello, > > Eric Schulte <schulte.eric@gmail.com> writes: > >> Nicolas Goaziou <n.goaziou@gmail.com> writes: >>> >>> As a side note, I think `org-babel-under-commented-heading-p' is useful >>> enough (with an optional parameter to prevent inheritance, maybe) to be >>> moved into "org.el". >>> >> >> I agree. > > Here is the patch. > Looks good to me, I'll leave to Bastien since it touches core Org-mode functionality and not just Babel. Thanks, -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-24 16:05 ` Eric Schulte @ 2014-03-24 16:21 ` Bastien 2014-03-24 17:28 ` Eric Schulte 0 siblings, 1 reply; 33+ messages in thread From: Bastien @ 2014-03-24 16:21 UTC (permalink / raw) To: Eric Schulte; +Cc: emacs-orgmode, Andreas Leha, Nicolas Goaziou Hi Nicolas and Eric, Eric Schulte <schulte.eric@gmail.com> writes: > Looks good to me, I'll leave to Bastien since it touches core Org-mode > functionality and not just Babel. Looks good to me, please apply, -- Bastien ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-24 16:21 ` Bastien @ 2014-03-24 17:28 ` Eric Schulte 2014-03-24 18:06 ` Samuel Wales 0 siblings, 1 reply; 33+ messages in thread From: Eric Schulte @ 2014-03-24 17:28 UTC (permalink / raw) To: Bastien; +Cc: emacs-orgmode, Andreas Leha, Nicolas Goaziou, Eric Schulte Bastien <bzg@gnu.org> writes: > Hi Nicolas and Eric, > > Eric Schulte <schulte.eric@gmail.com> writes: > >> Looks good to me, I'll leave to Bastien since it touches core Org-mode >> functionality and not just Babel. > > Looks good to me, please apply, Applied. -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-24 17:28 ` Eric Schulte @ 2014-03-24 18:06 ` Samuel Wales 2014-03-24 18:49 ` Samuel Wales 0 siblings, 1 reply; 33+ messages in thread From: Samuel Wales @ 2014-03-24 18:06 UTC (permalink / raw) To: Eric Schulte; +Cc: Bastien, Nicolas Goaziou, Andreas Leha, emacs-orgmode now that everybody is happy, agreeing, and singing in a circle holding hands, i thought i'd stir the pot. :] i hope i don't get wicked glares. :] there are a few unresolved questions. there is also something that, for my workflow at least, is a bug. i set org-export-with-tasks to nil, because i want to export only blank headers. this is a GREAT feature. tldr: call lines are executed when they should not be. === i never use export tags. i only use comment for occasional, temporary, truly commented out things. i cannot use it for more purposes because it changes sorting and highlighting of todo keywords. that makes it not worth using for any other purpose. so i do: === ***** a ******* REF b ******* NEXT e ******* d ******* MAYBE c === which exports a and d, but not b e c. this is perfect. it is exactly what i want. i get a sense of "this is software working the way it should" every time i export. i REALLY like how i can intersperse notes with exported stuff. no tags or comments or anything fancy, just todo keywords. except for one thing. underneath b i like to put babel blocks that are relevant to a. and above the babel blocks, i might have some call lines. these lines are for testing. i do c-c c-c on them manually, to test the block. i also export b while testing, to get all of them at once. but most of the time i only export a. this is all well and good -- again, perfect -- but in maint at least, babel actually executes those call lines upon export of a. i don't want them exported, because they are only there for testing. i don't want to comment out the header, because that changes font lock, turns off the block [which i use], and changes sorting. to me it's a bug that those call lines are executed. i'll join the circle if you guys will agree with me on this. :] samuel -- The Kafka Pandemic: http://thekafkapandemic.blogspot.com The disease DOES progress. MANY people have died from it. And ANYBODY can get it. Denmark: free Karina Hansen NOW. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-24 18:06 ` Samuel Wales @ 2014-03-24 18:49 ` Samuel Wales 0 siblings, 0 replies; 33+ messages in thread From: Samuel Wales @ 2014-03-24 18:49 UTC (permalink / raw) To: Eric Schulte; +Cc: Bastien, Nicolas Goaziou, Andreas Leha, emacs-orgmode note: this is not a high priority for me, but it seems like a bug, it can result in surprising behavior for new users, and it helps clarify this thread, so it seemed worth posting. the ecm is in this thread. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-13 22:48 ` Andreas Leha 2014-03-14 1:03 ` Eric Schulte @ 2014-03-14 1:10 ` John Hendy 2014-03-14 8:34 ` Sebastien Vauban 2 siblings, 0 replies; 33+ messages in thread From: John Hendy @ 2014-03-14 1:10 UTC (permalink / raw) To: Andreas Leha; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 2811 bytes --] On Mar 13, 2014 5:49 PM, "Andreas Leha" <andreas.leha@med.uni-goettingen.de> wrote: > > Hi Eric, > > Eric Schulte <schulte.eric@gmail.com> writes: > > >>>>> > >>>>> So what is your suggestion for the OP to achieve what he is after? > >>>>> noexport and noeval at the same time. > >>>>> > > > > I'm jumping in half way through here, > > Thanks for jumping in. > > > but wouldn't setting the :noeval > > property to "yes" and :export property to "none" on the subtree work? > > Well, the property-setting works, but that is really cumbersome. In a > typical org file, it takes 5 keystrokes to toggle the :noexport: tag > (C-c C-c n TAB RET). But I do not want to count the keystrokes it take > to additionally set these properties. > > Just to confirm. This is what you suggest, correct? > > --8<---------------cut here---------------start------------->8--- > * test > > ** Not exported :noexport: > :PROPERTIES: > :noeval: "yes" > :export: "none" > :END: > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > --8<---------------cut here---------------end--------------->8--- > > > > > > > One may also want to COMMENT the subtree to inhibit it's export > > wholepiece (not just code blocks). > > This does not seem to work, as the test.png is also created here. > > Again, just to confirm. This is your suggestion, correct? > > --8<---------------cut here---------------start------------->8--- > * test > > ** COMMENT Not exported > #+BEGIN_SRC ditaa :file test.png :cmdline -E > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | > +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > #+END_SRC > > ** blah blah > blah blah blah > --8<---------------cut here---------------end--------------->8--- > > > So, my question to this thread is: What is the easiest way to disable a > subtree during export completely so that also none of the code blocks is > evaluated (regardless of its :session argument). > > Or even more precisely: Couldn't the COMMENT keyword do exactly that? I > do not expect code from inside a COMMENT subtree to be considered during > export. > Can we track down why I got different results for R vs. ditaa in my message above? Couldn't we be chasing our tails if this is ditaa specific? R is behaving like expected (no eval if tree marked noexport), ditaa is not. John > > Regards, > Andreas > > > > [-- Attachment #2: Type: text/html, Size: 3986 bytes --] ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-13 22:48 ` Andreas Leha 2014-03-14 1:03 ` Eric Schulte 2014-03-14 1:10 ` John Hendy @ 2014-03-14 8:34 ` Sebastien Vauban 2 siblings, 0 replies; 33+ messages in thread From: Sebastien Vauban @ 2014-03-14 8:34 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Andreas Leha wrote: > Just to confirm. This is what you suggest, correct? > > * test > > ** Not exported :noexport: > :PROPERTIES: > :noeval: "yes" > :export: "none" > :END: Maybe it's not a real problem, but quotes are for sure not necessarily: --8<---------------cut here---------------start------------->8--- ** Not exported :noexport: :PROPERTIES: :noeval: yes :export: none :END: --8<---------------cut here---------------end--------------->8--- Best regards, Seb -- Sebastien Vauban ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 13:27 ` Ken Mankoff 2014-03-11 13:41 ` Andreas Leha @ 2014-03-11 14:03 ` Rainer M Krug 2014-03-12 9:23 ` Sebastien Vauban 2014-03-12 11:02 ` zwz 1 sibling, 2 replies; 33+ messages in thread From: Rainer M Krug @ 2014-03-11 14:03 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1436 bytes --] Ken Mankoff <mankoff@gmail.com> writes: > On 2014-03-11 at 08:47, zwz wrote: >> In my setup, there is >> (setq org-export-exclude-tags '("private" "exclude") >> >> and In my test.org: >> >> * test >> >> ** Not exported :exclude: >> #+BEGIN_SRC ditaa :file test.png :cmdline -E >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >> #+END_SRC >> >> ** blah blah >> blah blah blah >> >> >> When I try to export it to pdf, the test.png is still generated, >> although it is not used for the pdf at all. >> So I think the export procedure may be optimized for more efficiency. > > No, because I often have code and sections I don't want exported, but > I want their side-effects active. For example, code with sessions > where part is not exported, but I need that code run so code > elsewhere, using the same session, is able to run and be exported. AFAIK, this depends if you use a session. When you are using a session, *all* code blocks are evaluated, if you do not set the header argument session, only the ones which are exported are evaluated - precisely the reason you give. Rainer > > -k. > > -- Rainer M. Krug email: RMKrug<at>gmail<dot>com [-- Attachment #2: Type: application/pgp-signature, Size: 494 bytes --] ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 14:03 ` Rainer M Krug @ 2014-03-12 9:23 ` Sebastien Vauban 2014-03-12 10:46 ` zwz 2014-03-12 11:02 ` zwz 1 sibling, 1 reply; 33+ messages in thread From: Sebastien Vauban @ 2014-03-12 9:23 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Rainer M Krug wrote: > Ken Mankoff <mankoff-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: >> On 2014-03-11 at 08:47, zwz wrote: >>> In my setup, there is >>> (setq org-export-exclude-tags '("private" "exclude") >>> >>> and In my test.org: >>> >>> * test >>> >>> ** Not exported :exclude: >>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> #+END_SRC >>> >>> ** blah blah >>> blah blah blah >>> >>> >>> When I try to export it to pdf, the test.png is still generated, >>> although it is not used for the pdf at all. >>> So I think the export procedure may be optimized for more efficiency. >> >> No, because I often have code and sections I don't want exported, but >> I want their side-effects active. For example, code with sessions >> where part is not exported, but I need that code run so code >> elsewhere, using the same session, is able to run and be exported. > > AFAIK, this depends if you use a session. When you are using a session, > *all* code blocks are evaluated, if you do not set the header argument > session, only the ones which are exported are evaluated - precisely the > reason you give. We should know if zwz uses a session or not. Because, IIUC, what he reports is that all code blocks are evaluated, even the ones which are not exported. Best regards, Seb -- Sebastien Vauban ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-12 9:23 ` Sebastien Vauban @ 2014-03-12 10:46 ` zwz 0 siblings, 0 replies; 33+ messages in thread From: zwz @ 2014-03-12 10:46 UTC (permalink / raw) To: emacs-orgmode Sebastien Vauban <sva-news@mygooglest.com> writes: > Rainer M Krug wrote: >> Ken Mankoff <mankoff@gmail.com> writes: >>> On 2014-03-11 at 08:47, zwz wrote: >>>> In my setup, there is >>>> (setq org-export-exclude-tags '("private" "exclude") >>>> >>>> and In my test.org: >>>> >>>> * test >>>> >>>> ** Not exported :exclude: >>>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>>> #+END_SRC >>>> >>>> ** blah blah >>>> blah blah blah >>>> >>>> >>>> When I try to export it to pdf, the test.png is still generated, >>>> although it is not used for the pdf at all. >>>> So I think the export procedure may be optimized for more efficiency. >>> >>> No, because I often have code and sections I don't want exported, but >>> I want their side-effects active. For example, code with sessions >>> where part is not exported, but I need that code run so code >>> elsewhere, using the same session, is able to run and be exported. >> >> AFAIK, this depends if you use a session. When you are using a session, >> *all* code blocks are evaluated, if you do not set the header argument >> session, only the ones which are exported are evaluated - precisely the >> reason you give. > > We should know if zwz uses a session or not. Because, IIUC, what he > reports is that all code blocks are evaluated, even the ones which are > not exported. > > Best regards, > Seb I checked my org settings, and did not found anything about "session". And here is the options in the file: #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t Is session turned on by default? ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-11 14:03 ` Rainer M Krug 2014-03-12 9:23 ` Sebastien Vauban @ 2014-03-12 11:02 ` zwz 2014-03-12 15:00 ` John Hendy 1 sibling, 1 reply; 33+ messages in thread From: zwz @ 2014-03-12 11:02 UTC (permalink / raw) To: emacs-orgmode Rainer M Krug <Rainer@krugs.de> writes: > Ken Mankoff <mankoff@gmail.com> writes: > >> On 2014-03-11 at 08:47, zwz wrote: >>> In my setup, there is >>> (setq org-export-exclude-tags '("private" "exclude") >>> >>> and In my test.org: >>> >>> * test >>> >>> ** Not exported :exclude: >>> #+BEGIN_SRC ditaa :file test.png :cmdline -E >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | >>> +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ >>> #+END_SRC >>> >>> ** blah blah >>> blah blah blah >>> >>> >>> When I try to export it to pdf, the test.png is still generated, >>> although it is not used for the pdf at all. >>> So I think the export procedure may be optimized for more efficiency. >> >> No, because I often have code and sections I don't want exported, but >> I want their side-effects active. For example, code with sessions >> where part is not exported, but I need that code run so code >> elsewhere, using the same session, is able to run and be exported. > > AFAIK, this depends if you use a session. When you are using a session, > *all* code blocks are evaluated, if you do not set the header argument > session, only the ones which are exported are evaluated - precisely the > reason you give. > > Rainer > >> >> -k. >> >> In my example, I did not set the header argument session, and variable org-babel-default-header-args has the value: (:results . "replace") (:exports . "code") (:cache . "no") (:noweb . "no") (:hlines . "no") (:tangle . "no")) However, the block still runs. ^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: Babel should not work in the subtree marked as not exported 2014-03-12 11:02 ` zwz @ 2014-03-12 15:00 ` John Hendy 0 siblings, 0 replies; 33+ messages in thread From: John Hendy @ 2014-03-12 15:00 UTC (permalink / raw) To: zwz; +Cc: emacs-orgmode > In my example, I did not set the header argument session, and variable > org-babel-default-header-args has the value: > (:results . "replace") > (:exports . "code") > (:cache . "no") > (:noweb . "no") > (:hlines . "no") > (:tangle . "no")) > However, the block still runs. I wanted to try and reproduce this, as I thought I had the *opposite* issue previously. I was correct, granted it was on Org < 8.0: - http://lists.gnu.org/archive/html/emacs-orgmode/2012-10/msg00762.html Code in :noexport: sections was not running, and I wanted to know how I could get it to run (and I even had a :session argument). I took a stab at your document with R and can't reproduce (behavior is the same as in my post above). /However/, I get the same with you using ditaa, even with no :session argument. Test file: * Trying with R Uses no =:session= argument; =R-yes.png= should be be created and =R-no.png= should not. ** Don't run this :noexport: #+header: :file ./R-no.png :height 200 #+begin_src R :results output graphics x <- 1:10 y <- x^2 plot(x,y) #+end_src ** Run this #+header: :file ./R-yes.png :height 200 #+begin_src R :results output graphics :exports results x <- 1:10 y <- x^2 plot(x,y) #+end_src * Trying with ditaa Uses no =:session= argument; =ditaa-yes.png= should be be created and =ditaa-no.png= should not. ** Don't run this :noexport: #+BEGIN_SRC ditaa :file ./ditaa-no.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC ** Run this #+BEGIN_SRC ditaa :file ditaa-yes.png :cmdline -E +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ x | 0 cRED | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | +--------+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ #+END_SRC And here's my minimal config: ;; change accordingly (add-to-list 'load-path "~/.elisp/org.git/lisp/") (add-to-list 'load-path "~/.elisp/org.git/contrib/lisp") (add-to-list 'load-path "~/.elisp/site-lisp/ess/lisp/") (require 'ox-latex) (org-babel-do-load-languages 'org-babel-load-languages '((R . t) (ditaa . t))) So, I can reproduce, but the behavior is not the same with R. My directory ends up with R-yes.png, and both ditaa-no.png *and* ditaa-yes.png. Is there a way to track down the source of the difference? John ^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2014-03-24 18:49 UTC | newest] Thread overview: 33+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-03-11 12:47 Babel should not work in the subtree marked as not exported zwz 2014-03-11 13:27 ` Ken Mankoff 2014-03-11 13:41 ` Andreas Leha 2014-03-11 13:57 ` Ken Mankoff 2014-03-12 10:53 ` zwz 2014-03-12 22:58 ` Andreas Leha 2014-03-13 14:24 ` Eric Schulte 2014-03-13 22:48 ` Andreas Leha 2014-03-14 1:03 ` Eric Schulte 2014-03-14 5:44 ` Samuel Wales 2014-03-14 13:02 ` zwz 2014-03-14 19:10 ` Samuel Wales 2014-03-14 5:48 ` Samuel Wales 2014-03-14 8:40 ` Sebastien Vauban 2014-03-14 8:41 ` Andreas Leha 2014-03-14 19:59 ` Eric Schulte 2014-03-15 13:54 ` zwz 2014-03-15 14:46 ` Nicolas Goaziou 2014-03-16 2:48 ` Eric Schulte 2014-03-17 21:13 ` Andreas Leha 2014-03-24 15:15 ` Nicolas Goaziou 2014-03-24 16:05 ` Eric Schulte 2014-03-24 16:21 ` Bastien 2014-03-24 17:28 ` Eric Schulte 2014-03-24 18:06 ` Samuel Wales 2014-03-24 18:49 ` Samuel Wales 2014-03-14 1:10 ` John Hendy 2014-03-14 8:34 ` Sebastien Vauban 2014-03-11 14:03 ` Rainer M Krug 2014-03-12 9:23 ` Sebastien Vauban 2014-03-12 10:46 ` zwz 2014-03-12 11:02 ` zwz 2014-03-12 15:00 ` John Hendy
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).