Commit Graph

233 Commits

Author SHA1 Message Date
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
Carsten Dominik 848b2039a1 Add org-git-link.el by Raimar Finken 2009-10-28 12:14:41 +01: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
Eric Schulte 1771e61cfc org-babel-exp: simplification of org-babel-lob-mode 2009-10-25 12:52:17 -06:00
Eric Schulte 6851f07f92 org-babel-exp: adding org-babel-lob-mode for fontification of lob lines 2009-10-25 10:47:12 -06:00
Dan Davison 70a5963563 org-babel: avoid false positive matches for inline and #+lob constructs
This forces the #+lob regexp to match at the beginning of a line (with
optional preceding whitespace), and requires inline code blocks to be
surrounded by some whitespace.
2009-10-25 10:47:07 -06:00
Dan Davison 5f1ea1ce70 org-babel: By default, don't use session for inline blocks 2009-10-25 10:47:06 -06:00
Dan Davison ed0f4a36e9 org-babel: Export code and/or results of #+lob function calls.
Currently, python fontification is used for export of these lines, due
to some similarity between python function call syntax and #+lob call
syntax. This is implemented as a language type "babel", mapped to
python in org-src-lang-modes.
2009-10-24 15:27:43 -06:00
Eric Schulte 824c8c0dba org-babel: behaviour-neutral changes anticipating subsequent work on export
merging original change by Dan Davison which generalizes the types
  of blocks exported by org-babel to include the following types
  - inline
  - lob
  - block
2009-10-23 16:02:29 -06:00
Eric Schulte 6ef0dd44bd org-babel-exp: exporting inline src blocks now respects different :results type 2009-10-23 16:02:28 -06:00
Eric Schulte 4539c8998c org-babel-exp when exporting blocks, don't return results as string
rather execute normally using org-babel-insert-results to insert the
  results in the buffer
2009-10-23 16:02:27 -06:00
Eric Schulte 62c8d0a835 org-babel: foreign-file references work, export is fully functional
1) source blocks can now reference source-blocks in other files using
   the filename:sourcename syntax

2) on export all references are now made to explicitly point to the
   original buffer using the filename:sourcename syntax.  This ensures
   that all references are correctly resolved on export, even when the
   referenced source block has already been processed.
2009-10-23 16:02:24 -06:00
Eric Schulte 540fa74513 org-babel-exp.el is now working for inline blocks 2009-10-23 16:02:23 -06:00
Carsten Dominik bdb6992813 Apply patch to fix registry
Patch by Andreas Burtzlaff
2009-10-22 15:23:58 +02:00
James TD Smith 04ea1a3b14 Some small fixes in org-registry.
org-registry-assoc-all removed matching links from the registry. This meant
subsequent calls with the same parameters would return nothing.

Add another function for finding entries in the register, which used find-if to
get entries satisfying a predicate.
2009-10-21 10:42:50 +02:00
Dan Davison c168c6ccaa org-babel: improve prompt when choosing file to tangle 2009-10-20 10:17:42 -04:00
Dan Davison 32cfddf7b1 org-babel: fix #+lob line regexp 2009-10-20 09:48:03 -04:00
Dan Davison 68a1240db8 org-babel: ensure that result is returned when using :results output
One half of this patch is a revert of c167a4ac32.

These changes are necessary so that :results output works correctly
with #+lob calls. For example the following example did not work:

--------------------------------------------------
3. :results output org -> doesn't work with #+lob:
--------------------------------------------------
\#+srcname: randthree(n,max)
\#+begin_src ruby
number = n
maximum = max
puts "* Random numbers\n" +
"Here are some random numbers: " +
(1..number).collect {|x| (rand * maximum).ceil }.join(", ") +
"."
\#+end_src

