mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-08-24 22:32:53 +00:00
This fixes a wrong merge that should not have happened: commit 7e903a merges the master branch into the maint branch, while we really want to keep the maint branch a bugfix-only branch. This commit reverts back the maint branch to its state before merging the master branch. From there, we will fix remaining problems with the maint branch (e.g. copyright issues) then release this maint branch as Org-mode 7.8.05.
338 lines
7 KiB
Org Mode
338 lines
7 KiB
Org Mode
#+Title: a collection of examples for Babel tests
|
|
#+OPTIONS: ^:nil
|
|
|
|
* =:noweb= header argument expansion
|
|
:PROPERTIES:
|
|
:ID: eb1f6498-5bd9-45e0-9c56-50717053e7b7
|
|
:END:
|
|
|
|
#+name: noweb-example
|
|
#+begin_src emacs-lisp
|
|
(message "expanded")
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp :noweb yes
|
|
;; noweb-yes-start
|
|
<<noweb-example>>
|
|
;; noweb-yes-end
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp :noweb no
|
|
;; noweb-no-start
|
|
<<noweb-example>>
|
|
;; noweb-no-end
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp :noweb tangle
|
|
;; noweb-tangle-start
|
|
<<noweb-example>>
|
|
;; noweb-tangle-end
|
|
#+end_src
|
|
|
|
* elisp forms in header arguments
|
|
:PROPERTIES:
|
|
:ID: 22d67284-bf14-4cdc-8319-f4bd876829d7
|
|
:var: prop=(+ 2 2)
|
|
:END:
|
|
|
|
#+begin_src emacs-lisp
|
|
prop
|
|
#+end_src
|
|
|
|
#+name:
|
|
: 4
|
|
|
|
* excessive id links on tangling
|
|
:PROPERTIES:
|
|
:ID: ef06fd7f-012b-4fde-87a2-2ae91504ea7e
|
|
:END:
|
|
|
|
** no, don't give me an ID
|
|
#+begin_src emacs-lisp :tangle no
|
|
(message "not to be tangled")
|
|
#+end_src
|
|
|
|
** yes, I'd love an ID
|
|
:PROPERTIES:
|
|
:ID: ae7b55ca-9ef2-4d30-bd48-da30e35fd0f3
|
|
:END:
|
|
#+begin_src emacs-lisp :tangle no
|
|
(message "for tangling")
|
|
#+end_src
|
|
* simple variable resolution
|
|
:PROPERTIES:
|
|
:ID: f68821bc-7f49-4389-85b5-914791ee3718
|
|
:END:
|
|
|
|
#+name: four
|
|
#+begin_src emacs-lisp
|
|
(list 1 2 3 4)
|
|
#+end_src
|
|
|
|
#+begin_src emacs-lisp :var four=four
|
|
(length four)
|
|
#+end_src
|
|
|
|
#+name:
|
|
: 4
|
|
|
|
* multi-line header arguments
|
|
:PROPERTIES:
|
|
:ID: b77c8857-6c76-4ea9-8a61-ddc2648d96c4
|
|
:END:
|
|
|
|
#+headers: :var letters='(a b c d e f g)
|
|
#+begin_src emacs-lisp :var numbers='(1 2 3 4 5 6 7)
|
|
(map 'list #'list numbers letters)
|
|
#+end_src
|
|
|
|
#+name:
|
|
| 1 | a |
|
|
| 2 | b |
|
|
| 3 | c |
|
|
| 4 | d |
|
|
| 5 | e |
|
|
| 6 | f |
|
|
| 7 | g |
|
|
|
|
* simple named code block
|
|
:PROPERTIES:
|
|
:ID: 0d82b52d-1bb9-4916-816b-2c67c8108dbb
|
|
:END:
|
|
|
|
#+name: i-have-a-name
|
|
#+begin_src emacs-lisp
|
|
42
|
|
#+end_src
|
|
|
|
#+name:
|
|
: 42
|
|
|
|
#+name: i-have-a-name
|
|
: 42
|
|
|
|
* Pascal's Triangle -- export test
|
|
:PROPERTIES:
|
|
:ID: 92518f2a-a46a-4205-a3ab-bcce1008a4bb
|
|
:END:
|
|
|
|
#+name: pascals-triangle
|
|
#+begin_src emacs-lisp :var n=5 :exports both
|
|
(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)
|
|
#+end_src
|
|
|
|
* calling code blocks from inside table
|
|
:PROPERTIES:
|
|
:ID: 6d2ff4ce-4489-4e2a-9c65-e3f71f77d975
|
|
:END:
|
|
|
|
#+name: take-sqrt
|
|
#+begin_src emacs-lisp :var n=9
|
|
(sqrt n)
|
|
#+end_src
|
|
|
|
* executing an lob call line
|
|
:PROPERTIES:
|
|
:results: silent
|
|
:ID: fab7e291-fde6-45fc-bf6e-a485b8bca2f0
|
|
:END:
|
|
|
|
#+call: echo(input="testing")
|
|
#+call: echo(input="testing") :results vector
|
|
#+call: echo[:var input="testing"]()
|
|
#+call: echo[:var input="testing"]() :results vector
|
|
#+call: echo("testing")
|
|
#+call: echo("testing") :results vector
|
|
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: lob-minus(8, 4)
|
|
call_echo("testing")
|
|
call_concat(1,2,3)
|
|
|
|
#+name: concat
|
|
#+begin_src emacs-lisp :var a=0 :var b=0 :var c=0
|
|
(format "%S%S%S" a b c)
|
|
#+end_src
|
|
|
|
* exporting an lob call line
|
|
:PROPERTIES:
|
|
:ID: 72ddeed3-2d17-4c7f-8192-a575d535d3fc
|
|
:END:
|
|
|
|
#+name: double
|
|
#+begin_src emacs-lisp :var it=0
|
|
(* 2 it)
|
|
#+end_src
|
|
|
|
The following exports as a normal call line
|
|
#+call: double(it=0)
|
|
|
|
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
|
|
:PROPERTIES:
|
|
:results: silent
|
|
:ID: 54cb8dc3-298c-4883-a933-029b3c9d4b18
|
|
:END:
|
|
Here is one in the middle src_sh{echo 1} of a line.
|
|
Here is one at the end of a line. src_sh{echo 2}
|
|
src_sh{echo 3} Here is one at the beginning of a line.
|
|
|
|
* parsing header arguments
|
|
:PROPERTIES:
|
|
:ID: 7eb0dc6e-1c53-4275-88b3-b22f3113b9c3
|
|
:END:
|
|
|
|
#+begin_src example-lang :session :results output :var num=9
|
|
the body
|
|
#+end_src
|
|
* conflicting blocks on export
|
|
:PROPERTIES:
|
|
:ID: 5daa4d03-e3ea-46b7-b093-62c1b7632df3
|
|
:END:
|
|
#+name: a-list
|
|
- a
|
|
- b
|
|
- c
|
|
|
|
#+begin_src emacs-lisp :results wrap :exports both
|
|
"code block results"
|
|
#+end_src
|
|
#+begin_src emacs-lisp :var lst=a-list :results list
|
|
(reverse lst)
|
|
#+end_src
|
|
* using the =:noweb-ref= header argument
|
|
:PROPERTIES:
|
|
:ID: 54d68d4b-1544-4745-85ab-4f03b3cbd8a0
|
|
:noweb-sep: ""
|
|
:END:
|
|
|
|
#+begin_src sh :tangle yes :noweb yes :shebang #!/bin/sh
|
|
<<fullest-disk>>
|
|
#+end_src
|
|
|
|
** query all mounted disks
|
|
#+begin_src sh :noweb-ref fullest-disk
|
|
df
|
|
#+end_src
|
|
|
|
** strip the header row
|
|
#+begin_src sh :noweb-ref fullest-disk
|
|
|sed '1d'
|
|
#+end_src
|
|
|
|
** sort by the percent full
|
|
#+begin_src sh :noweb-ref fullest-disk
|
|
|awk '{print $5 " " $6}'|sort -n |tail -1
|
|
#+end_src
|
|
|
|
** extract the mount point
|
|
#+begin_src sh :noweb-ref fullest-disk
|
|
|awk '{print $2}'
|
|
#+end_src
|
|
* resolving sub-trees as references
|
|
:PROPERTIES:
|
|
:ID: 2409e8ba-7b5f-4678-8888-e48aa02d8cb4
|
|
:results: silent
|
|
:END:
|
|
|
|
#+begin_src emacs-lisp :var text=d4faa7b3-072b-4dcf-813c-dd7141c633f3
|
|
(length text)
|
|
#+end_src
|
|
|
|
#+begin_src org :noweb yes
|
|
<<simple-subtree>>
|
|
<<d4faa7b3-072b-4dcf-813c-dd7141c633f3>>
|
|
#+end_src
|
|
|
|
** simple subtree with custom ID
|
|
:PROPERTIES:
|
|
:CUSTOM_ID: simple-subtree
|
|
:END:
|
|
this is simple
|
|
|
|
** simple subtree with global ID
|
|
:PROPERTIES:
|
|
:ID: d4faa7b3-072b-4dcf-813c-dd7141c633f3
|
|
:END:
|
|
has length 14
|
|
|
|
* org-babel-get-inline-src-block-matches
|
|
:PROPERTIES:
|
|
:results: silent
|
|
:ID: 0D0983D4-DE33-400A-8A05-A225A567BC74
|
|
:END:
|
|
src_sh{echo "One"} block at start of line
|
|
One spaced block in src_sh{ echo "middle" } of line
|
|
src_sh{echo 2} blocks on the src_emacs-lisp{"same"} line
|
|
Inline block with src_sh[:results silent]{ echo "parameters" }.
|
|
* returning file names -- interpreted as lists
|
|
:PROPERTIES:
|
|
:ID: a73a2ab6-b8b2-4c0e-ae7f-23ad14eab7bc
|
|
:END:
|
|
|
|
#+begin_src sh :results scalar
|
|
echo "[[file:./cv.cls]]"
|
|
#+end_src
|
|
|
|
#+name:
|
|
: [[file:./cv.cls]]
|
|
|
|
#+begin_src sh :results raw scalar
|
|
echo "[[file:./cv.cls]]"
|
|
#+end_src
|
|
|
|
#+name:
|
|
[[file:./cv.cls]]
|
|
|
|
* in order evaluation on export
|
|
:PROPERTIES:
|
|
:exports: results
|
|
:ID: 96cc7073-97ec-4556-87cf-1f9bffafd317
|
|
:END:
|
|
|
|
First.
|
|
#+name: foo-for-order-of-evaluation
|
|
#+begin_src emacs-lisp :var it=1
|
|
(push it *evaluation-collector*)
|
|
#+end_src
|
|
|
|
Second
|
|
#+begin_src emacs-lisp
|
|
(push 2 *evaluation-collector*)
|
|
#+end_src
|
|
|
|
Third src_emacs-lisp{(push 3 *evaluation-collector*)}
|
|
|
|
Fourth
|
|
#+call: foo-for-order-of-evaluation(4)
|
|
|
|
Fifth
|
|
#+begin_src emacs-lisp
|
|
(push 5 *evaluation-collector*)
|
|
#+end_src
|