[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [PATCH] Strip text properties from string code block arguments
From: |
Daniel Gerber |
Subject: |
Re: [O] [PATCH] Strip text properties from string code block arguments |
Date: |
Wed, 08 Jan 2014 11:03:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Hi Bastien,
On 07/01/2014 18:31, Bastien wrote:
Daniel Gerber<address@hidden> writes:
This change in org-babel-python-var-to-python makes python code blocks
accept a string with text properties (as one gets when referring
another code block). I guess there should be something similar for
other languages.
I don't understand why properties would be a problem here.
Can you elaborate a bit on this?
The problem is that formatting as s-expression puts them into python code.
Here is what I want to do.
First edit a query string:
#+RESULTS: query
#+BEGIN_SRC sparql
select *
where { ?x rdf:label "x\\r"@en }
#+END_SRC
(The trick of naming this block with #+results: is so that:
1. org-edit-src-code uses the right mode
2. the code block is not evaluated
3. its body is passed as a string to other code blocks.
For lack of a better idea...)
Use the query string verbatim in another language:
#+NAME: py
#+BEGIN_SRC python :var q=query
# return some_graph.query(q)
return q
#+END_SRC
But now calling py() or tangling would give a syntax error because
#+BEGIN_SRC elisp :var q=query
(org-babel-python-var-to-python q)
#+END_SRC
#+RESULTS:
: ""#("select *
: where { ?x rdf:label \"x\\\\r\"@en }
: " 0 9 (face org-block font-lock-multiline t wrap-prefix #(" " 0 2
(face org-indent)) line-prefix nil font-lock-fontified t fontified t) 9
30 (face org-block font-lock-multiline t wrap-prefix #(" " 0 2 (face
org-indent)) line-prefix nil font-lock-fontified t fontified t) 30 35
(face org-block font-lock-multiline t font-lock-fontified t wrap-prefix
#(" " 0 2 (face org-indent)) line-prefix nil fontified t) 35 40 (face
org-block font-lock-multiline t font-lock-fontified t wrap-prefix #(" "
0 2 (face org-indent)) line-prefix nil fontified t) 40 41 (face
org-block font-lock-multiline t wrap-prefix #(" " 0 2 (face
org-indent)) line-prefix nil font-lock-fontified t fontified t) 41 42
(face org-block font-lock-multiline t wrap-prefix #(" " 0 2 (face
org-indent)) line-prefix nil font-lock-fontified t fontified t))""
If org-babel-python-var-to-python does
#+BEGIN_SRC elisp :var q=query
(format "%S" (substring-no-properties q))
#+END_SRC
#+RESULTS:
: "select *
: where { ?x rdf:label \"x\\\\r\"@en }
: "
then both evaluation and tangling work fine:
#+CALL: py()
#+RESULTS:
: select *
: where { ?x rdf:label "x\\r"@en }
Best,
Daniel
- [O] [PATCH] Strip text properties from string code block arguments, Daniel Gerber, 2014/01/07
- Re: [O] [PATCH] Strip text properties from string code block arguments, Bastien, 2014/01/07
- Re: [O] [PATCH] Strip text properties from string code block arguments, Bastien, 2014/01/08
- Re: [O] [PATCH] Strip text properties from string code block arguments, Daniel Gerber, 2014/01/08
- Re: [O] [PATCH] Strip text properties from string code block arguments, Bastien, 2014/01/08
- Re: [O] [PATCH] Strip text properties from string code block arguments, Achim Gratz, 2014/01/09
- Re: [O] [PATCH] Strip text properties from string code block arguments, Bastien, 2014/01/12
- Re: [O] [PATCH] Strip text properties from string code block arguments, Eric Schulte, 2014/01/12
- Re: [O] [PATCH] Strip text properties from string code block arguments, Bastien, 2014/01/12