Commit graph

206 commits

Author SHA1 Message Date
Dan Davison fc693eb5e2 babel: treat python tuples as lists 2010-02-25 17:58:45 -05:00
Dan Davison a95c05773e babel: Fix unquoting of strings
Before this change we have

 #+begin_src ruby :results value :session
 ["1", "3"]
 #+end_src

 #+results:
 : 1", "3

 After, we have

 #+begin_src ruby :results value :session
 ["1", "3"]
 #+end_src

 #+results:
 | 1 | 3 |
2010-02-25 17:58:45 -05:00
Dan Davison 6f62066ac6 babel: Fix export bug.
Introduced at 747f425f00
2010-02-25 15:12:47 -05:00
Eric Schulte 8625e5c0bc babel: gnuplot can now return it's string output -- when session is set to "none" 2010-02-23 08:16:25 -07:00
Dan Davison a2d94ffc8e babel: prevent quoting of strings in shell variables 2010-02-23 07:31:43 -07:00
Eric Schulte 753d1402d8 babel: avoid infinite loop in org-babel-execute-buffer -- Thanks to Stephan Schmitt 2010-02-16 13:34:09 -07:00
Eric Schulte 574f1b590e babel: adding support for the OZ programming language -- Thanks to Torsten Anders!
For information on the OZ programming language see
  http://www.mozart-oz.org/, for information on using Org-babel with
  OZ see the OZ specific documentation on Worg at
  http://orgmode.org/worg/org-contrib/babel/languages/org-babel-doc-oz.php
2010-02-16 13:28:08 -07:00
Dan Davison 1e96482389 babel: check pdf file existence before deleting 2010-02-15 10:29:56 -07:00
Dan Davison 747f425f00 babel: only add srcname property for source blocks which actually have names 2010-02-15 10:07:23 -07:00
Eric Schulte 692c569215 babel: smarter `org-babel-ref-split-args' -- fixes bug parsing indexed function-style args 2010-02-14 11:48:28 -07:00
Eric Schulte 25f76ffa44 babel: now including source code block arguments w/source name on export
This change provides for better export of named source-code blocks,
  with specific support for more attractive html export.  The arguments
  are included with the source code name, and both the source code name
  and code body are wrapped in a div to support styling with css.  For
  example the following CSS can be used to associate a source-code block
  name with it's code body, and to slightly indent the body.

.org-src-container {
  border-left: 4px solid gray;
  padding: 0.5em 0.5em 0.5em 1em; }
  .org-src-container pre {
    margin-left: 1em; }
2010-02-10 13:34:00 -07:00
Eric Schulte 2531d704c0 babel: now able to reference links as results 2010-02-09 20:30:28 -07:00
Eric Schulte db1fe2a619 babel: greatly simplified block exportation 2010-02-09 19:09:19 -07:00
Eric Schulte df418de954 babel-clojure: slight change allowing strings to be passed in as variables 2010-02-08 13:17:37 -07:00
Eric Schulte 2829f77e2b babel: org-babel-load-file no longer fails when `file-truename' returns nil 2010-02-08 13:17:06 -07:00
Eric Schulte b59ebe6ec2 babel: org-babel-load-file will no longer strip portions of file names which appear to be extensions 2010-02-07 11:42:55 -07:00
Eric Schulte a60a83fbb6 babel: better handling of table in shell scripts 2010-02-07 10:17:20 -07:00
Eric Schulte 047ac8ab1b babel: shell command used by org-babel-sh is now configurable using the org-babel-sh-command variable 2010-02-07 09:36:56 -07:00
Eric Schulte e4bc599745 org-babel-latex: allow pdf/png generation directly from latex source blocks 2010-02-06 09:54:10 -07:00
Eric Schulte 3ce4962447 babel: added :shebang and :comments header arguments for finer control over tangled output 2010-02-05 19:04:50 -07:00
Eric Schulte 131441dbd2 babel: load-file works for symlinks -- Thanks to Martin Kühl 2010-02-04 09:43:11 -07:00
Dan Davison 21849af58b babel: can now tangle files without extensions 2010-01-28 09:58:52 -07:00
Eric Schulte b59a57e890 babel: bug fix related to "no longer overwriting non-babel src blocks" commit
this fixes a bug introduced in commit
  d154f27947
2010-01-25 23:54:03 -07:00
Eric Schulte d154f27947 babel: no longer overwriting non-babel src blocks org-exp-blocks: adding progress-marker local variable
the progress-marker local variable set inside of a let in
  org-exp-blocks is used to constrain searches in org-babel-exp to
  ensure that a babel block doesn't overwrite non-babel src blocks
2010-01-18 13:36:27 -07:00
Eric Schulte aa72dfc54f babel: implement org-babel-load-session:* for R, clojure, gnuplot, python, ruby and sh 2010-01-11 10:14:30 -07:00
Eric Schulte 1e8107faf7 babel: improve doc strings for org-babel-execute-buffer and org-babel-execute-subtree 2010-01-11 08:47:29 -07:00
Joel Boehland baa98c1f14 Added support to name the slime-output-buffer (slime-repl) to the name of the respective org-babel session
Signed-off-by: Joel Boehland <joel.boehland@evocomputing.com>
2010-01-09 14:25:18 -07:00
Eric Schulte 682d7a3193 babel: fixed bug where :exports was forced to "results" whenever :file was set 2010-01-09 12:44:02 -07:00
Joel Boehland 7121a5e9c8 babel: add session support for clojure 2010-01-06 17:38:35 -07:00
Eric Schulte cd587c7148 babel: now exports source code block names
When exporting to html the source-code block name will be included
   as a <label> immediately preceding the exported code.  This <label>
   is decorated with the 'org-src-name' css class.

   When exporting to LaTeX with the listings package the source-code
   block name will be included as a listings \title for the code
   block.  Currently the name will not be exported when the listings
   package is not in use.
2010-01-05 08:33:08 -07:00
Eric Schulte 0d82a1f2bc babel: fixed type in org-babel-keys 2010-01-01 15:55:11 -07:00
Eric Schulte da03a848e5 babel: now correctly combining nested tangle header arguments 2009-12-30 17:37:03 -07:00
Eric Schulte 2a2a76c2a3 babel: typo 2009-12-30 17:05:05 -07:00
Eric Schulte e9acf4276e babel: adding keys bindings for org-babel functions in org-babel-keys.el 2009-12-30 16:15:55 -07:00
Eric Schulte 80d41a9121 babel: inheriting properties from higher levels, tracking more properties 2009-12-28 18:04:25 -07:00
Eric Schulte 126f7a3582 org-babel: :cache header argument now uses standard "yes" "no" arguments 2009-12-22 10:11:23 -07:00
Eric Schulte 4815da4b16 org-babel: noweb references are not activated by default 2009-12-18 13:35:30 -07:00
Eric Schulte 0ec408cd9a org-babel: no quotes around strings in table output -- Thanks to Francesco Pizzolante 2009-12-18 11:10:03 -07:00
Eric Schulte 904a37a850 babel: noweb insertions are now placed behind the line prefix of the <<>> reference
So, for example since the following <<example>> noweb reference
  appears behind the SQL comment syntax the entire inserted body will
  also be SQL commented

-- <<example>>

  expands to

-- this is the
-- multi-line body of example

  Note that noweb replacement text which does *not* contain any
  newlines will not be affected by this change, so it is still
  possible to use inline noweb references.

  Thanks to Sébastien Vauban for this idea.
2009-12-17 11:22:00 -07:00
Eric Schulte 0969873888 org-babel-gnuplot: variable expansion in gnuplot source-code with '$' character
Variable names in gnuplot source code preceded by the '$' character
  will be expanded to their value before the code is executed.  For
  example the following will results in the evaluation of 'plot
  sin(x)' by gnuplot.

  "sin(x)"

  plot $fun