\#+lob: randthree(n=3,max=10) :results output org
2009-10-20 09:24:15 -04:00
Dan Davison 64c26c6561 org-babel: remove prompt characters from R output
When evaluating R code in a persistent session, lines of output
typically start with a single prompt character. However, under certain
circumstances, lines start with a concatenation of (primary and
secondary) prompt characters separated by spaces. This seems to be
related to having blank lines in the input. This fix ensures that all
such prompt characters are removed from the output.
2009-10-19 23:34:13 -04:00
Dan Davison 4dba8ad21f org-babel: a bug in reference-resolution caused by a typo 2009-10-19 23:33:13 -04:00
Dan Davison 0d10946cff org-babel: nested calls inherit header args from enclosing scopes
And when merging header args, those from enclosing scopes take
precedence. For example, output to file from a source block is
implemented by (a) sending the output to file, and (b) having the
source block return the file name as its result. Before this change,
the file name returned could be set by a referenced source block (a
nested call), regardless of the value of the :file header arg of the
top-level source block.
2009-10-19 23:33:03 -04:00
Dan Davison 6c0c2039dd org-babel: make [:file filename] imply [:exports results]
Unless :exports is already none or both. This allows users to export
file output simply by adding a [:file filename] header arg.
2009-10-19 23:32:22 -04:00
Dan Davison 286bf35fe5 org-babel: bugfix: tighten up regexp
Prior to this, reference resolution could fail with quoted
strings. E.g. this didn't work:

\#+srcname: py-id(a=1)
\#+begin_src python
  a
\#+end_src

\#+lob: py-id(a="1")
2009-10-19 23:32:14 -04:00
Dan Davison 5219f4a410 org-babel: make org-babel-tangle-file interactive 2009-10-19 21:45:15 -04:00
Dan Davison 351f52192d org-babel: extend the way header args are taken from properties
This change allows org-file-properties to supply header args, and also
allows property inheritance if it has been enabled. Header-args
aquired from the item (or by inheritance) have precedence over those
aquired from org-file-properties.
2009-10-19 21:45:01 -04:00
Dan Davison 8ca34cba0b org-babel: alter R tangling defaults
Use "#!/usr/bin/env Rscript", and use ".R" instead of ".r".
2009-10-19 21:44:41 -04:00
Dan Davison 8b52bf09e0 org-babel: capture graphical output from R
If a [:file filename.ext] header arg is provided, then all graphical
output from the source block is captured on disk, and output of the
source block is a link to the resulting file, as with the
graphics-only languages such as gnuplot, ditaa, dot, asymptote. An
attempt is made to find a graphics device corresponding to the file
extension (currently .png, .jpg, .jpeg, .tiff, .bmp, .pdf, .ps,
.postscript are recognised); if that fails, png format output is
created.

Additionally, values for several arguments to the R graphics
device can be passed using header args:

:width :height :bg :units :pointsize
:antialias :quality :compression :res :type
:family :title :fonts :version :paper :encoding
:pagecentre :colormodel :useDingbats :horizontal

Arguments to the R graphics device that are not supported as header
args can be passed as a string in R argument syntax, using the header
arg :R-dev-args

An example block is (although both bg and fg can be passed directly as
header args)

\#+begin_src R :file z.pdf :width 8 :height 8 :R-dev-args bg="olivedrab", fg="hotpink"
  plot(matrix(rnorm(100), ncol=2), type="l")
