Re: [Orgmode] [babel] options to the example directive
At Tue, 03 Nov 2009 13:57:22 -0700, Eric Schulte wrote: Dan Davison davi...@stats.ox.ac.uk writes: This is a consequence of the same issue: org-exp-blocks preprocesses your src block in a pre-export buffer (a copy of the original), hands it to org-babel, which creates the results block (overwriting the version where you had manually inserted switches), and that results block lacks any switches. Would it be worthwhile to add a :results_switches header argument for passing switches through to a results block? If that would solve the problem it should be easy to implement. Best -- Eric Dan Eric, I think this would be ideal, and results_switches is a perfectly fine name. Thanks, eric ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [babel] options to the example directive
Eric S Fraga ucec...@ucl.ac.uk writes: At Tue, 03 Nov 2009 13:57:22 -0700, Eric Schulte wrote: Dan Davison davi...@stats.ox.ac.uk writes: This is a consequence of the same issue: org-exp-blocks preprocesses your src block in a pre-export buffer (a copy of the original), hands it to org-babel, which creates the results block (overwriting the version where you had manually inserted switches), and that results block lacks any switches. Would it be worthwhile to add a :results_switches header argument for passing switches through to a results block? If that would solve the problem it should be easy to implement. Best -- Eric Dan Eric, I think this would be ideal, and results_switches is a perfectly fine name. That's in branch results-switches at git://repo.or.cz/org-mode/babel.git, with patch below. Dan diff --git a/contrib/babel/lisp/org-babel.el b/contrib/babel/lisp/org-babel.el index 90ac447..1e04efe 100644 --- a/contrib/babel/lisp/org-babel.el +++ b/contrib/babel/lisp/org-babel.el @@ -175,7 +175,7 @@ the header arguments specified at the source code block. ;; (message supplied params=%S params) ;; debugging (let* ((info (or info (org-babel-get-src-block-info))) (lang (first info)) - (params (org-babel-merge-params (third info) params)) +(params (setf (third info) (org-babel-merge-params (third info) params))) (body (if (assoc :noweb params) (org-babel-expand-noweb-references info) (second info))) (processed-params (org-babel-process-params params)) @@ -192,7 +192,7 @@ the header arguments specified at the source code block. (funcall cmd body params))) (if (eq result-type 'value) (setq result (org-babel-process-value-result result result-params))) -(org-babel-insert-result result result-params) +(org-babel-insert-result result result-params info) result)) (defun org-babel-load-in-session (optional arg info) @@ -473,7 +473,7 @@ buffer or nil if no such result exists. (concat #\\+resname:[ \t]* (regexp-quote name) [ \t\n\f\v\r]) nil t) (move-beginning-of-line 0) (point -(defun org-babel-where-is-src-block-result (optional insert) +(defun org-babel-where-is-src-block-result (optional insert info) Return the point at the beginning of the result of the current source block. Specifically at the beginning of the #+RESNAME: line. If no result exists for this block then create a @@ -482,7 +482,7 @@ line. If no result exists for this block then create a (let* ((on-lob-line (progn (beginning-of-line 1) (looking-at org-babel-lob-one-liner-regexp))) (name (if on-lob-line (first (org-babel-lob-get-info)) - (fifth (org-babel-get-src-block-info + (fifth (or info (org-babel-get-src-block-info) (head (unless on-lob-line (org-babel-where-is-src-block-head))) end) (when head (goto-char head)) (or (and name (org-babel-find-named-result name)) @@ -528,7 +528,7 @@ line. If no result exists for this block then create a (mapcar #'org-babel-read row))) (org-table-to-lisp))) -(defun org-babel-insert-result (result optional insert) +(defun org-babel-insert-result (result optional insert info) Insert RESULT into the current buffer after the end of the current source block. With optional argument INSERT controls insertion of results in the org-mode file. INSERT can take the @@ -566,7 +566,7 @@ code the results are extracted in the syntax of the source (if (member file insert) (setq result (org-babel-result-to-file result (unless (listp result) (setq result (format %S result (if (and insert (member replace insert) (not (member silent insert))) - (org-babel-remove-result)) + (org-babel-remove-result info)) (if (= (length result) 0) (if (member value result-params) (message No result returned by source block) @@ -578,28 +578,30 @@ code the results are extracted in the syntax of the source (string-equal (substring result -1) \r (setq result (concat result \n))) (save-excursion - (let ((existing-result (org-babel-where-is-src-block-result t))) - (when existing-result (goto-char existing-result) (forward-line 1))) -(cond - ;; assume the result is a table if it's not a string - ((not (stringp result)) - (insert (concat (orgtbl-to-orgtbl - (if (and (listp (car result)) (listp (cdr (car result - result (list result)) - '(:fmt (lambda (cell) (format %S cell \n)) - (forward-line -1) (org-cycle)) - ((member file insert) - (insert result)) - ((member html insert) - (insert (format #+BEGIN_HTML\n%s#+END_HTML\n result))) -
Re: [Orgmode] [babel] options to the example directive
Dan Davison davi...@stats.ox.ac.uk writes: Eric S Fraga ucec...@ucl.ac.uk writes: At Tue, 03 Nov 2009 13:57:22 -0700, Eric Schulte wrote: Dan Davison davi...@stats.ox.ac.uk writes: This is a consequence of the same issue: org-exp-blocks preprocesses your src block in a pre-export buffer (a copy of the original), hands it to org-babel, which creates the results block (overwriting the version where you had manually inserted switches), and that results block lacks any switches. Would it be worthwhile to add a :results_switches header argument for passing switches through to a results block? If that would solve the problem it should be easy to implement. Best -- Eric Dan Eric, I think this would be ideal, and results_switches is a perfectly fine name. That's in branch results-switches at git://repo.or.cz/org-mode/babel.git, with patch below. This changes has now been merged into the main branch. ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [babel] options to the example directive
Eric S Fraga ucec...@ucl.ac.uk writes: I am finding org-babel incredibly useful in the preparation of documentation for didactic purposes. Kudos to the developers! I have two queries that I cannot seem to find an answer to in the documentation: 1. is there any way to specify arguments that should be generated for the #+begin_example line for the results of a babel invocation? Not currently. When exporting the *code* contained in a block, then any switches placed after begin_src are reinstated in the output code block. I.e. begin_src XXX switches :exports code ... becomes begin_src XXX switches ... However when a begin_example block is created as *results*, it is created without any switches. I'm tending to think that it would be inappropriate to simply reinstate the src block switches in the results block. How do you suggest this option should be made available? Perhaps a new header arg, or as a variable org-babel-results-block-switches, or both? Note that you will need to set org-babel-min-lines-for-block-output to zero in order to guarantee that output is enclosed in a begin_example block. Otherwise small chunks of output will be made verbatim by prepending lines with ': ', in which case (I believe) the -t switch is unavailable. Specifically, I would like to append automatically, for instance, arguments such as -t -w 100 -h 20 so that the export to HTML output is presented in a text box that has scroll bars etc. 2. even if I manually put the options on the begin_example line, the export to HTML creates a 'pre class=example' directive instead of what I would expect: 'textarea cols=40 rows=10' or something similar. I don't understand why exporting a file without babel constructs should behave differently from exporting with This is a consequence of the same issue: org-exp-blocks preprocesses your src block in a pre-export buffer (a copy of the original), hands it to org-babel, which creates the results block (overwriting the version where you had manually inserted switches), and that results block lacks any switches. Dan babel. Should a begin_example section not export the same in both cases? I am using org-mode and babel up to date as of this morning. Any pointers highly welcome! Thanks, eric ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Re: [Orgmode] [babel] options to the example directive
Dan Davison davi...@stats.ox.ac.uk writes: This is a consequence of the same issue: org-exp-blocks preprocesses your src block in a pre-export buffer (a copy of the original), hands it to org-babel, which creates the results block (overwriting the version where you had manually inserted switches), and that results block lacks any switches. Would it be worthwhile to add a :results_switches header argument for passing switches through to a results block? If that would solve the problem it should be easy to implement. Best -- Eric ___ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode