Re: [O] Babel: RESULTS for no value

2015-03-09 Thread Jarmo Hurri

Greetings Charles.

Charles C. Berry ccbe...@ucsd.edu writes:

 To achieve this behaviour, I have set

 (defvar org-babel-default-header-args:processing
  '((:results . html) (:exports . results))
  Default arguments when evaluating a Processing source block.)

 I think you can replace

 : (:results . html)

 with

 : (:results . (or (and org-export-current-backend html)  none))

 in your defvar and get the desired result.

Yes indeed, brilliant. Not being familiar with all the internals it was
difficult for me to know what to check and when the test can be
evaluated.

Thanks!

Jarmo




Re: [O] Babel: RESULTS for no value

2015-03-07 Thread Jarmo Hurri

Aaron Ecay aarone...@gmail.com writes:

 It might be a little distracting to see it there, but it shouldn’t
 interfere with the functionality in any way (for example, it should be
 invisible on export).  It the line’s presence causing any problems for
 your code?

It is a nuisance. To summarize, in my current implementation of
Processing support, whenever I execute a Processing code with C-c C-c to
view the resulting sketch in an external window, the following lines
appear in the org file:

#+RESULTS:
#+BEGIN_HTML
#+END_HTML

Furthermore, the HTML lines are replaced on every new execution of the
code, making the org buffer change on every execution. That is not very
convenient.

Let me try to explain how I have implemented support for
Processing. When Processing code is executed with C-c C-c, it does not
return any value: the sketch (graphics) is shown in an external
window. But when the results of the code are exported, the code is
written as html, embedded in a processing.js script. The html code then
draws the sketch when viewed in a browser. It works really well, and I
am mighty proud of that idea. ;-)

To achieve this behaviour, I have set

(defvar org-babel-default-header-args:processing
  '((:results . html) (:exports . results))
  Default arguments when evaluating a Processing source block.)

This yields correct behaviour when the results are exported. However,
this also causes for the #+BEGIN_HTML #+END_HTML lines to appear when no
value is returned.

In function org-babel-execute:processing I can identify whether
execution is done for exporting by checking whether
org-babel-exp-reference-buffer is null. If an export is not done, the
function launches the external viewer and returns nil. If an export is
done, the function returns the html code.

There might be other ways around the problem - that would not involve
removal of #+RESULTS: when no value is produced - but I have not been
able to figure out a solution.

Jarmo




Re: [O] Babel: RESULTS for no value

2015-03-07 Thread Aaron Ecay
Hi Jarmo,

The results line is needed to store the hash value when the :cache
header arg is set.  (See (info (org) cache))

It might be a little distracting to see it there, but it shouldn’t
interfere with the functionality in any way (for example, it should be
invisible on export).  It the line’s presence causing any problems for
your code?

-- 
Aaron Ecay



Re: [O] Babel: RESULTS for no value

2015-03-07 Thread Charles C. Berry

On Sat, 7 Mar 2015, Jarmo Hurri wrote:



Aaron Ecay aarone...@gmail.com writes:


It might be a little distracting to see it there, but it shouldn’t
interfere with the functionality in any way (for example, it should be
invisible on export).  It the line’s presence causing any problems for
your code?


It is a nuisance. To summarize, in my current implementation of
Processing support, whenever I execute a Processing code with C-c C-c to
view the resulting sketch in an external window, the following lines
appear in the org file:

#+RESULTS:
#+BEGIN_HTML
#+END_HTML

Furthermore, the HTML lines are replaced on every new execution of the
code, making the org buffer change on every execution. That is not very
convenient.

Let me try to explain how I have implemented support for
Processing. When Processing code is executed with C-c C-c, it does not
return any value: the sketch (graphics) is shown in an external
window. But when the results of the code are exported, the code is
written as html, embedded in a processing.js script. The html code then
draws the sketch when viewed in a browser. It works really well, and I
am mighty proud of that idea. ;-)

To achieve this behaviour, I have set

(defvar org-babel-default-header-args:processing
 '((:results . html) (:exports . results))
 Default arguments when evaluating a Processing source block.)



I think you can replace

: (:results . html)

with

: (:results . (or (and org-export-current-backend html)  none))


in your defvar and get the desired result.

If you want export to succeed under other backends, you can replace html 
with (symbol-name org-export-current-backend) and then the result will be 
wrapped if (say) latex or ascii is used.


HTH,

Chuck