\#+end_src
2009-10-19 21:44:28 -04:00
Eric Schulte 4d374b27d2 org-babel: :noweb header argument now expands noweb references before source-block evaluation 2009-10-19 12:12:19 -06:00
Eric Schulte 3db817fb02 org-babel: now supports pp results (emacs-lisp, ruby, python) 2009-10-18 16:18:34 -06:00
Eric Schulte c167a4ac32 org-babel: emacs-lisp now returns nothing when ":results output" 2009-10-18 16:18:27 -06:00
Eric Schulte 4abe8f7ea0 org-babel: added "table" results header argument as more readable alias for "vector" 2009-10-18 12:13:42 -06:00
Eric Schulte 28e6ff8d66 org-babel: adding python support (along the same lines as ruby) 2009-10-16 17:05:31 -06:00
Eric Schulte 770305a650 org-babel: adding ruby support for returning "code" results 2009-10-16 17:05:13 -06:00
Eric Schulte 430a3bf6ad org-babel: "code" results type for returning results in of source code syntax
This includes the required changes to org-babel.el and a
language-specific implementation for emacs-lisp.  The emacs-lisp
changes are from a patch by Benny Andresen.
2009-10-16 17:04:55 -06:00
Eric Schulte b0c1758c2a org-babel: dot improvements
for more information on the dot family of tools see
http://www.graphviz.org/
2009-10-14 16:03:40 -06:00
Eric Schulte 0444ca8661 org-babel: haskell lhs2tex export now responds to prefix argument 2009-10-09 11:44:27 -06:00
Dan Davison e079584e56 org-babel: make tangling honour org-src-preserve-indentation
This allows python code to be tangled (i.e. extracted) correctly by
org-babel-tangle. Previously, if e.g. methods of a class were in
separate blocks, then they would be incorrectly indented as top-level
functions in the tangled output.
2009-10-08 12:29:37 -04:00
Eric Schulte c0d54a9a6b org-babel: Haskell lhs export: ensure all \[begin|end]{code} statements start at the first column 2009-10-07 16:01:24 -06:00
Eric Schulte 27df66d8da org-babel: added :session to the header-arguments allowed in headline properties 2009-10-07 12:46:23 -06:00
Eric Schulte 407bf3b816 org-babel: haskell lhs export now displays errors and configurable org-babel-haskell-lhs2tex-command 2009-10-04 17:49:01 -06:00
Eric Schulte 63b360041f org-babel: org-babel-haskell can now export to .lhs literate Haskell
this commit adds the function `org-babel-haskell-export-to-lhs'

   for information on lhs see http://people.cs.uu.nl/andres/lhs2tex/
2009-10-04 16:41:45 -06:00
Benjamin Andresen ce4aad900a org-babel: add langs/org-babel-screen.el 2009-10-04 10:22:30 -06:00
Carsten Dominik 7445456796 Allow to exclude some blocks in org-special-blocks.el
Patch by Chris Gray.
2009-10-02 13:11:52 +02:00
Dan Davison fe5c0d96c6 org-babel: tightening up insertion of results
Previously, altering the name of a source block, followed by C-c C-c,
did not alter the name of the corresponding results.
2009-09-30 07:19:15 -06:00
Dan Davison ab7a58aaff org-babel: change regexp parsing of #+srcname line
One thing that was going wrong was that if #+srcname: was provided
with no subsequent name, the name was taken from the next line.
2009-09-30 07:19:14 -06:00
Dan Davison 92934c7c9b org-babel: allow #+lob line to be terminated by end-of-buffer 2009-09-30 07:19:13 -06:00
Dan Davison 10ea3ad10b org-babel: make :file header arg imply :results file 2009-09-28 18:55:41 -06:00
Dan Davison 7c32bc5672 org-babel: allow header args to be specified on #+lob line 2009-09-28 18:55:39 -06:00
Eric Schulte 3f1be49a04 adding org-babel-load-in-session-maybe bound to Meta-Up (currently only for Haskell) 2009-09-24 21:58:49 -06:00
Eric Schulte 0fa8a7feac fleshed out org-babel-haskell-prep-session (called with Meta-Down inside source block) 2009-09-24 21:58:48 -06:00
Eric Schulte 4cb3e3704e org-babel: cleaned up code that inserts results 2009-09-22 19:49:49 -06:00
Sebastian Rose, Hannover, Germany 0c465dfc5b org-babel-init.el now adds it's directories to user's load-path 2009-09-16 19:51:18 -06:00
Eric Schulte 63b0f3878e org-babel is better at evaluating indented code blocks 2009-09-16 19:33:10 -06:00
Eric Schulte a704ce4896 org-babel-asymptote now supports interactive viewing if the :file header argument is missing 2009-09-16 16:21:45 -06:00
Eric Schulte 8e87868df2 org-babel: asymptote maps to asy-mode in `org-src-lang-modes' and added requirements section to org-babel-asymptote.el 2009-09-16 10:54:43 -06:00
Carsten Dominik 738ba015a3 Install new contributed package org-invoice.el by Peter Jones 2009-09-16 14:19:17 +01:00
Eric Schulte 6f9644682b org-babel now explicitly requires org-table 2009-09-15 09:53:37 -06:00
Eric Schulte 6ce74742b8 org-babel-execute:gnuplot no longer pops up a gnuplot window
also some whitespace-only indentation changes in org-babel.el
2009-09-14 20:22:56 -06:00
Eric Schulte dacd052bef brought in latest library-of-babel.org from worg 2009-09-13 21:15:17 -06:00
Eric Schulte 133aa88a06 renaming the org-babel-lisp file to org-babel-emacs-lisp 2009-09-13 10:07:31 -06:00
Eric Schulte 9c6309908f removing .gitignore from contrib/babel 2009-09-12 20:22:24 -06:00
Eric Schulte d5d8608a97 now respects the properties on export 2009-09-12 12:14:09 -06:00
Eric Schulte 2d2a2a1956 trimming down the size of contrib/babel 2009-09-12 11:39:38 -06:00
Eric Schulte eec9c235d0 moving/removing files, and updating paths 2009-09-11 13:56:14 -06:00
Eric Schulte c0554c7753 merging with the org-babel repository 2009-09-11 13:44:05 -06:00
Carsten Dominik 4dc86eedd4 Use better regular expression to find bibliography line
Hsiu-Khuern writes:

