Re: [O] org-babel source block unevaluated into variable?
Johan: Maybe this one would work for you: #+NAME: first #+BEGIN_SRC js function one() { return 1; } #+END_SRC #+NAME: second #+BEGIN_SRC js function two() { return 2; } #+END_SRC #+NAME: third #+BEGIN_SRC js function three() { return 3; } #+END_SRC #+NAME: all #+BEGIN_SRC sh :results output :noweb yes echo " <> <> function test(){ console.log('test');} <>" #+END_SRC #+BEGIN_SRC python :results output :var code=all print code #+END_SRC #+RESULTS: #+begin_example function two() { return 2 } function one() { return 1; } function test(){ console.log('test');} function three() { return 3; } #+end_example On Thu, Oct 26, 2017 at 6:17 AM Johan W. Klüwerwrote: > Thanks Martin, > > These are good suggestions, but it's not quite what I am after. In your > second example, I would like ":var code=example" to make "code" carry the > full (and expanded) text of the "example" block, i.e. to have > > echo ls -alh > > as the result -- the code itself, unevaluated. > > Johan > > 2017-10-25 17:52 GMT+02:00 Martin Alsinet : > >> Johan: >> >> To use expanded noweb references you can use text source blocks >> >> #+NAME: lscode >> #+BEGIN_SRC *text* >> ls -alh >> #+END_SRC >> >> >> #+NAME: example >> #+BEGIN_SRC sh :noweb yes >> echo <> >> #+END_SRC >> >> #+RESULTS: example >> : ls -alh >> >> >> #+BEGIN_SRC emacs-lisp :var code=example >> (message code) >> #+END_SRC >> >> #+RESULTS: >> : ls -alh >> >> >> Martín >> >> On Wed, Oct 25, 2017 at 10:36 AM Martin Alsinet >> wrote: >> >>> Johan: >>> >>> You can try the following: >>> >>> #+NAME: lscode >>> #+BEGIN_ASCII >>> ls -alh >>> #+END_ASCII >>> >>> #+BEGIN_SRC emacs-lisp :var code=lscode >>> (message code) >>> #+END_SRC >>> >>> #+RESULTS: >>> : ls -alh >>> >>> I haven't tried the noweb references, but it does return the code block >>> in the variable. >>> >>> >>> Martín >>> >>> On Wed, Oct 25, 2017 at 9:22 AM Johan W. Klüwer < >>> johan.w.klu...@gmail.com> wrote: >>> Is there a way to assign the uninterpreted content of an executable source block to a variable? Preferably, using a :var header argument? That is, return the text in the block, not the result of evaluating it, and preferably with noweb references expanded. "example" blocks return text the way I want, but they can't be evaluated, and of course noweb is ruled out for them. The function org-babel-ref-resolve could to the job if there were a switch to block evaluation. Why this is interesting: I wish to use url-hexify-string on the text of a named SPARQL query. Cheers, Johan >>> >
Re: [O] org-babel source block unevaluated into variable?
Following up: A function like this one should help. (defun expand-named-babel-block (block) (save-excursion (org-babel-goto-named-src-block block) (org-babel-expand-src-block))) However ... there's something strange here with org-babel-goto-named-src-block (org 9.0.9). It just jumps to the first source block in the file, which is not that useful :) I'll try to update org and see. 2017-10-26 13:17 GMT+02:00 Johan W. Klüwer: > Thanks Martin, > > These are good suggestions, but it's not quite what I am after. In your > second example, I would like ":var code=example" to make "code" carry the > full (and expanded) text of the "example" block, i.e. to have > > echo ls -alh > > as the result -- the code itself, unevaluated. > > Johan > > 2017-10-25 17:52 GMT+02:00 Martin Alsinet : > >> Johan: >> >> To use expanded noweb references you can use text source blocks >> >> #+NAME: lscode >> #+BEGIN_SRC *text* >> ls -alh >> #+END_SRC >> >> >> #+NAME: example >> #+BEGIN_SRC sh :noweb yes >> echo <> >> #+END_SRC >> >> #+RESULTS: example >> : ls -alh >> >> >> #+BEGIN_SRC emacs-lisp :var code=example >> (message code) >> #+END_SRC >> >> #+RESULTS: >> : ls -alh >> >> >> Martín >> >> On Wed, Oct 25, 2017 at 10:36 AM Martin Alsinet >> wrote: >> >>> Johan: >>> >>> You can try the following: >>> >>> #+NAME: lscode >>> #+BEGIN_ASCII >>> ls -alh >>> #+END_ASCII >>> >>> #+BEGIN_SRC emacs-lisp :var code=lscode >>> (message code) >>> #+END_SRC >>> >>> #+RESULTS: >>> : ls -alh >>> >>> I haven't tried the noweb references, but it does return the code block >>> in the variable. >>> >>> >>> Martín >>> >>> On Wed, Oct 25, 2017 at 9:22 AM Johan W. Klüwer < >>> johan.w.klu...@gmail.com> wrote: >>> Is there a way to assign the uninterpreted content of an executable source block to a variable? Preferably, using a :var header argument? That is, return the text in the block, not the result of evaluating it, and preferably with noweb references expanded. "example" blocks return text the way I want, but they can't be evaluated, and of course noweb is ruled out for them. The function org-babel-ref-resolve could to the job if there were a switch to block evaluation. Why this is interesting: I wish to use url-hexify-string on the text of a named SPARQL query. Cheers, Johan >>> >
Re: [O] org-babel source block unevaluated into variable?
Thanks Martin, These are good suggestions, but it's not quite what I am after. In your second example, I would like ":var code=example" to make "code" carry the full (and expanded) text of the "example" block, i.e. to have echo ls -alh as the result -- the code itself, unevaluated. Johan 2017-10-25 17:52 GMT+02:00 Martin Alsinet: > Johan: > > To use expanded noweb references you can use text source blocks > > #+NAME: lscode > #+BEGIN_SRC *text* > ls -alh > #+END_SRC > > > #+NAME: example > #+BEGIN_SRC sh :noweb yes > echo <> > #+END_SRC > > #+RESULTS: example > : ls -alh > > > #+BEGIN_SRC emacs-lisp :var code=example > (message code) > #+END_SRC > > #+RESULTS: > : ls -alh > > > Martín > > On Wed, Oct 25, 2017 at 10:36 AM Martin Alsinet > wrote: > >> Johan: >> >> You can try the following: >> >> #+NAME: lscode >> #+BEGIN_ASCII >> ls -alh >> #+END_ASCII >> >> #+BEGIN_SRC emacs-lisp :var code=lscode >> (message code) >> #+END_SRC >> >> #+RESULTS: >> : ls -alh >> >> I haven't tried the noweb references, but it does return the code block >> in the variable. >> >> >> Martín >> >> On Wed, Oct 25, 2017 at 9:22 AM Johan W. Klüwer >> wrote: >> >>> Is there a way to assign the uninterpreted content of an executable >>> source block to a variable? Preferably, using a :var header argument? That >>> is, return the text in the block, not the result of evaluating it, and >>> preferably with noweb references expanded. >>> >>> "example" blocks return text the way I want, but they can't be >>> evaluated, and of course noweb is ruled out for them. >>> >>> The function org-babel-ref-resolve could to the job if there were a >>> switch to block evaluation. >>> >>> >>> Why this is interesting: I wish to use url-hexify-string on the text of >>> a named SPARQL query. >>> >>> Cheers, Johan >>> >>
Re: [O] org-babel source block unevaluated into variable?
Johan: To use expanded noweb references you can use text source blocks #+NAME: lscode #+BEGIN_SRC *text* ls -alh #+END_SRC #+NAME: example #+BEGIN_SRC sh :noweb yes echo <> #+END_SRC #+RESULTS: example : ls -alh #+BEGIN_SRC emacs-lisp :var code=example (message code) #+END_SRC #+RESULTS: : ls -alh Martín On Wed, Oct 25, 2017 at 10:36 AM Martin Alsinetwrote: > Johan: > > You can try the following: > > #+NAME: lscode > #+BEGIN_ASCII > ls -alh > #+END_ASCII > > #+BEGIN_SRC emacs-lisp :var code=lscode > (message code) > #+END_SRC > > #+RESULTS: > : ls -alh > > I haven't tried the noweb references, but it does return the code block in > the variable. > > > Martín > > On Wed, Oct 25, 2017 at 9:22 AM Johan W. Klüwer > wrote: > >> Is there a way to assign the uninterpreted content of an executable >> source block to a variable? Preferably, using a :var header argument? That >> is, return the text in the block, not the result of evaluating it, and >> preferably with noweb references expanded. >> >> "example" blocks return text the way I want, but they can't be evaluated, >> and of course noweb is ruled out for them. >> >> The function org-babel-ref-resolve could to the job if there were a >> switch to block evaluation. >> >> >> Why this is interesting: I wish to use url-hexify-string on the text of a >> named SPARQL query. >> >> Cheers, Johan >> >
Re: [O] org-babel source block unevaluated into variable?
Johan: You can try the following: #+NAME: lscode #+BEGIN_ASCII ls -alh #+END_ASCII #+BEGIN_SRC emacs-lisp :var code=lscode (message code) #+END_SRC #+RESULTS: : ls -alh I haven't tried the noweb references, but it does return the code block in the variable. Martín On Wed, Oct 25, 2017 at 9:22 AM Johan W. Klüwerwrote: > Is there a way to assign the uninterpreted content of an executable source > block to a variable? Preferably, using a :var header argument? That is, > return the text in the block, not the result of evaluating it, and > preferably with noweb references expanded. > > "example" blocks return text the way I want, but they can't be evaluated, > and of course noweb is ruled out for them. > > The function org-babel-ref-resolve could to the job if there were a switch > to block evaluation. > > > Why this is interesting: I wish to use url-hexify-string on the text of a > named SPARQL query. > > Cheers, Johan >