t...@tsdye.com writes: > Alan Schmitt <alan.schm...@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