> In contrib/lisp/org-export-bibtex.el, the BiBTeX file has to
> match the Emacs regexp "\w+".  So a line like
>
> #+BIBLIOGRAPHY: mybib_new
>
> will not work because of the underscore character in the
> filename.  (I suppose the actual behavior depends on the local
> Emacs settings that affect the "syntax table".)  May I propose
> changing the regexp to "[[:alnum:]_]+"?
>
> Initially, I was stumped by this because I thought \w was a
> "regular" regexp :), such as defined in sed, and would match
> underscores as well.
2009-08-14 20:30:19 +02:00
Carsten Dominik 295491a5e8 Add org-track.el. 2009-08-07 07:29:42 +02:00
Carsten Dominik c7d91cbc0e Fix parenthesis bug in org-checklist.el
Patch by Christopher Suckling.
2009-08-06 00:29:27 +02:00
James TD Smith c65fb88796 Bugfixes, documentation and custom options for org-checklist.
* contrib/lisp/org-checklist.el
  - Fix some problems with the print/export feature in org-checklist.
  - Add custom options for this module
  - Fix some interaction with a2ps
  - Only reset checkboxes if TODO state is done.

* lisp/org.el
  - Add org-checklist to org-modules
2009-08-03 16:45:47 +02:00
Carsten Dominik 31ceed47ff New minor mode org-indent-mode
This mode implements outline indentation similar to clean view, but in
a dynamic and virtual way, at display time.
2009-08-03 06:24:24 +02:00
Bastien Guerry 7896ef6292 org-export-generic format: Fix compatibility issue with Emacs 23.
Patch by Wes Hardaker <wjhns209@hardakers.net>
2009-07-21 07:51:32 +02:00
Bastien Guerry dca12dd19a Fixed typo. Updated the copyright years. 2009-06-23 16:27:34 +02:00
Carsten Dominik daa2800ff3 Add Wes Hardaker's generic exporter as a contributed package 2009-06-20 20:53:03 +02:00
Carsten Dominik 74e8c78b93 Move org-exp-blocks.el into the core 2009-06-11 16:17:50 +02:00
Carsten Dominik ce2b2ea8f8 Fix bug. 2009-06-10 19:32:48 +02:00
Carsten Dominik 95a4be9088 Fix problem with unknown variable in org-exp-blocks.el 2009-06-09 19:26:06 +02:00
Carsten Dominik a2f787a643 New contributed modules org-mac-iCal.el by Christopher Suckling 2009-06-06 07:59:19 +02:00
Carsten Dominik ae2526fc94 org-jira.el: New file, by Jonathan Arkell 2009-06-05 09:02:55 +02:00
Carsten Dominik 470fba6086 org-R.el: Updated.
New version from Dan Davison.
2009-06-03 11:14:02 +02:00
Carsten Dominik 1dd08dc508 org-exp-blocks.el: Allow adding new block types
Patch by Eric Schulte.
2009-06-02 09:45:08 +02:00
Carsten Dominik b6de229d4e Protect htmlize from some buggy fants 2009-05-14 09:33:07 +02:00
Carsten Dominik 21e08a117d Docbook export: Support ditaa images
Patch by Dale Smith.
2009-05-10 16:25:12 +02:00
Carsten Dominik dd1268dcac New file: contrib/lisp/org-special-blocks.el
Contributed by Chris Gray
2009-05-07 13:53:35 +02:00
Carsten Dominik 34a91b7f5b Moved `org-reset-checkbox-state-subtree' to org-list.el 2009-05-04 16:57:26 +02:00
Bernt Hansen 710eec9d57 New function org-reset-checkbox-state which always clears the checkboxes
Copying subtrees with checked off lists to create a new task would
normally require the boxes to be unchecked.  This function lets
you easily clear all checkboxes in an entry without requiring
the RESET_CHECK_BOXES property.
2009-04-24 08:50:00 -04:00