* How do I specify the language for a :results code block @ 2013-11-29 21:49 Alan Schmitt 2013-11-29 22:10 ` Thomas S. Dye 0 siblings, 1 reply; 14+ messages in thread From: Alan Schmitt @ 2013-11-29 21:49 UTC (permalink / raw) To: emacs-orgmode Hello, I'm trying to write a block in some language (right now shell, but it will probably be something different) whose output is an org source block is some language (here coq). I keep looking at the documentation and I cannot see how to specify the language. If I try something like: #+BEGIN_SRC sh :results code head -n 3 demo.v #+END_SRC When I evaluate the block I get: #+RESULTS: #+BEGIN_SRC sh Definition toto : forall x, exists y, x = y. Lemma foo: forall x, x=x. #+END_SRC How can I have a block with "#+BEGIN_SRC coq" instead? I looked at http://orgmode.org/manual/Specific-header-arguments.html#Specific-header-arguments and at http://orgmode.org/manual/results.html#results and could not find where one would specify the language. Thanks, Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-11-29 21:49 How do I specify the language for a :results code block Alan Schmitt @ 2013-11-29 22:10 ` Thomas S. Dye 2013-11-29 23:48 ` Charles Berry 0 siblings, 1 reply; 14+ messages in thread From: Thomas S. Dye @ 2013-11-29 22:10 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode Aloha Alan, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > Hello, > > I'm trying to write a block in some language (right now shell, but it > will probably be something different) whose output is an org source > block is some language (here coq). I keep looking at the documentation > and I cannot see how to specify the language. If I try something like: > > #+BEGIN_SRC sh :results code > head -n 3 demo.v > #+END_SRC > > When I evaluate the block I get: > > #+RESULTS: > #+BEGIN_SRC sh > Definition toto : forall x, exists y, x = y. > > Lemma foo: forall x, x=x. > #+END_SRC > > How can I have a block with "#+BEGIN_SRC coq" instead? I looked at > http://orgmode.org/manual/Specific-header-arguments.html#Specific-header-arguments > and at http://orgmode.org/manual/results.html#results and could not find > where one would specify the language. I think this can be accomplished by chaining: #+name: first-link #+begin_src sh ECHO "XXX" #+end_src #+begin_src emacs-lisp :var x=first-link() (princ x) #+end_src #+results: : XXX hth, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-11-29 22:10 ` Thomas S. Dye @ 2013-11-29 23:48 ` Charles Berry 2013-11-30 10:52 ` Alan Schmitt 0 siblings, 1 reply; 14+ messages in thread From: Charles Berry @ 2013-11-29 23:48 UTC (permalink / raw) To: emacs-orgmode Thomas S. Dye <tsd <at> tsdye.com> writes: > > Aloha Alan, > > Alan Schmitt <alan.schmitt <at> polytechnique.org> writes: > > > Hello, > > > > I'm trying to write a block in some language (right now shell, but it > > will probably be something different) whose output is an org source > > block is some language (here coq). I keep looking at the documentation > > and I cannot see how to specify the language. If I try something like: [example-deleted] > > > > How can I have a block with "#+BEGIN_SRC coq" instead? [snip] > > I think this can be accomplished by chaining: > [example-deleted] The problem I see is that the :var x=y() idiom can hand an object to the src block that is hard to parse and execute -- depending on the language. If the object is create code in one language and run it in another, it is sometimes easier to insert results using noweb <<abc()>> calls. A simple example: generate code in sh that is run in emacs-lisp #+name: make-elisp #+BEGIN_SRC sh :exports none :var fun="+" echo "(" $fun "1 2)" #+END_SRC #+BEGIN_SRC emacs-lisp :noweb yes :exports results <<make-elisp()>> #+END_SRC #+RESULTS: : 3 #+BEGIN_SRC emacs-lisp :noweb yes :exports results <<make-elisp("-")>> #+END_SRC #+RESULTS: : -1 #+BEGIN_SRC emacs-lisp :noweb yes :exports results <<make-elisp("list")>> #+END_SRC #+RESULTS: | 1 | 2 | HTH, Chuck ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-11-29 23:48 ` Charles Berry @ 2013-11-30 10:52 ` Alan Schmitt 2013-11-30 16:57 ` Thomas S. Dye 0 siblings, 1 reply; 14+ messages in thread From: Alan Schmitt @ 2013-11-30 10:52 UTC (permalink / raw) To: Charles Berry; +Cc: emacs-orgmode Hello Thomas and Charles, ccberry@ucsd.edu writes: > A simple example: generate code in sh that is run in emacs-lisp This is almost what I want, with two differences: I don't want to run the generated code, but to pretty-print it, and I want to do this with another language than emacs-lisp. > #+name: make-elisp > #+BEGIN_SRC sh :exports none :var fun="+" > echo "(" $fun "1 2)" > #+END_SRC > > #+BEGIN_SRC emacs-lisp :noweb yes :exports results > <<make-elisp()>> > #+END_SRC > > #+RESULTS: > : 3 > > #+BEGIN_SRC emacs-lisp :noweb yes :exports results > <<make-elisp("-")>> > #+END_SRC > > #+RESULTS: > : -1 > > #+BEGIN_SRC emacs-lisp :noweb yes :exports results > <<make-elisp("list")>> > #+END_SRC > > #+RESULTS: > | 1 | 2 | I tried this, but I cannot make it fit my purpose. What I want is a function that will create an org mode source block to be exported as nicely formatted source code. Here is what I tried: #+name: fetchcoq #+BEGIN_SRC sh :exports none :var f="demo.v" head $f #+END_SRC #+BEGIN_SRC coq :noweb yes :exports code <<fetchcoq("demo.v")>> #+END_SRC If I export this, I get a block with lists, as if the results of "fetchcoq" was translated into an elisp data structure: ,---- | (("Definition toto : forall x" "exists y" "x = y.") ("" "" "") ("Lemma foo: forall x" "x=x." "")) `---- I tried this alternate approach, to directly generate the block: #+name: fetchcoq2 #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" echo "#+BEGIN_SRC coq" head $f echo echo "#+END_SRC" #+END_SRC #+call: fetchcoq2("demo.v") But then I get a result like this, with extra quoting: #+RESULTS: : #+BEGIN_SRC coq : Definition toto : forall x, exists y, x = y. : : Lemma foo: forall x, x=x. : #+END_SRC I feel like I'm missing something obvious. ":results code" is exactly what I want (put the results in a SRC block), but I don't know how to specify the headers of the generated code block. Thanks, Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-11-30 10:52 ` Alan Schmitt @ 2013-11-30 16:57 ` Thomas S. Dye 2013-12-02 10:41 ` Alan Schmitt 0 siblings, 1 reply; 14+ messages in thread From: Thomas S. Dye @ 2013-11-30 16:57 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode, Charles Berry Alan Schmitt <alan.schmitt@polytechnique.org> writes: > I tried this alternate approach, to directly generate the block: > > #+name: fetchcoq2 > #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" > echo "#+BEGIN_SRC coq" > head $f > echo > echo "#+END_SRC" > #+END_SRC > > #+call: fetchcoq2("demo.v") > > But then I get a result like this, with extra quoting: > > #+RESULTS: > : #+BEGIN_SRC coq > : Definition toto : forall x, exists y, x = y. > : > : Lemma foo: forall x, x=x. > : #+END_SRC > > I feel like I'm missing something obvious. ":results code" is exactly > what I want (put the results in a SRC block), but I don't know how to > specify the headers of the generated code block. You need :results raw at the end of the call line. #+name: fetchcoq2 #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" echo "#+BEGIN_SRC coq" echo $f echo "#+END_SRC" #+END_SRC #+results: fetchcoq2 #+BEGIN_SRC coq demo.v #+END_SRC #+call: fetchcoq2("demo.v") :results raw #+results: #+BEGIN_SRC coq demo.v #+END_SRC hth, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-11-30 16:57 ` Thomas S. Dye @ 2013-12-02 10:41 ` Alan Schmitt 2013-12-02 11:27 ` Sebastien Vauban 2013-12-02 16:53 ` Thomas S. Dye 0 siblings, 2 replies; 14+ messages in thread From: Alan Schmitt @ 2013-12-02 10:41 UTC (permalink / raw) To: Thomas S. Dye; +Cc: emacs-orgmode, Charles Berry tsd@tsdye.com writes: > Alan Schmitt <alan.schmitt@polytechnique.org> writes: > >> I tried this alternate approach, to directly generate the block: >> >> #+name: fetchcoq2 >> #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" >> echo "#+BEGIN_SRC coq" >> head $f >> echo >> echo "#+END_SRC" >> #+END_SRC >> >> #+call: fetchcoq2("demo.v") >> >> But then I get a result like this, with extra quoting: >> >> #+RESULTS: >> : #+BEGIN_SRC coq >> : Definition toto : forall x, exists y, x = y. >> : >> : Lemma foo: forall x, x=x. >> : #+END_SRC >> >> I feel like I'm missing something obvious. ":results code" is exactly >> what I want (put the results in a SRC block), but I don't know how to >> specify the headers of the generated code block. > > You need :results raw at the end of the call line. > > #+name: fetchcoq2 > #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" > echo "#+BEGIN_SRC coq" > echo $f > echo "#+END_SRC" > #+END_SRC > > #+results: fetchcoq2 > #+BEGIN_SRC coq > demo.v > #+END_SRC > > #+call: fetchcoq2("demo.v") :results raw > > #+results: > #+BEGIN_SRC coq > demo.v > #+END_SRC Thanks, this is helping me much. There are still one thing that I don't understand: I cannot make this work when I have already evaluated the call in the buffer. More precisely, if I have the following: --8<---------------cut here---------------start------------->8--- #+name: fetchcoq #+BEGIN_SRC sh :exports none :results raw :var f="foo.v" echo "#+BEGIN_SRC coq" head $f echo echo "#+END_SRC" #+END_SRC #+call: fetchcoq(f="demo.v") :results raw --8<---------------cut here---------------end--------------->8--- when I evaluate the call line, I get this (as expected): --8<---------------cut here---------------start------------->8--- #+name: fetchcoq #+BEGIN_SRC sh :exports none :results raw :var f="foo.v" echo "#+BEGIN_SRC coq" head $f echo echo "#+END_SRC" #+END_SRC #+call: fetchcoq(f="demo.v") :results raw #+RESULTS: #+BEGIN_SRC coq Definition toto : forall x, exists y, x = y. Lemma foo: forall x, x=x. #+END_SRC --8<---------------cut here---------------end--------------->8--- Unfortunately, if I export this, the code is duplicated. Here is the generated html, for instance: ,---- | <pre class="src src-coq"><span style="color: #FBDE2D;">Definition</span> <span style="color: #ff1493;">toto</span> : <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, <span style="color: #9370db;">exists</span> y, x = y. | | <span style="color: #FBDE2D;">Lemma</span> <span style="color: #ff1493;">foo</span>: <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, x=x. | #+END_SRC#+BEGIN_SRC coq | <span style="color: #FBDE2D;">Definition</span> <span style="color: #ff1493;">toto</span> : <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, <span style="color: #9370db;">exists</span> y, x = y. | | <span style="color: #FBDE2D;">Lemma</span> <span style="color: #ff1493;">foo</span>: <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, x=x. | </pre> `---- Exporting if the result is not in the buffer is fine. I tried adding a ":results replace" as inner header argument to the call line and to the fetchcoq block, but it does not change anything. How can I tell the call line to replace the results when exporting? Thanks, Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 10:41 ` Alan Schmitt @ 2013-12-02 11:27 ` Sebastien Vauban 2013-12-02 13:04 ` Alan Schmitt 2013-12-02 16:53 ` Thomas S. Dye 1 sibling, 1 reply; 14+ messages in thread From: Sebastien Vauban @ 2013-12-02 11:27 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Alan Schmitt wrote: > tsd-P0awH739Ni4AvxtiuMwx3w@public.gmane.org writes: >> Alan Schmitt <alan.schmitt-o/5/jSaJEHk+NdeTPqioyti2O/JbrIOy@public.gmane.org> writes: >> >>> I tried this alternate approach, to directly generate the block: >>> >>> #+name: fetchcoq2 >>> #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" >>> echo "#+BEGIN_SRC coq" >>> head $f >>> echo >>> echo "#+END_SRC" >>> #+END_SRC >>> >>> #+call: fetchcoq2("demo.v") >>> >>> But then I get a result like this, with extra quoting: >>> >>> #+RESULTS: >>> : #+BEGIN_SRC coq >>> : Definition toto : forall x, exists y, x = y. >>> : >>> : Lemma foo: forall x, x=x. >>> : #+END_SRC >>> >>> I feel like I'm missing something obvious. ":results code" is exactly >>> what I want (put the results in a SRC block), but I don't know how to >>> specify the headers of the generated code block. >> >> You need :results raw at the end of the call line. >> >> #+name: fetchcoq2 >> #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" >> echo "#+BEGIN_SRC coq" >> echo $f >> echo "#+END_SRC" >> #+END_SRC >> >> #+results: fetchcoq2 >> #+BEGIN_SRC coq >> demo.v >> #+END_SRC >> >> #+call: fetchcoq2("demo.v") :results raw >> >> #+results: >> #+BEGIN_SRC coq >> demo.v >> #+END_SRC > > Thanks, this is helping me much. > > There are still one thing that I don't understand: I cannot make this > work when I have already evaluated the call in the buffer. More > precisely, if I have the following: > > #+name: fetchcoq > #+BEGIN_SRC sh :exports none :results raw :var f="foo.v" > echo "#+BEGIN_SRC coq" > head $f > echo > echo "#+END_SRC" > #+END_SRC > > #+call: fetchcoq(f="demo.v") :results raw > > when I evaluate the call line, I get this (as expected): > > #+name: fetchcoq > #+BEGIN_SRC sh :exports none :results raw :var f="foo.v" > echo "#+BEGIN_SRC coq" > head $f > echo > echo "#+END_SRC" > #+END_SRC > > #+call: fetchcoq(f="demo.v") :results raw > > #+RESULTS: > #+BEGIN_SRC coq > Definition toto : forall x, exists y, x = y. > > Lemma foo: forall x, x=x. > #+END_SRC > > Unfortunately, if I export this, the code is duplicated. Here is the > generated html, for instance: > > ,---- > | <pre class="src src-coq"><span style="color: #FBDE2D;">Definition</span> > | <span style="color: #ff1493;">toto</span> : <span style="color: > | #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, <span > | style="color: #9370db;">exists</span> y, x = y. > | > | <span style="color: #FBDE2D;">Lemma</span> <span style="color: #ff1493;">foo</span>: <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, x=x. > | #+END_SRC#+BEGIN_SRC coq > | <span style="color: #FBDE2D;">Definition</span> <span style="color: > | #ff1493;">toto</span> : <span style="color: #D8FA3C;">forall</span> <span > | style="color: #D8FA3C;">x</span>, <span style="color: #9370db;">exists</span> > | y, x = y. > | > | <span style="color: #FBDE2D;">Lemma</span> <span style="color: #ff1493;">foo</span>: <span style="color: #D8FA3C;">forall</span> <span style="color: #D8FA3C;">x</span>, x=x. > | </pre> > `---- > > Exporting if the result is not in the buffer is fine. I tried adding a > ":results replace" as inner header argument to the call line and to the > fetchcoq block, but it does not change anything. > > How can I tell the call line to replace the results when exporting? The syntax of the call line is: #+call: <NAME>[<HEADER-ARGS-FOR-BLOCK>](<ARGUMENTS>) <HEADER-ARGS-FOR-CALL-LINE> So, you should add your option either in [] after the name, or at the end of the line -- I'm always hesitating about where to put the right stuff (not so enough clear yet in my mind)... Best regards, Seb -- Sebastien Vauban ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 11:27 ` Sebastien Vauban @ 2013-12-02 13:04 ` Alan Schmitt 2013-12-02 18:09 ` Sean O'Halpin 0 siblings, 1 reply; 14+ messages in thread From: Alan Schmitt @ 2013-12-02 13:04 UTC (permalink / raw) To: Sebastien Vauban; +Cc: emacs-orgmode Hi Sébastien, sva-news@mygooglest.com writes: >> Exporting if the result is not in the buffer is fine. I tried adding a >> ":results replace" as inner header argument to the call line and to the >> fetchcoq block, but it does not change anything. >> >> How can I tell the call line to replace the results when exporting? > > The syntax of the call line is: > > #+call: <NAME>[<HEADER-ARGS-FOR-BLOCK>](<ARGUMENTS>) <HEADER-ARGS-FOR-CALL-LINE> > > So, you should add your option either in [] after the name, or at the end of > the line -- I'm always hesitating about where to put the right stuff (not so > enough clear yet in my mind)... I tried both, and neither works. Here is an org file showing the problem: --8<---------------cut here---------------start------------->8--- #+name: testcall #+BEGIN_SRC sh :exports none :results raw echo "#+BEGIN_SRC emacs-lisp" echo "(+ 1 2)" echo "#+END_SRC" #+END_SRC Test fails: #+call: testcall() :results raw #+RESULTS: #+BEGIN_SRC emacs-lisp (+ 1 2) #+END_SRC Test fails: #+call: testcall[:results replace]() :results raw #+RESULTS: #+BEGIN_SRC emacs-lisp (+ 1 2) #+END_SRC Test fails: #+call: testcall() :results raw replace #+RESULTS: #+BEGIN_SRC emacs-lisp (+ 1 2) #+END_SRC Test succeeds (results not already in the file): #+call: testcall() :results raw --8<---------------cut here---------------end--------------->8--- If you export this, you'll see that only the last call generates the expected output. Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 13:04 ` Alan Schmitt @ 2013-12-02 18:09 ` Sean O'Halpin 2013-12-04 13:18 ` Alan Schmitt 0 siblings, 1 reply; 14+ messages in thread From: Sean O'Halpin @ 2013-12-02 18:09 UTC (permalink / raw) To: Alan Schmitt; +Cc: Sebastien Vauban, Org Mode Hi, Taking a slightly different approach, you could use the :post header argument to wrap the results in a source block. See http://orgmode.org/org.html#post (from which the example below is derived). For example, you could use something like this: #+OPTIONS: d:RESULTS * Example #+name: eg-1 #+begin_src sh :results replace drawer :exports results :post wrap-src(text=*this*) head -n 3 demo.v #+end_src Output #+results: eg-1 * Utils :noexport: #+name: wrap-src #+begin_src emacs-lisp :var text="" :results raw (concat "#+BEGIN_SRC coq\n" text "\n#+END_SRC") #+end_src BTW I answered a question similar to this on Stack Overflow recently (http://stackoverflow.com/questions/20194347/org-mode-with-code-example-as-html/20232922#20232922) - must be something in the air. Regards, Sean On Mon, Dec 2, 2013 at 1:04 PM, Alan Schmitt <alan.schmitt@polytechnique.org> wrote: > Hi Sébastien, > > sva-news@mygooglest.com writes: > >>> Exporting if the result is not in the buffer is fine. I tried adding a >>> ":results replace" as inner header argument to the call line and to the >>> fetchcoq block, but it does not change anything. >>> >>> How can I tell the call line to replace the results when exporting? >> >> The syntax of the call line is: >> >> #+call: <NAME>[<HEADER-ARGS-FOR-BLOCK>](<ARGUMENTS>) <HEADER-ARGS-FOR-CALL-LINE> >> >> So, you should add your option either in [] after the name, or at the end of >> the line -- I'm always hesitating about where to put the right stuff (not so >> enough clear yet in my mind)... > > I tried both, and neither works. Here is an org file showing the > problem: > > --8<---------------cut here---------------start------------->8--- > #+name: testcall > #+BEGIN_SRC sh :exports none :results raw > echo "#+BEGIN_SRC emacs-lisp" > echo "(+ 1 2)" > echo "#+END_SRC" > #+END_SRC > > Test fails: > #+call: testcall() :results raw > > #+RESULTS: > #+BEGIN_SRC emacs-lisp > (+ 1 2) > #+END_SRC > > Test fails: > #+call: testcall[:results replace]() :results raw > > #+RESULTS: > #+BEGIN_SRC emacs-lisp > (+ 1 2) > #+END_SRC > > Test fails: > #+call: testcall() :results raw replace > > #+RESULTS: > #+BEGIN_SRC emacs-lisp > (+ 1 2) > #+END_SRC > > Test succeeds (results not already in the file): > #+call: testcall() :results raw > --8<---------------cut here---------------end--------------->8--- > > If you export this, you'll see that only the last call generates the > expected output. > > Alan > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 18:09 ` Sean O'Halpin @ 2013-12-04 13:18 ` Alan Schmitt 2013-12-04 20:06 ` Fabrice Niessen 0 siblings, 1 reply; 14+ messages in thread From: Alan Schmitt @ 2013-12-04 13:18 UTC (permalink / raw) To: Sean O'Halpin; +Cc: Sebastien Vauban, Org Mode Hi Sean, sean.ohalpin@gmail.com writes: > Taking a slightly different approach, you could use the :post header > argument to wrap the results in a source block. > > See http://orgmode.org/org.html#post (from which the example below is derived). > > For example, you could use something like this: > > #+OPTIONS: d:RESULTS > > * Example > > #+name: eg-1 > #+begin_src sh :results replace drawer :exports results :post > wrap-src(text=*this*) > head -n 3 demo.v > #+end_src > > Output > #+results: eg-1 > > * Utils :noexport: > #+name: wrap-src > #+begin_src emacs-lisp :var text="" :results raw > (concat "#+BEGIN_SRC coq\n" text "\n#+END_SRC") > #+end_src Thank you for the suggestion. Unfortunately I get the same problem than with "wrap": if the results are present, they become duplicated in the export. Here is a small example showing it: --8<---------------cut here---------------start------------->8--- #+name: mywrap #+BEGIN_SRC sh :exports none :results raw echo "(+ 1 2)" #+END_SRC Exporting using ~:post~ #+name: wrap-src #+BEGIN_SRC emacs-lisp :var text="" :results raw :exports none (concat "#+BEGIN_SRC emacs-lisp\n" text "\n#+END_SRC") #+END_SRC #+name: test4 #+call: mywrap() :post wrap-src(text=*this*) :results raw #+RESULTS: test4 #+BEGIN_SRC emacs-lisp (+ 1 2) #+END_SRC --8<---------------cut here---------------end--------------->8--- If you export this, you will see some duplication of the test4 block. Your example showed more than the ~:post~ approach: there is also the use of a drawer. And this solves my export problem (with a drawer, things are not duplicated). Thanks a lot! (I tried to apply the drawer trick to the :wrap src but it does not work, unfortunately. I like your approach better anyway as it allows me to specify not only the language used by the output source block, but other properties (such as whether it should be evaluated) which wrap does not let me do.) > BTW I answered a question similar to this on Stack Overflow recently > (http://stackoverflow.com/questions/20194347/org-mode-with-code-example-as-html/20232922#20232922) > - must be something in the air. I grabbed some additional information from there, and this is what I ended up with. Thanks again for the help. --8<---------------cut here---------------start------------->8--- #+OPTIONS: d:RESULTS * utilities :noexport: #+name: fetchfile #+BEGIN_SRC sh :exports none :results raw :var f="foo.v" head $f #+END_SRC #+name: wrap-coq #+BEGIN_SRC emacs-lisp :var text="" :results raw (concat "#+BEGIN_SRC coq\n" text "\n#+END_SRC") #+END_SRC * example :PROPERTIES: :results: drawer :post: wrap-coq(text=*this*) :END: #+call: fetchfile("demo.v") #+RESULTS: :RESULTS: #+BEGIN_SRC coq Definition toto : forall x, exists y, x = y. Lemma foo: forall x, x=x. #+END_SRC :END: --8<---------------cut here---------------end--------------->8--- Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-04 13:18 ` Alan Schmitt @ 2013-12-04 20:06 ` Fabrice Niessen 2013-12-05 12:33 ` Alan Schmitt 0 siblings, 1 reply; 14+ messages in thread From: Fabrice Niessen @ 2013-12-04 20:06 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hello Alan, Alan Schmitt wrote: > I tried to apply the drawer trick to the :wrap src but it does not work, > unfortunately. I like your approach better anyway as it allows me to specify > not only the language used by the output source block, but other properties > (such as whether it should be evaluated) which wrap does not let me do. Not sure this is true. Look at the following tricky example from my slides for the "stage LaTeX de Dunkerque 2013" [1]: #+begin_src org :results latex replace :wrap "SRC latex :exports code" :exports results <<exemple-liste-itemize>> #+end_src It does eval as: #+results: #+BEGIN_SRC latex :exports code \begin{itemize} \item Premier élément \begin{itemize} \item Niveau plus profond \end{itemize} \item Autre élément \item Dernier élément \end{itemize} #+END_SRC which in turn evals (for the export) into the results: #+results: #+BEGIN_LaTeX \begin{itemize} \item Premier élément \begin{itemize} \item Niveau plus profond \end{itemize} \item Autre élément \item Dernier élément \end{itemize} #+END_LaTeX So, you definitely can pass extra options to the wrap header argument... Best regards, Fabrice [1] See http://www.slideshare.net/fniessen/org-modelatexexport or https://github.com/fniessen/stage-latex-dunkerque-2013/. -- Fabrice Niessen Leuven, Belgium ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-04 20:06 ` Fabrice Niessen @ 2013-12-05 12:33 ` Alan Schmitt 0 siblings, 0 replies; 14+ messages in thread From: Alan Schmitt @ 2013-12-05 12:33 UTC (permalink / raw) To: Fabrice Niessen; +Cc: emacs-orgmode Hello Fabrice, fni-news@pirilampo.org writes: > Hello Alan, > > Alan Schmitt wrote: >> I tried to apply the drawer trick to the :wrap src but it does not work, >> unfortunately. I like your approach better anyway as it allows me to specify >> not only the language used by the output source block, but other properties >> (such as whether it should be evaluated) which wrap does not let me do. > > Not sure this is true. Look at the following tricky example from my slides for > the "stage LaTeX de Dunkerque 2013" [1]: > > #+begin_src org :results latex replace :wrap "SRC latex :exports code" :exports results > <<exemple-liste-itemize>> > #+end_src ... > So, you definitely can pass extra options to the wrap header argument... Using quotes, of course! Thank you for the heads up. Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 10:41 ` Alan Schmitt 2013-12-02 11:27 ` Sebastien Vauban @ 2013-12-02 16:53 ` Thomas S. Dye 2013-12-04 12:35 ` Alan Schmitt 1 sibling, 1 reply; 14+ messages in thread From: Thomas S. Dye @ 2013-12-02 16:53 UTC (permalink / raw) To: Alan Schmitt; +Cc: emacs-orgmode, Charles Berry Aloha Alan, Alan Schmitt <alan.schmitt@polytechnique.org> writes: > Unfortunately, if I export this, the code is duplicated. Here is the > generated html, for instance: Yes, the code is partially duplicated when I run it. It looks to me as if the problem stems from :results raw and the fact that results is itself a source code block that includes lines like #+BEGIN_SRC and #+END_SRC. Perhaps the same confusion shows if you change the :results raw header argument for the call line to :results org, evaluate, change back to :results raw, and then evaluate again. You should find an extra #+END_SRC in the buffer. IIUC, your goal is to export the coq source code blocks. Does the following, which uses :results org, do what you want? It seems to work for me. #+name: fetchcoq2 #+BEGIN_SRC sh :exports none :results raw :var f="demo.v" echo "#+BEGIN_SRC coq" echo $f echo "#+END_SRC" #+END_SRC #+results: fetchcoq2 #+BEGIN_SRC coq demo.v #+END_SRC #+name: fetchcoq-call #+call: fetchcoq2("demo.v") :results org #+results: fetchcoq-call #+BEGIN_SRC org ,#+BEGIN_SRC coq demo.v ,#+END_SRC #+END_SRC hth, Tom P.S. I remembered :wrap just now. This doesn't export well, though. #+call: fetchcoq2("demo.v") :wrap src coq #+results: #+BEGIN_src coq demo.v #+END_src Tom -- T.S. Dye & Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: How do I specify the language for a :results code block 2013-12-02 16:53 ` Thomas S. Dye @ 2013-12-04 12:35 ` Alan Schmitt 0 siblings, 0 replies; 14+ messages in thread From: Alan Schmitt @ 2013-12-04 12:35 UTC (permalink / raw) To: Thomas S. Dye; +Cc: emacs-orgmode, Charles Berry Hi Thomas, > IIUC, your goal is to export the coq source code blocks. Does the > following, which uses :results org, do what you want? It seems to work > for me. It almost works. What I get upon export is an org blog, where I can see the "#+BEGIN_SRC coq" marker. The code inside is correctly displayed, though. > P.S. I remembered :wrap just now. This doesn't export well, though. > > #+call: fetchcoq2("demo.v") :wrap src coq > > #+results: > #+BEGIN_src coq > demo.v > #+END_src This is very nice! The fact that it does not export well seems to be a bug. I'll report it (in a new thread). Thank you for the suggestion. Alan ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-12-05 12:33 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-29 21:49 How do I specify the language for a :results code block Alan Schmitt 2013-11-29 22:10 ` Thomas S. Dye 2013-11-29 23:48 ` Charles Berry 2013-11-30 10:52 ` Alan Schmitt 2013-11-30 16:57 ` Thomas S. Dye 2013-12-02 10:41 ` Alan Schmitt 2013-12-02 11:27 ` Sebastien Vauban 2013-12-02 13:04 ` Alan Schmitt 2013-12-02 18:09 ` Sean O'Halpin 2013-12-04 13:18 ` Alan Schmitt 2013-12-04 20:06 ` Fabrice Niessen 2013-12-05 12:33 ` Alan Schmitt 2013-12-02 16:53 ` Thomas S. Dye 2013-12-04 12:35 ` Alan Schmitt
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).