fleshing out the "* A meta-programming language for org-mode" section of org-babel...
[rgr-org-mode.git] / intro.org
blobf479fcff2bc698c0191769665f08a14395c39a52
2 * Introduction
3   [[http:orgmode.org][Emacs org-mode]] is an exceptionally rich emacs mode based around
4   hierachically-structured text documents. The environment that has
5   been designed around this central concept provides support for many
6   different usage modes. At a high level, important areas include note
7   taking, project planning and document publishing. Working with the
8   text files is made efficient by document navigation and editing
9   facilities which include creation, folding, restructuring and
10   repositioning of subtrees and list items, and a plain-text
11   spreadsheet for tabular data. Nevertheless, org is unobtrusive: an
12   org-mode buffer may make use of only the most basic features, or
13   even none at all. It is notoriously difficult to describe org
14   briefly: good starting points include [...].
16   Org therefore provides an ideal environment for literate
17   programming: chunks of source code in any language can be embedded
18   within the org-mode text file. The hierarchical structure of the
19   document may reflect, for example, the logic of the problem being
20   addressed or the structure of the project within which the problem
21   arises. Embedding source code within Org documents means that, for
22   example, the project-planning features of org-mode are immediately
23   available, and that the document may be published to HTML and LaTeX
24   with appropriate formatting of the code.
26   In addition to the standard org functionality, org provides
27   convenient switching between the org buffer with embedded code, and
28   a separate buffer in the native language mode. Thus literate
29   programming with org-mode does not impact upon language-specific
30   modes for working with source code in emacs. For example, when
31   working with [[http://www.r-project.org/][R]] code, you do not leave [[http://ess.r-project.org/][ess-mode]] until you flick back
32   from the code buffer to view it embedded within an org buffer, which
33   may also contain chunks of code in other languages.
34   
35 * Org-Babel
36   Org-Babel provides several extensions to the above-described method of
37   working with source code in org mode:
38   1. Code block execution for interpreted languages (python, ruby, shell, R, perl)
39   2. [...]