Merge branch 'changes'

This commit is contained in:
Carsten Dominik 2010-07-18 08:58:55 +02:00
commit 4df0e1b915
1 changed files with 396 additions and 1 deletions

View File

@ -6,11 +6,406 @@
#+STARTUP: indent hidestars
* Version 7.01
:PROPERTIES:
:VISIBILITY: content
:CUSTOM_ID: v7.01
:END:
** Incompatible Changes
*** Emacs 21 support has been dropped
Do not use Org mode 7.xx with Emacs 21, use an older version, for
example [[http://orgmode.org/org-6.36c.zip][version 6.36c]].
*** XEmacs support requires the XEmacs development version
To use Org mode 7.xx with XEmacs, you need to run the developer
version of XEmacs. I was about to drop XEmacs support entirely,
but Michael Sperber stepped in and made changes to XEmacs that
made it easier to keep the support. Thanks to Michael for this
last-minute save.
*** Customizable variable changes for DocBook exporter
To make it more flexible for users to provide DocBook exporter
related commands, we start to use format-spec to format the
commands in this release. If you use DocBook exporter and use it
to export Org files to PDF and/or FO format, the settings of the
following two customizable variables need to be changed:
1. =org-export-docbook-xslt-proc-command=
2. =org-export-docbook-xsl-fo-proc-command=
Instead of using =%s= in the format control string for all
arguments, now we use /three/ different format spec characters:
1. =%i=: input file argument
2. =%o=: output file argument
3. =%s=: XSLT stylesheet argument
For example, if you set =org-export-docbook-xslt-proc-command= to
: java com.icl.saxon.StyleSheet -o %s %s /path/to/docbook.xsl
in the past, now you need to change it to
: java com.icl.saxon.StyleSheet -o %o %i %s
and set a new customizable variable called
=org-export-docbook-xslt-stylesheet= to =/path/to/docbook.xsl=.
Please check the documentation of these two variables for more
details and other examples.
Along with the introduction of variable
=org-export-docbook-xslt-stylesheet=, we also added a new
in-buffer setting called =#+XSLT:=. You can use this setting to
specify the XSLT stylesheet that you want to use on a per-file
basis. This setting overrides
=org-export-docbook-xslt-stylesheet=.
*** Org-babel configuration changes
:PROPERTIES:
:CUSTOM_ID: ob-configuration-changes
:END:
Babel took the integration into Org-mode as an opportunity to do
some much needed house cleaning. Most importantly we have
simplified the enabling of language support, and cleared out
unnecessary configuration variables -- which is great unless you
already have a working configuration under the old model.
The most important changes regard the /location/ and /enabling/
of Babel (both core functionality and language specific support).
- Babel :: Babel is now part of the core of Org-mode, so it is
now loaded along with the rest of Org-mode. That means that
there is /no configuration/ required to enable the main
Babel functionality. For current users, this means that
statements like
#+begin_src emacs-lisp
(require 'org-babel)
#+end_src
or
#+begin_src emacs-lisp
(require 'org-babel-init)
#+end_src
that may by lying around in your configuration must now be
removed.
- load path :: Babel (including all language specific files --
aside from those which are located in the =contrib/=
directory for reasons of licencing) now lives in the base of
the Org-mode lisp directory, so /no additional directories/
need to be added to your load path to use babel. For Babel
users this means that statements adding babel-specific
directories to your load-path should now be removed from
your config.
- language support :: It is no longer necessary to require
language specific support on a language-by-language basis.
Specific language support should now be managed through the
`org-babel-load-languages' variable. This variable can be
customized using the Emacs customization interface, or
through the addition of something like the following to your
configuration (note: any language not mentioned will /not/
be enabled, aside from =emacs-lisp= which is enabled by
default)
#+begin_src emacs-lisp
(org-babel-do-load-languages
'org-babel-load-languages
'((R . t)
(ditaa . t)
(dot . t)
(emacs-lisp . t)
(gnuplot . t)
(haskell . nil)
(ocaml . nil)
(python . t)
(ruby . t)
(screen . nil)
(sh . t)
(sql . nil)
(sqlite . t)))
#+end_src
Despite this change it is still possible to add
language support through the use of =require=
statements, however to conform to Emacs file-name
regulations all Babel language files have changed
prefix from =org-babel-*= to =ob-*=, so the require
lines must also change e.g.
#+begin_src emacs-lisp
(require 'org-babel-R)
#+end_src
should be changed to
#+begin_src emacs-lisp
(require 'ob-R)
#+end_src
We have eliminated the =org-babel-tangle-w-comments= variable as
well as the two main internal lists of languages, namely
- =org-babel-interpreters= and
- =org-babel-tangle-langs=
so any config lines which mention those variables, can/should be
stripped out in their entirety. This includes any calls to the
=org-babel-add-interpreter= function, whose sole purpose was to
add languages to the =org-babel-interpreters= variable.
With those calls stripped out, we may still in some cases want to
associate a file name extension with certain languages, for
example we want all of our emacs-lisp files to end in a =.el=, we
can do this will the =org-babel-tangle-lang-exts= variable. In
general you shouldn't need to touch this as it already has
defaults for most common languages, and if a language is not
present in org-babel-tangle-langs, then babel will just use the
language name, so for example a file of =c= code will have a =.c=
extension by default, shell-scripts (identified with =sh=) will
have a =.sh= extension etc...
The configuration of /shebang/ lines now lives in header
arguments. So the shebang for a single file can be set at the
code block level, e.g.
#+begin_src org
,#+begin_src clojure :shebang #!/usr/bin/env clj
, (println "with a shebang line, I can be run as a script!")
,#+end_src
#+end_src
Note that whenever a file is tangled which includes a /shebang/
line, Babel will make the file executable, so there is good
reason to only add /shebangs/ at the source-code block level.
However if you're sure that you want all of your code in some
language (say shell scripts) to tangle out with shebang lines,
then you can customize the default header arguments for that
language, e.g.
#+begin_src emacs-lisp
;; ensure this variable is defined defined
(unless (boundp 'org-babel-default-header-args:sh)
(setq org-babel-default-header-args:sh '()))
;; add a default shebang header argument
(add-to-list 'org-babel-default-header-args:sh
'(:shebang . "#!/bin/bash"))
#+end_src
The final important change included in this release is the
addition of new security measures into Babel. These measures are
in place to protect users from the accidental or uninformed
execution of code. Along these lines /every/ execution of a code
block will now require an explicit confirmation from the user.
These confirmations can be stifled through customization of the
`org-confirm-babel-evaluate' variable, e.g.
#+begin_src emacs-lisp
;; I don't want to be prompted on every code block evaluation
(setq org-confirm-babel-evaluate nil)
#+end_src
In addition, it is now possible to remove code block evaluation
form the =C-c C-c= keybinding. This can be done by setting the
=org-babel-no-eval-on-ctrl-c-ctrl-c= variable to a non-nil value,
e.g.
#+begin_src emacs-lisp
;; I don't want to execute code blocks with C-c C-c
(setq org-babel-no-eval-on-ctrl-c-ctrl-c t)
#+end_src
An additional keybinding has been added for code block
evaluation, namely =C-c C-v e=.
Whew! that seems like a lot of effort for a /simplification/ of
configuration.
*** New keys for TODO sparse trees
The key =C-c C-v= is now reserved for Org Babel action. TODO
sparse trees can still be made with =C-c / t= (all not-done
states) and =C-c / T= (specific states).
*** Customizable variable changes for DocBook exporter
To make it more flexible for users to provide DocBook exporter
related commands, we start to use format-spec to format the
commands in this release. If you use DocBook exporter and use it
to export Org files to PDF and/or FO format, the settings of the
following two customizable variables need to be changed:
1. =org-export-docbook-xslt-proc-command=
2. =org-export-docbook-xsl-fo-proc-command=
Instead of using =%s= in the format control string for all
arguments, now we use /three/ different format spec characters:
1. =%i=: input file argument
2. =%o=: output file argument
3. =%s=: XSLT stylesheet argument
For example, if you set =org-export-docbook-xslt-proc-command= to
: java com.icl.saxon.StyleSheet -o %s %s /path/to/docbook.xsl
in the past, now you need to change it to
: java com.icl.saxon.StyleSheet -o %o %i %s
and set a new customizable variable called
=org-export-docbook-xslt-stylesheet= to =/path/to/docbook.xsl=.
Please check the documentation of these two variables for more
details and other examples.
Along with the introduction of variable
=org-export-docbook-xslt-stylesheet=, we also added a new
in-buffer setting called =#+XSLT:=. You can use this setting to
specify the XSLT stylesheet that you want to use on a per-file
basis. This setting overrides
=org-export-docbook-xslt-stylesheet=.
** Details
*** Org Babel is now part of the Org core
See [[#ob-configuration-changes][Org-babel configuration changes]] for instructions on how to
update your babel configuration.
The most significant result of this change is that Babel now has
documentation! It is part of Org-mode's documentation, see
Chapter 14 [[http://orgmode.org/manual/Working-with-source-code.html#Working-with-source-code][Working With Source Code]]. The Babel keybindings
are now listed in the refcard, and can be viewed from any
Org-mode buffer by pressing =C-c C-v h=. In addition this
integration has included a number of bug fixes, and a significant
amount of internal code cleanup.
*** Help system for finding entities
The new command =M-x org-entities-help= creates a structured
buffer that lists all entities available in Org. Thanks to Ulf
Stegeman for adding the necessary structure to the internal
entity list.
*** Implement pretty display of entities, sub-, and superscripts.
The command =C-c C-x \= toggles the display of Org's special
entities like =\alpha= as pretty unicode characters. Also, sub
and superscripts are displayed in a pretty way. If you want to
exclude sub- and superscripts, see the variable
=org-pretty-entities-include-sub-superscripts=.
Thanks to Eric Schulte and Ulf Stegeman for making this possible.
*** The default capture system for Org mode is now called org-capture
This replaces the earlier system org-remember. The manual only
describes org-capture, but for people who prefer to continue to
use org-remember, we make available
[[http://orgmode.org/org-remember.pdf][a static copy of theformer chapter about remember]].
The new system has a better implementation and more
possibilities. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's announcement]] for more details.
To switch over to the new system:
1. Run
: M-x org-capture-import-remember-templates RET
to get a translated version of your remember templates into the
new variable =org-capture-templates=. This will "mostly" work,
but maybe not for all cases. At least it will give you a good
place to modify your templates. After running this command,
enter the customize buffer for this variable with
: M-x customize-variable RET org-capture-templates RET
and convince yourself that everything is OK. Then save the
customization.
2. Bind the command =org-capture= to a key, similar to what you did
with org-remember:
: (define-key global-map "\C-cc" 'org-capture)
If your fingers prefer =C-c r=, you can also use this key once
you have decided to move over completely to the new
implementation. During a test time, there is nothing wrong
with using both system in parallel.
*** New module to create Gantt charts
Christian Egli's /org-taskjuggler.el/ module is now part of Org.
He also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
*** Refile targets can now be cached
You can turn on caching of refile targets by setting the variable
=org-refile-use-cache=. This should speed up refiling if you
have many eligible targets in many files. If you need to update
the cache because Org misses a newly created entry or still
offers a deleted one, press =C-0 C-c C-w=.
*** Enhanced functionality of the clock resolver
Here are the new options for the clock resolver:
: i/q/C-g Ignore this question; the same as keeping all the idle time.
:
: k/K Keep X minutes of the idle time (default is all). If this
: amount is less than the default, you will be clocked out
: that many minutes after the time that idling began, and then
: clocked back in at the present time.
: g/G Indicate that you \"got back\" X minutes ago. This is quite
: different from 'k': it clocks you out from the beginning of
: the idle period and clock you back in X minutes ago.
: s/S Subtract the idle time from the current clock. This is the
: same as keeping 0 minutes.
: C Cancel the open timer altogether. It will be as though you
: never clocked in.
: j/J Jump to the current clock, to make manual adjustments.
For all these options, using uppercase makes your final state
to be CLOCKED OUT. Thanks to John Wiegley for making these
changes.
*** A property value of "nil" now means to unset a property
This can be useful in particular with property inheritance, if
some upper level has the property, and some grandchild of it
would like to have the default settings (i.e. not overruled by a
property) back.
Thanks to Robert Goldman and Bernt Hansen for pushing this
change.
*** The problem with comment syntax has finally been fixed
Thanks to Leo who has been on a year-long quest to get this fixed
and finally found the right way to do it.
*** Make it possible to protect hidden subtrees from being killed by =C-k=
This was a request by Scott Otterson.
See the new variable =org-ctrl-k-protect-subtree=.
*** New module org-mac-link-grabber.el
This module allows to grab links to all kinds of applications on
a mac. It is available in the contrib directory.
Thanks to Anthony Lander for this contribution.
*** LaTeX export: Implement table* environment for wide tables
Thanks to Chris Gray for a patch to this effect.
*** When cloning entries, remove or renew ID property
Thanks to David Maus for this change
* Version 6.36
:PROPERTIES:
:VISIBILITY: content
:CUSTOM_ID: v6.36
:END: