Final changes before release.

This implements executing export commands in the background.
Also, the documentation has been updated.
This commit is contained in:
Carsten Dominik 2008-04-14 07:47:32 +02:00
parent c18f4c2124
commit 7c37f334af
4 changed files with 158 additions and 101 deletions

View file

@ -1,24 +1,36 @@
# -*- mode: org; org-export-publishing-directory: "tmp"; fill-column: 65 -*- # -*- mode: org; org-export-publishing-directory: "tmp"; fill-column: 65 -*-
#+TITLE: Org-mode list of User-visible changes #+TITLE: Org-mode list of user-visible changes
#+AUTHOR: Carsten Dominik #+AUTHOR: Carsten Dominik
#+EMAIL: carsten at orgmode dot org #+EMAIL: carsten at orgmode dot org
#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:{} *:t TeX:t LaTeX:nil #+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:{} *:t TeX:t LaTeX:nil
* Version 6.00 * Version 6.01
This is a new major release, mostly because of structural changes This is a new major release, mostly because of structural changes
in Org. However, there are also monay bug fixes and new features. in Org. However, since this took a while, there is also a long
list of small improvements and some new significant features.
** Incompatible changes
*** The Org distribution has a new structure
In the distribution files as well as in the GIT repository,
the lisp files are now located in a subdirectory "lisp", and
the documentation files are located in a subdirectory "doc".
If you are running Org directly from the unpacked
distribution archive (zip or tar file, or GIT repository),
you need to modify your settings for load-path accordingly.
** Details ** Details
*** The Org distribution has a new structure *** The Org distribution has a new structure
In the distribution files as well as in the git repository, In the distribution files as well as in the GIT repository,
the lisp files are now located in a subdirectory "lisp", and the lisp files are now located in a subdirectory "lisp", and
the documentation files are located in a subdirectory "doc". the documentation files are located in a subdirectory "doc".
If you are running Org directly from the unpacked If you are running Org directly from the unpacked
distribtuion archive (zip or tar file, or git repository), distribution archive (zip or tar file, or GIT repository),
you need to modify your settings for load-path accordingly. you need to modify your settings for load-path accordingly.
*** Loading modules *** Loading modules
@ -26,43 +38,44 @@ in Org. However, there are also monay bug fixes and new features.
Org-mode has now a system for loading modules by simply Org-mode has now a system for loading modules by simply
configuring an option that lists all the modules you want to configuring an option that lists all the modules you want to
use. Customize the variable `org-modules'. That variable use. Customize the variable `org-modules'. That variable
lists modules that are part of the Org-mode core (and in this lists both modules that are part of the Org-mode core (and in
way part of Emacs), as well as contributed packages that will this way part of Emacs), and modules that are contributed
only be available when you have installed them properly (most packages. Contributed modules will only be available when
likely by downloading the distribution and adding you have installed them properly (most likely by downloading
/path/to/orgdir/contrib/lisp to your load path). the distribution and adding /path/to/orgdir/contrib/lisp to
your load path).
*** New archiving mechanism: The Archive Sibling *** New archiving mechanism: The Archive Sibling
There is a new method to archive entries in the current file: There is a new method to archive entries in the current file:
By moving it to a sibling called the /Archive Sibling/. That By moving it to a sibling called the /Archive Sibling/. That
sibling has the heading "Archive" and also carries the sibling has the heading "Archive" and also carries the
ARCHIVE tag. It seems to me that this is a great way to do ARCHIVE tag. This can be a great way to do archiving inside
archiving inside a project, to get parts of the project out a project, to get parts of the project out of the way and to
of the way and to wait with true archiving (moving to another wait with true archiving (moving to another file) until the
file) until the entire project done. Archiving to a sibling entire project is done. Archiving to a sibling keeps much of
keep much of the context like inherited tags and approximate the context, for example inherited tags and approximate tree
tree position in tact, so Org is adding only a single position in tact.
property, the ARCHIVE_TIME.
The key binding for the is "C-c C-x A", and from the agenda The key binding for the is "C-c C-x A", and from the agenda
buffer you can simply use "A". buffer you can simply use "A".
Thanks to Ilya Shlyakhter for this rather clever idea. Thanks to Ilya Shlyakhter for this rather clever idea.
*** Support for Sebastian Rose's Javasript org-info.js. *** Support for Sebastian Rose's JavaScript org-info.js.
This fascinating program allows a completely new viewing This fascinating program allows a completely new viewing
experience for web pages created from Org files, valuable in experience for web pages created from Org files. The same
particular for longish documents. The same document can be document can be viewed in different ways, and switching
viewed in differnet ways, and switching between the views as between the views as well as navigation uses single-key
well as navigation uses single-key commands. commands.
There is an Info-like interface where you can jump through One of the view types is an /Info-like/ interface where you
the sections of the document with the `n' and `p' keys (and can jump through the sections of the document with the `n'
others). And there is a folding interface where you can fold and `p' keys (and others). There is also a /folding/
the document much like you can fold it in org-mode in Emacs, interface where you can fold the document much like you can
and cycle throught the visibility both locally and globally. fold it in org-mode in Emacs, and cycle through the
visibility both locally and globally.
To set this up, all you need to do is to make sure that To set this up, all you need to do is to make sure that
org-infojs.el gets loaded (customize the variable org-modules org-infojs.el gets loaded (customize the variable org-modules
@ -71,30 +84,38 @@ in Org. However, there are also monay bug fixes and new features.
: #+INFOJS_OPT: view:info : #+INFOJS_OPT: view:info
In that line, you can configure the initial view and other In that line, you can configure the initial view and other
settings. Available views are =info= for the info-lke settings. Available views are =info= for the info-like
interface, and =overview=, =content=, and =showall= for the interface, and =overview=, =content=, and =showall= for the
folding interface. See the manual for more details. The folding interface. See the manual for more details. The
JavaScript program is currently being served from JavaScript program is served from
orgmode.org, and your exported HTML files will automatically http://orgmode.org/org-info.js, and your exported HTML files
get it from there. However, you may want to be independent will automatically get it from there. However, you may want
of the existence and stability of orgmode.org and install a to be independent of the existence and stability of
copy locally. Then you need to change the path from which orgmode.org and install a copy locally. Then you need to
the script is loaded, either by using something like change the path from which the script is loaded, either by
using something like
: #+INFOJS_OPT: view:info path:../scripts/org-info.js : #+INFOJS_OPT: view:info path:../scripts/org-info.js
or by configuring the variable =org-infojs-options=. or by configuring the variable =org-infojs-options=.
For details see the documentation provided by Sebastian Rose For details see the documentation provided by Sebastian Rose
together with org-info.js. together with org-info.js.
*** Export of internal links to HTML *** Export improvements
The export of internal links to html now works a lot better. - The export of internal links to HTML now works a lot
Most internal links that work while editing an Org file better. Most internal links that work while editing an Org
inside Emacs will now also work the the corresponding HTML file inside Emacs will now also work the the corresponding
file. HTML file.
- You can run many of the export commands in the background
by using `C-c C-u C-c C-e' in order to start the process.
RIght now this will only work if "emacs" is the right
command to get to your Emacs executable - I hope to make
this less system dependent in the future.
Both these are based on requests by Ilya Shlyakhter.
*** Improvements to clocktable *** Improvements to clocktable
@ -121,31 +142,29 @@ in Org. However, there are also monay bug fixes and new features.
What is more, you can now use the =S-left= and =S-right= What is more, you can now use the =S-left= and =S-right=
keys while the cursor is on the =#+BEGIN: clocktable= line keys to shift the time block around. The cursor needs to
and the the time block around. If the current block is be in the =#+BEGIN: clocktable= line for this to work. If
=today=, =S-left= with switch to yesterday. If the current the current block is =today=, =S-left= with switch to
block is =2008-W14=, =S-right= will switch to the following yesterday. If the current block is =2008-W14=, =S-right=
week. will switch to the following week.
- When the clocktable is collecting from several files, the - When the clocktable is collecting from several files, the
total time for each file will now also be listed. This was total time for each file will now also be listed. This was
a request from Bernt Hansen. a request from Bernt Hansen.
- If you turn on the new clock report mode with the "R" key in
- If you turn on the new clockreport mode with the "R" key in
the agenda, a clock table will be attached to the agenda, the agenda, a clock table will be attached to the agenda,
showing the clock report for the file scope and time showing the clock report for the file scope and time
interval of the agenda view. To turn this on permanently, interval of the agenda view. To turn this on permanently,
configure the variable configure the variable
=org-agenda-start-with-clockreport-mode=. To modify the =org-agenda-start-with-clock report-mode=. To modify the
properties of the table, in particula the =:maxlevel= properties of the table, in particular the =:maxlevel=
depth, configure =org-agenda-clockreport-parameter-plist=. depth, configure =org-agenda-clockreport-parameter-plist=.
*** Support for ISO week dates (ISO 6801) *** Support for ISO week dates (ISO 6801)
Dates in the agenda now show the ISO week an day The agenda now shows the ISO week for the displayed dates, in
specification, in the form =W08 2=, meaning Tuesday of the form =W08= for week 8.
week 2.
The keys =d=, =w=, =m=, and =y= in the agenda view now accept The keys =d=, =w=, =m=, and =y= in the agenda view now accept
prefix arguments. Remember that in the agenda, you can prefix arguments. Remember that in the agenda, you can
@ -192,13 +211,6 @@ in Org. However, there are also monay bug fixes and new features.
during search, so that searching for the word "Nasim" will during search, so that searching for the word "Nasim" will
also match in "Nasim's". also match in "Nasim's".
*** Changes to property API
The INHERIT flag to the function =org-entry-get= can be set
to the symbol =selective=. If this is the case, then the
value of the property will be retrieved using inheritance if
and only if the setting in =org-use-property-inheritance=
selects the property for inheritance.
*** Misc *** Misc
@ -212,11 +224,20 @@ in Org. However, there are also monay bug fixes and new features.
=org-use-property-inheritance=, so that you can now select =org-use-property-inheritance=, so that you can now select
properties for inheritance my name. properties for inheritance my name.
- The INHERIT flag to the function =org-entry-get= can be set
to the symbol =selective=. If this is the case, then the
value of the property will be retrieved using inheritance
if and only if the setting in
=org-use-property-inheritance= selects the property for
inheritance.
- There are now special faces for the date lines in the - There are now special faces for the date lines in the
agenda/timeline buffers, and another special face for days agenda/timeline buffers, and another special face for days
that fall on a weekend: `org-agenda-date' and that fall on a weekend: =org-agenda-date= and
`org-agenda-date-weekend'. =org-agenda-date-weekend=. Both these faces are initially
similar to the =org-agenda-structure= face, but you can
customize them freely.
- When an entry already has a scheduling or deadline time - When an entry already has a scheduling or deadline time
stamp, calling `C-c C-s' or `C-c C-d', respectively, will stamp, calling `C-c C-s' or `C-c C-d', respectively, will
now use that old date as the default, and you can can use now use that old date as the default, and you can can use
@ -227,14 +248,16 @@ in Org. However, there are also monay bug fixes and new features.
This was an omission in the earlier implementation, spotted This was an omission in the earlier implementation, spotted
by Wanrong Lin. Thanks! by Wanrong Lin. Thanks!
- File names in remember templates can be relative, they will - File names in remember templates can be relative, if they
be interpreted relative to =org-directory=. are, they will be interpreted relative to =org-directory=.
- The handling of the cliboard when inserting into remember - The handling of the clipboard when inserting into remember
templates is now much better, and gives more control on what templates is now much better, and gives more control on what
should be inserted with new %-escapes: should be inserted with new %-escapes:
- =%c= - Now always insert to head of the kill ring - =%c= - Now always insert the head of the kill ring, never
the X clipboard.
- =%x= - Insert the content of the X clipboard. This is the - =%x= - Insert the content of the X clipboard. This is the
first non-empty value from the PRIMARY, SECONDARY and first non-empty value from the PRIMARY, SECONDARY and
CLIPBOARD X clipboards. CLIPBOARD X clipboards.
@ -263,7 +286,7 @@ in Org. However, there are also monay bug fixes and new features.
Thanks to James TD Smith for this patch. Thanks to James TD Smith for this patch.
- Entries can be sorted by TODO keyword, and the orde is given - Entries can be sorted by TODO keyword, and the order is given
by the definition sequence of the TODO keywords in the by the definition sequence of the TODO keywords in the
variable =org-todo-keywords=, or in the =#+TODO= line. Use variable =org-todo-keywords=, or in the =#+TODO= line. Use
the "o" key when sorting with =C-c ^=. the "o" key when sorting with =C-c ^=.
@ -271,9 +294,6 @@ in Org. However, there are also monay bug fixes and new features.
Thanks to James TD Smith for this patch. Thanks to James TD Smith for this patch.
* Version 5.23 * Version 5.23
** Overview ** Overview

View file

@ -89,10 +89,11 @@ More information on this page: http://repo.or.cz/w/org-mode.git
** Worg - user-driven knowledge-base about org-mode ** Worg - user-driven knowledge-base about org-mode
[[http://www.legito.net/worg/][Worg]], created by [[http://www.cognition.ens.fr/~guerry/][Bastien Guerry]], is a setup to allow users to jointly [[http://www.legito.net/worg/][Worg]], created by [[http://www.cognition.ens.fr/~guerry/][Bastien Guerry]], is a setup to allow users to jointly
edit a number of Org-mode files containing documentation about Org-mode. edit a number of Org-mode files containing documentation about
This is something like a wiki. If you'd like to contribute your own Org-mode. This is something like a wiki, but with the advantage that
setup, screenshots, tutorials etc, please go to [[http://www.legito.net/worg/][the Worg page]], and start you do not have to be online to modify a file. If you'd like to
from there. contribute your own setup, screenshots, tutorials etc, please go to
[[http://www.legito.net/worg/][the Worg page]], and start from there.
** Tutorials ** Tutorials

View file

@ -513,14 +513,16 @@ documentation.}
@end iftex @end iftex
Add the following lines to your @file{.emacs} file. The last two lines Add the following lines to your @file{.emacs} file. The last two lines
define @emph{global} keys for the commands @command{org-store-link} and define @emph{global} keys for the commands @command{org-store-link},
@command{org-agenda} - please choose suitable keys yourself. @command{org-agenda}, and @command{org-iswitchb} - please choose suitable
keys yourself.
@lisp @lisp
;; The following lines are always needed. Choose your own keys. ;; The following lines are always needed. Choose your own keys.
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
(global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
@end lisp @end lisp
Furthermore, you must activate @code{font-lock-mode} in Org Furthermore, you must activate @code{font-lock-mode} in Org
@ -1506,8 +1508,12 @@ buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
@kbd{C-c |} command (see above under @i{Creation and conversion}. @kbd{C-c |} command (see above under @i{Creation and conversion}.
@c @c
@item M-x org-table-export @item M-x org-table-export
Export the table as a TAB-separated file. Useful for data exchange with, Export the table, by default as a TAB-separated file. Useful for data
for example, spreadsheet or database programs. exchange with, for example, spreadsheet or database programs. The format
used to export the file can be configured in the variable
@code{org-table-export-default-format}. You may also use properties
@code{TABLE_EXPORT_FILE} and @code{TABLE_EXPORT_FORMAT} to specify the file
name and the format for table export in a subtree.
@end table @end table
If you don't like the automatic table editor because it gets in your If you don't like the automatic table editor because it gets in your
@ -4927,6 +4933,10 @@ Remove current file from the list of agenda files.
@item C-, @item C-,
@itemx C-' @itemx C-'
Cycle through agenda file list, visiting one file after the other. Cycle through agenda file list, visiting one file after the other.
@kindex M-x org-iswitchb
@item M-x org-iswitchb
Command to use an @code{iswitchb}-like interface to switch to and between Org
buffers.
@end table @end table
@noindent @noindent
@ -6429,7 +6439,11 @@ produced. @xref{Text interpretation}, for more details.
@item C-c C-e @item C-c C-e
Dispatcher for export and publishing commands. Displays a help-window Dispatcher for export and publishing commands. Displays a help-window
listing the additional key(s) needed to launch an export or publishing listing the additional key(s) needed to launch an export or publishing
command. command. The prefix arg is passed through to the exporter.
@kindex C-u C-u C-c C-e
@item C-u C-u C-c C-e
Try to execute an export/publishing command in the background. This is only
allowed for commands that do not expect to use the output of the exporter.
@end table @end table
@menu @menu

View file

@ -748,7 +748,7 @@ modified) list.")
;;;###autoload ;;;###autoload
(defun org-export (&optional arg) (defun org-export (&optional arg)
"Export dispatcher for Org-mode." "Export dispatcher for Org-mode."
(interactive) (interactive "P")
(let ((help "[t] insert the export option template (let ((help "[t] insert the export option template
\[v] limit export to visible part of outline tree \[v] limit export to visible part of outline tree
@ -772,23 +772,23 @@ modified) list.")
\[X] publish... (project will be prompted for) \[X] publish... (project will be prompted for)
\[A] publish all projects") \[A] publish all projects")
(cmds (cmds
'((?t . org-insert-export-options-template) '((?t org-insert-export-options-template nil)
(?v . org-export-visible) (?v org-export-visible nil)
(?a . org-export-as-ascii) (?a org-export-as-ascii t)
(?h . org-export-as-html) (?h org-export-as-html t)
(?b . org-export-as-html-and-open) (?b org-export-as-html-and-open t)
(?H . org-export-as-html-to-buffer) (?H org-export-as-html-to-buffer nil)
(?R . org-export-region-as-html) (?R org-export-region-as-html t)
(?x . org-export-as-xoxo) (?x org-export-as-xoxo t)
(?l . org-export-as-latex) (?l org-export-as-latex t)
(?L . org-export-as-latex-to-buffer) (?L org-export-as-latex-to-buffer nil)
(?i . org-export-icalendar-this-file) (?i org-export-icalendar-this-file t)
(?I . org-export-icalendar-all-agenda-files) (?I org-export-icalendar-all-agenda-files t)
(?c . org-export-icalendar-combine-agenda-files) (?c org-export-icalendar-combine-agenda-files t)
(?F . org-publish-current-file) (?F org-publish-current-file t)
(?P . org-publish-current-project) (?P org-publish-current-project t)
(?X . org-publish) (?X org-publish t)
(?A . org-publish-all))) (?A org-publish-all t)))
r1 r2 ass) r1 r2 ass)
(save-window-excursion (save-window-excursion
(delete-other-windows) (delete-other-windows)
@ -797,9 +797,31 @@ modified) list.")
(message "Select command: ") (message "Select command: ")
(setq r1 (read-char-exclusive))) (setq r1 (read-char-exclusive)))
(setq r2 (if (< r1 27) (+ r1 96) r1)) (setq r2 (if (< r1 27) (+ r1 96) r1))
(if (setq ass (assq r2 cmds)) (unless (setq ass (assq r2 cmds))
(call-interactively (cdr ass)) (error "No command associated with key %c" r1))
(error "No command associated with key %c" r1)))) (cond
((and (equal arg '(16)) (nth 2 ass))
(let ((p (start-process
(concat "Exporting " (file-name-nondirectory (buffer-file-name)))
"*Org Export Processes*"
"emacs" "-batch"
"-l" user-init-file
"--eval" "(require 'org-exp)"
(buffer-file-name)
(concat "Exporting " (file-name-nondirectory (buffer-file-name)))
"-f" (symbol-name (nth 1 ass)))))
(set-process-sentinel p 'org-export-process-sentinel)
(message "Process \"%s\": started in background" p)))
((equal arg '(16))
(error "Background processing for export command `%c' is not allowed"
(car ass)))
(t
(call-interactively (nth 1 ass))))))
(defun org-export-process-sentinel (process status)
(if (string-match "\n+\\'" status)
(setq status (substring status 0 -1)))
(message "Process \"%s\": %s" process status))
(defconst org-html-entities (defconst org-html-entities
'(("nbsp") '(("nbsp")