2009-11-30 21:01:43 -07:00
Benjamin Andresen c1ee488f45 org-babel-screen: now parsing it's own parameters 2009-11-30 07:20:51 -07:00
Eric Schulte dc5c41fbdc org-babel: fixed typo in reference resolution for #+results: lines 2009-11-29 10:00:19 -07:00
Dan Davison 4cbedbff1a org-babel: Fix insertion of new results
Insertion of new results was failing if the block was followed by
end-of-buffer. Also, if the block was followed by non-empty lines, the
\#+resname was being inserted away from column 0.
2009-11-27 20:28:27 -07:00
Eric Schulte bec1643a40 org-babel-sh: fixed session-based evaluation for sh blocks 2009-11-27 12:31:28 -07:00
Eric Schulte 4b6d270b16 org-babel: bug fix, now possible to evaluate source blocks before the first heading 2009-11-20 19:38:23 -07:00
Eric Schulte 5b749d2fe9 org-babel: fixing documentation of `org-babel-tangle-langs' 2009-11-20 10:43:15 -07:00
Eric Schulte 222f5c23e8 org-babel: results are now foldable
pressing tab while on the front of a results line will fold the
  results in the same manner as tabbing on the front of a block will
  fold the block.  To automatically hide all blocks when entering a
  new file add the `org-babel-result-hide-all' function to your
  `org-mode-hook'
2009-11-20 10:43:14 -07:00
Eric Schulte 45cce02402 org-babel: caching bugfixes
- the match-string was thrown off by an earlier commit
  - now sorting the parameters to ensure consistent order when
  - generating hashes
2009-11-20 10:43:06 -07:00
Dan Davison 2f05cf41ff org-babel: allow header arg values to be lisp forms.
This allows e.g.

:file (format "%s/images/pca-scatter.png" dir)
2009-11-20 10:42:54 -07:00
Dan Davison bf6089d8de org-babel: allow aliases for #+lob
This introduces #+call as an alias for #+lob.
2009-11-20 10:42:53 -07:00
Eric Schulte 91661d2f3b org-babel: #+srcname: can now be called #+source: or #+function:
source name regular expression has been extracted into a variable
  and multiple aliases are allowed.
2009-11-20 10:42:51 -07:00
Eric Schulte 2f8d30a578 org-babel: now using #+results instead of #+resname
"results" is now an acceptable alias for "resname".  Org-babel
    will begin inserting results using the "results" option however
    either option will remain viable moving forward.
2009-11-20 10:42:50 -07:00
Eric Schulte f4f38bd33a org-babel: results hashes are now hidden (for the most part)
The initial `org-babel-hash-show' characters of the hash will
   remain visible.  Pressing C-c C-c with the point on one of these
   initial characters will copy the hash to the kill ring, should you
   need to know it for any particular reason.
2009-11-20 10:42:48 -07:00
Eric Schulte 403c92f676 org-babel: set default behavior to non-caching in `org-babel-default-header-args'
This can be overridden with the use of the header argument :cache on
  the block, or subtree level.  To set the global behavior to caching
  add the following to your emacs init

  (setq org-babel-default-header-args
        (delete '(:nocache) org-babel-default-header-args))
2009-11-20 10:42:47 -07:00
Eric Schulte 1453f0294d org-babel: Hash based caching of results in buffer
This commit expands the #+resname: line to include a sha1 hash of
  the contents of the source-code block (including header arguments).
  This hash is saved in raw text in the resname line.  When a source
  block is evaluated it's hash is recalculated and checked against the
  hash in it's results line, if they are equal the current results are
  returned with no recalculation.

  Optional prefix argument when evaluating a source block will force
  re-calculation.

  caching behavior can be inhibited through the use of the :nocache
  header argument.  for global inhibition of caching add :nocache to
  the `org-babel-default-header-args' variable.
2009-11-20 10:42:33 -07:00
Eric Schulte 4646bacfde org-babel-exp: fixed export bug
the problem is that we were searching back to the previous source
  block before source block execution.
2009-11-16 09:23:19 -07:00
Eric Schulte 1d2bab1fb8 org-babel: variable values are now indexable
it is now possible to only assign a portion of a value to a variable
  in a source block.  So for example the following will only assign
  the second and third lines of the table 'example-table' to the
  variable 'data'

  :var data=example-table[1:2]

  and the following will only assign the second column of the first row

  :var data=example-table[0,1]

  note that all indices are 0 based

  it is possible to index into the results of source-code blocks as
  well as tables.  any number of dimensions can be indexed as long as
  they are separated by ','s and ranges can be indexed using the ':'
  operator.  for more information on indexing behavior see
  `org-babel-ref-index-list'
2009-11-14 20:18:12 -07:00
Eric Schulte d4a43d28e7 org-babel-exp: bug fix, once again allowing export of non-babel source blocks 2009-11-13 10:47:11 -07:00
Eric Schulte 56a81ee65a org-babel: no longer consumes src-block reference strings during export
Before this change to `org-babel-src-block-regexp' any strings
  following src-block switches were being removed during export.
