emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Org mode release 6.04


From: Carsten Dominik
Subject: [Orgmode] Org mode release 6.04
Date: Sun, 25 May 2008 09:31:36 +0200

Hi,

I am releasing Org 6.04, at http://orgmode.org

Enjoy!

- Carsten



Changes in version 6.04
~~~~~~~~~~~~~~~~~~~~~~~

Overview
========

- Statistics cookies [/] and [%] for TODO entries
- Editing source code example in the proper mode
- iCalendar now defines proper UIDs for entries
- New properties for customizing subtree export

Incompatible changes
====================

- The default of the variable `org-tags-match-list-sublevels' is
  now `t'.  The main reason for this is that it is easier to
  explain in the manual and will lead to fewer surprises.

- The former CONTRIB directory is now called "contrib".  This was
  already the case in the git distribution, but the tar and zip
  archives still did this wrong.

Details
=======


Statistics for TODO entries
---------------------------

The [/] and [%] cookies have already provided statistics for
checkboxes.  Now they do the same also for TODO entries.  If a
headline contains either cookie, changing the TODO state of any
direct child will trigger an update of this cookie.  Children
that are neither TODO nor DONE are ignored.

There have already been requests to automatically switch the
parent headline to DONE when all children are done.  I am not
making this a default feature, because one needs to make many
decisions about which keyword to use, etc.  Instead of a complex
customization variable, I am providing a hook that can be used.
This hook will be called each time a TODO statistics cookie is
updated, with the cursor in the corresponding line.  Each
function in the hook will receive two arguments, the number of
done entries, and the number of not-done entries, and you can use
the hook to change the state of the headline.  Here is an example
implementation:

 (defun org-summary-todo (n-done n-not-done)
"Switch entry to DONE when all sub-entries are done, to TODO otherwise."
   (let (org-log-done org-log-states)   ; turn off logging
     (org-todo (if (= n-not-done 0) "DONE" "TODO"))))

 (add-hook 'org-after-todo-statistics-hook 'org-summary-todo)


Editing source code example in the proper mode
----------------------------------------------

If you are writing a document with source code examples, you can
include these examples into a `#+BEGIN_SRC lang ... #+END_SRC' or
(with the org-mtags module loaded) a `<src...' structure.  `lang'
stands for the Emacs mode used for editing the language, this
could be `emacs-lisp' for Emacs Lisp mode examples, or `org' for
Org mode examples.  You can now use the key "C-c '" (that is C-c
followed by the single quote) to edit the example in its native
mode.  This works by creating an indirect buffer, narrowing it to
the example and setting the appropriate mode.  You need to exit
editing by killing that indirect buffer, with `C-x k'.  This is
important, because lines that have syntactic meaning in Org will
be quoted when the indirect buffer is killed.

I guess it would be nice to exit with `C-c C-c', but who knows
what this key is supposed to do in a random mode.

iCalendar now defines proper UIDs for entries
---------------------------------------------

This is necessary for synchronization services.  The UIDs are
created using the the org-id.el module which is now part of the
Or core.  If you set the variable

 (setq org-icalendar-store-UID t)

then all created UIDs will be stored in the entry as an `:ID:'
property.  This is off by default because it creates lots of
property drawers even if you only play with iCalendar export.
But if you plan to use synchronization, you really need to turn
this on.

Diary sexp entries do not yet receive proper persistent UIDs,
because they are transformed to iCalendar format by icalendar.el
which creates fresh UIDs each time, based on the current time.

An interesting aspect of Org is that a single outline node can
give rise to multiple iCalendar entries (as a timestamp, a
deadline, a scheduled item, and as a TODO item). Therefore, Org
adds prefixes "TS-", "DL-" "CS-", and "TD-" to the UID during
iCalendar export, depending on what triggered the inclusion of
the entry.  In this way the UID remains unique, but a
synchronization program can still figure out from which entry all
the different instances originate.

New properties for customizing subtree export.
----------------------------------------------

When exporting a subtree by selecting it before calling the
export command, you can now use the properties `EXPORT_TITLE',
`EXPORT_TEXT', and `EXPORT_OPTIONS' to overrule the global
`#+TITLE', `#+TEXT', and `#+OPTIONS' settings.  You can also set
an export file name with `EXPORT_FILE_NAME' that will overrule
the file name derived from the buffer's file name.  As far as the
options are concerned, the global `#+OPTIONS' will still be read,
and only the options you give in the property will be
overwritten.  For example:

  #+OPTIONS: skip:nil
  * Computer Tricks
    :PROPERTIES:
    :EXPORT_FILE_NAME: ct.html
    :EXPORT_TITLE: Steve's collected computer tricks
    :EXPORT_OPTIONS: h:2 toc:nil
    :END:





reply via email to

[Prev in Thread] Current Thread [Next in Thread]