Nick Dokos <nicholas.dokos@hp.com> writes: > Eric Schulte <schulte.eric@gmail.com> wrote: > >> The attached updated patch fixes a bug in the original. >> > > Minor problem in applying: > > ,---- > | $ git apply ~/Mail/inbox/724 > | /home/nick/Mail/inbox/724:671: trailing whitespace. > | #+name: > | /home/nick/Mail/inbox/724:599: new blank line at EOF. > | + > | warning: 2 lines add whitespace errors. > `---- The attached version fixes these issues, Thanks -- Eric >From 0e43d59ee8d46a63f86780a502de726271bc39de Mon Sep 17 00:00:00 2001 From: Eric Schulte <schulte.eric@gmail.com> Date: Fri, 28 Oct 2011 10:44:21 -0600 Subject: [PATCH] removing code block, results and call-line synonyms -- BREAKING CHANGE Following a round of on-list discussion many code block synonyms have been removed, moving forward the following syntax is valid. - call lines are specified with #+call: - code blocks are named with #+name: - results are named with #+name:, however results generated by a code block may still be labeled with #+results:, and tables named with #+tblname: will be considered to be named results The following function may be used to update an existing Org-mode buffer to the new syntax. (defun update-org-buffer () "Update an Org-mode buffer to the new data, code block and call line syntax." (interactive) (save-excursion (flet ((to-re (lst) (concat "^[ \t]*#\\+" (regexp-opt lst t) "\\(\\[\\([[:alnum:]]+\\)\\]\\)?\\:[ \t]*")) (update (re new) (goto-char (point-min)) (while (re-search-forward re nil t) (replace-match new nil nil nil 1)))) (let ((old-re (to-re '("RESULTS" "DATA" "SRCNAME" "SOURCE"))) (lob-re (to-re '("LOB"))) (case-fold-search t)) (update old-re "name") (update lob-re "call"))))) Note: If an old version of Org-mode (e.g., the one shipped with Emacs) is installed on your system many of the important variables will be pre-defined with a defvar and *will not* have their values automatically updated, these include the following. - org-babel-data-names - org-babel-result-regexp - org-babel-src-block-regexp - org-babel-src-name-regexp - org-babel-src-name-w-name-regexp It may be necessary to either remove the source code of older versions of Org-mode, or to explicitly evaluate the ob.el file. * lisp/ob-exp.el (org-exp-res/src-name-cleanup): Updated Documentation. * lisp/ob-lob.el (org-babel-block-lob-one-liner-regexp): Updated regular expression. (org-babel-inline-lob-one-liner-regexp): Updated regular expression. * lisp/ob-ref.el (org-babel-ref-resolve): Notice when something that looks like a data results may actually be a code block. * lisp/ob-table.el: Updated documentation. * lisp/ob.el (org-babel-src-name-regexp): Simplified regexp. (org-babel-get-src-block-info): Updated match strings. (org-babel-data-names): Simplified acceptable names. (org-babel-find-named-block): Indentation. (org-babel-find-named-result): Updated to not return a code block as a result. * lisp/org.el (org-fontify-meta-lines-and-blocks-1): Removing references to old syntactic elements. (org-additional-option-like-keywords): Removing references to old syntactic elements. * contrib/babel/library-of-babel.org: Updated to make use of the new syntax. * testing/examples/babel-dangerous.org: Updated to make use of the new syntax. * testing/examples/babel.org: Updated to make use of the new syntax. * testing/examples/ob-awk-test.org: Updated to make use of the new syntax. * testing/examples/ob-fortran-test.org: Updated to make use of the new syntax. * testing/lisp/test-ob.el: Removed two bad tests which tested the literal values of old regular expressions rather than their behavior.
6.5 KiB
a collection of examples for Babel tests
:noweb
header argument expansion- elisp forms in header arguments
- excessive id links on tangling
- simple variable resolution
- multi-line header arguments
- simple named code block
- Pascal's Triangle – export test
- calling code blocks from inside table
- executing an lob call line
- exporting an lob call line
- inline source block
- parsing header arguments
- conflicting blocks on export
- using the
:noweb-ref
header argument - resolving sub-trees as references
- org-babel-get-inline-src-block-matches
- returning file names – interpreted as lists
:noweb
header argument expansion
(message "expanded")
;; noweb-yes-start
<<noweb-example>>
;; noweb-yes-end
;; noweb-no-start
<<noweb-example>>
;; noweb-no-end
;; noweb-tangle-start
<<noweb-example>>
;; noweb-tangle-end
elisp forms in header arguments
prop
4
excessive id links on tangling
no, don't give me an ID
(message "not to be tangled")
yes, I'd love an ID
(message "for tangling")
simple variable resolution
(list 1 2 3 4)
(length four)
4
multi-line header arguments
(map 'list #'list numbers letters)
1 | a |
2 | b |
3 | c |
4 | d |
5 | e |
6 | f |
7 | g |
simple named code block
42
42
42
Pascal's Triangle – export test
(defun pascals-triangle (n)
(if (= n 0)
(list (list 1))
(let* ((prev-triangle (pascals-triangle (- n 1)))
(prev-row (car (reverse prev-triangle))))
(append prev-triangle
(list (map 'list #'+
(append prev-row '(0))
(append '(0) prev-row)))))))
(pascals-triangle n)
calling code blocks from inside table
(sqrt n)
executing an lob call line
This is an inline call call_echo(input="testing") embedded in prose. This is an inline call call_echo(input="testing")[:results vector] embedded in prose.
call_echo("testing") call_concat(1,2,3)
(format "%S%S%S" a b c)
exporting an lob call line
(* 2 it)
The following exports as a normal call line
Now here is an inline call call_double(it=1) stuck in the middle of some prose.
This one should not be exported call_double(it=2)
because it is
quoted.
Finally this next one should export, even though it starts a line call_double(it=3) because sometimes inline blocks fold with a paragraph.
And, a call with raw results call_double(4)[:results raw] should not have quoted results.
The following 2*5=call_double(5) should export even when prefixed by an = sign.
inline source block
Here is one in the middle
echo 1
echo 2
echo 3
parsing header arguments
the body
conflicting blocks on export
- a
- b
- c
"code block results"
(reverse lst)
using the :noweb-ref
header argument
<<fullest-disk>>
query all mounted disks
df
strip the header row
|sed '1d'
sort by the percent full
|awk '{print $5 " " $6}'|sort -n |tail -1
extract the mount point
|awk '{print $2}'
resolving sub-trees as references
(length text)
<<simple-subtree>>
<<d4faa7b3-072b-4dcf-813c-dd7141c633f3>>
simple subtree with custom ID
this is simple
simple subtree with global ID
has length 14
org-babel-get-inline-src-block-matches
echo "One"
echo "middle"
echo 2} blocks on the src_emacs-lisp{"same"
echo "parameters"
returning file names – interpreted as lists
echo "[[file:./cv.cls]]"
[[file:./cv.cls]]
echo "[[file:./cv.cls]]"
/tec/org-mode/src/commit/4f5b6317b54c25adad4a6865bdcb7436d05fba75/testing/examples/cv.cls