2009-11-12 18:31:55 -07:00
Dan Davison a9069d8dfd org-babel: more robust version of :results value for python and perl.
In ':results value' ('functional') mode, a return statement is now
required in python and perl code.
2009-11-11 16:09:05 -05:00
Joel Boehland 838363f047 Change defn to def for session level variable declarations. Trim trailing whitespace. 2009-11-11 11:52:51 -07:00
Dan Davison 3547a6b64d org-babel: further cleaning of parameter-passing to language files
Also update docstrings of language execution functions to reflect
changes.
2009-11-10 15:23:26 -07:00
Eric Schulte 0fa68a53ba org-babel: language specific files using cleaner parameter passing 2009-11-10 15:23:18 -07:00
Eric Schulte 082fb84c34 org-babel: cleaner passing of parameter to language specific files 2009-11-10 15:23:00 -07:00
Eric Schulte 28881fa29d org-babel: added `org-babel-noweb-error-langs' to raise errors when noweb references can't be resolved 2009-11-10 08:59:17 -07:00
Eric Schulte 97e21c5b09 org-babel-clojure: one list tiny fix 2009-11-09 22:44:13 -07:00
Eric Schulte 103e0c4bf5 org-babel-clojure: minor bug fixes 2009-11-09 22:24:06 -07:00
Joel Boehland 78a3c5d57b org-babel-clojure: Added clojure language support to org-babel 2009-11-09 22:23:38 -07:00
Dan Davison bf3281692f org-babel-tangle: Save buffer at outset. 2009-11-09 09:32:05 -07:00
Dan Davison bec4551d8b org-babel: Add support for perl
Session-based evaluation is not supported.
2009-11-09 09:32:04 -07:00
Dan Davison 3ec02a953d org-babel-python: Silent bug fix.
The code worked because the unintended extra parentheses didn't cause problems.
2009-11-09 09:32:02 -07:00
Dan Davison 6875d4d8e3 org-babel: file output for ruby and python
With this change, if :file <filepath> is specified, ruby and python
blindly output a link to <filepath>. Responsibility for creating the
contents in <filepath> lies with the python/ruby code.
2009-11-09 09:32:01 -07:00
Dan Davison 210f85ce49 org-babel: store noweb-expanded code body in 'info' data structure 2009-11-09 09:32:00 -07:00
Eric Schulte e3bf0b4a81 org-babel-haskell: org-babel-haskell-export-to-lhs now optionally preserves indentation
based either on the value of org-src-preserve-indentation or the
    presence of the -i switch
2009-11-04 17:46:55 -07:00
Eric Schulte 260007e61f org-babel-tangle: now careful to only add one shebang per file 2009-11-04 15:18:50 -07:00
Eric Schulte cd405fad22 org-babel-tangle: now conservative about whitespace insertion around tangled blocks 2009-11-04 15:14:45 -07:00
Dan Davison 43bd90ef81 org-babel: new header argument :results_switches
If present this should be followed by org-mode block switches to be
inserted with the results block.
2009-11-04 14:55:10 -07:00
Dan Davison ea2cd9b1c8 org-babel: make info structure available when removing/inserting results
This also eliminates two extra calls to org-babel-get-src-block-info.
2009-11-04 14:55:09 -07:00
Dan Davison f01fb927e1 org-babel: read results contained in generic org blocks 2009-11-02 06:50:28 -07:00
Dan Davison 13d670744e org-babel: set case-fold-search t when reading results 2009-11-02 06:50:26 -07:00
Dan Davison 43cd1aa2b9 org-babel: trim trailing newline from noweb-referenced material 2009-11-01 14:39:17 -05:00
Dan Davison 8b33a47410 org-babel: match multiple noweb references on same line correctly. 2009-11-01 14:38:17 -05:00
Dan Davison 3cf02c1afa org-babel: allow regexp to be supplied in org-babel-trim, as per docstring. 2009-11-01 14:36:47 -05:00
Dan Davison c84903f1b3 org-babel: export of functional-style source blocks
A "functional-style" source block is one in which the name is followed
immediately by a parenthesised argument. An example is the following
"function", which generates n uniform random numbers:

\#+srcname: rand(n)
\#+begin_src R
runif(n)
\#+end_src

With these changes, such source blocks are passed over to the export
machinery in the following form:

\#+begin_src org-babel-lob
<function-def-keyword> rand(n):
\#+end_src
\#+begin_src R <switches>
<indent>runif(n)
\#+end_src

where <function-def-keyword> is the value of
org-babel-function-def-export-keyword, which defaults to "function",
<switches> are the src block switches that belonged to the original
block, and <indent> is the whitespace indent of the function body, the
width of which is determined by org-babel-function-def-export-indent.
org-babel-lob is a simple major mode responsible for fontification of
the blocks corresponding to the function definition line (as opposed
to the function body).
2009-11-01 10:05:42 -05:00
Dan Davison 75299025d6 org-babel: use org-babel-get-src-block-info during export 2009-11-01 10:05:42 -05:00
Dan Davison 872d9157d9 org-babel: include functional-style args in org-babel-get-src-block-info list
This adds a new terminal (sixth) element to the list returned from
org-babel-get-src-block-info. It is used when exporting the code of
"functional style" code blocks, i.e. those in which the name of the
block is followed by a parenthesised argument list (or an empty pair
of parentheses).
2009-11-01 10:05:42 -05:00
Dan Davison d97f767632 org-babel: avoid inserting blank line at bottom of exported code blocks 2009-11-01 10:05:42 -05:00
Dan Davison 64cd40700e org-babel: Reinstate switches when exporting blocks of code 2009-11-01 10:05:42 -05:00
Dan Davison a0d03014ab org-babel: internal change: defer breaking up of info list in org-babel-exp.el 2009-11-01 10:05:42 -05:00
Dan Davison 72691f1ff7 org-babel: Single function to return all source block info.
- org-babel-get-src-block-info returns the name of the block as a new
  fifth element.

- org-babel-get-src-block-info incorporates the parenthesised variable
  references into the header arg list, with precendence given to
  explicit :var references, as before.

- remove function org-babel-get-src-block-name

- remove function org-babel-get-src-block-function-args

org-babel-get-src-block-function-args now returns a list
  (lang body params-alist switches srcname)
where, unless a non-nil value for the optional argument is passed,
params-alist contains any :var entries acquired from the parenthesised
argument list following the srcname.
2009-11-01 10:05:42 -05:00
Dan Davison dcc669f20a org-babel: parse src block switches
The switches are flags like -n and must *precede* the first colon
after the language (i.e. precede the first header argument). So the
general src block syntax is
\#+begin_src lang <switches> :header1 val1 :header2 val2 ...
...

org-babel-get-src-block-info now returns a list
(lang body params-alist switches)
2009-11-01 10:05:41 -05:00
Dan Davison c7d3844bd9 org-babel: annotate org-babel-src-block-regexp with comments for clarity 2009-11-01 10:05:41 -05:00
Dan Davison c6fb5d94d0 org-babel: update authorship records 2009-11-01 10:05:41 -05:00
Dan Davison 7cea83d870 org-babel-exp: ensure presence of `org-current-export-file' before resolving foreign file references 2009-10-29 09:00:50 -06:00
Eric Schulte e01839a826 org-babel-latex: initial support for exporting latex from org-babel 2009-10-28 16:13:53 -06:00
Eric Schulte f4d5b6dd49 org-babel noweb reference evaluation
noweb references which include ()s are now evaluated.  It is
  possible to pass arguments to the noweb references using the existing
  lob argument syntax.  So after this commit the following

<<example-block>>

  will insert the body of "example-block", and the following

<<example-block()>>

  will insert the results of "example-block", and the following

<<example-block(a=9)>>

  will insert the results of "example-block" with argument "a" set to
  the literal value of 9
2009-10-28 16:13:33 -06:00
Dan Davison 962a1e0608 org-babel: fix inline source block regexp
This satisfies the requirements that
1. the src_lang{} construct is preceded by whitespace
2. this whitespace is not consumed by the replacement text
2009-10-26 21:51:43 -06:00
Dan Davison 512b376bb5 org-babel: allow multiple spaces/tabs between "src" and lang 2009-10-26 21:51:42 -06:00
Dan Davison 2f82ee771a org-babel: use %s to format inline result when it is a string.
This avoids returning quote characters with the string.
2009-10-26 21:51:41 -06:00
Dan Davison 3fa8c7dfff org-babel: enforce canonical (lang body params) order of arguments 2009-10-26 21:51:39 -06:00