Release 4.33

This commit is contained in:
Carsten Dominik 2008-01-31 11:31:51 +01:00
parent 9b9f2f6070
commit 7cde0aa391
8 changed files with 1165 additions and 708 deletions

16
README
View File

@ -1,18 +1,4 @@
The is the distribution of org-mode, version 3.14
The is a distribution of org-mode
The homepage of org-mode is at http://www.astro.uva.nl/~domnik/Tools/org/
INSTALLATION
------------
The installation instructions are in the documentation, org.pdf
FILES IN THE DISTRIBUTION
-------------------------
org.el The Emacs lisp code
org.texi Documentation source file
org.pdf Documentation in PDF format
org Documentation in Info format
orgcard.pdf Refcard, PDF format
orgcard.tex TeX source for refcard.pdf

711
org

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
;; Keywords: hypermedia, outlines
;; Version:
;; $Id: org-publish.el,v 1.61 2006/05/19 12:03:51 dto Exp $
;; $Id: org-publish.el,v 1.64 2006/05/19 19:45:34 dto Exp dto $
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@ -152,11 +152,8 @@
;;; Code:
;; these lines get code for function "eshell/cp" loaded
(require 'eshell)
(require 'esh-maint)
(require 'em-unix)
(require 'org)
(eval-when-compile
(require 'cl))
(defgroup org-publish nil
"Options for publishing a set of Org-mode and related files."
@ -315,60 +312,35 @@ whether file should be published."
(let ((timestamp (org-publish-timestamp-filename filename)))
(set-file-times timestamp)))
;;;; Getting project information out of org-publish-project-alist
;;;; Utilities
(defun org-publish-meta-project-p (element)
"Tell whether an ELEMENT of org-publish-project-alist is a metaproject."
(plist-get (cdr element) :components))
(defun org-publish-get-project (project-name)
"Return project object for project PROJECT-NAME."
(let ((project (assoc project-name org-publish-project-alist)))
(if project
(cdr project)
nil)))
(defun org-publish-get-project-component (project-name component-name)
"Return plist for project component COMPONENT-NAME within project PROJECT-NAME."
(let* ((components (org-publish-get-project project-name))
(c nil)
(plist nil))
(while (setq c (pop components))
(when (and (stringp (car c)) (string= component-name (car c)))
(setq plist (cdr c))))
plist))
(defun org-publish-composite-project-p (element)
"Tell whether an ELEMENT of org-publish-project-alist is composite."
(listp (car (cdr element))))
(defun org-publish-iterate-project-plists (action &optional project-name)
"Call function ACTION for each project component.
ACTION should accept two arguments: the name of the enclosing
project, and the property list associated with the project
component. If PROJECT-NAME is set, iterate only over components
of that project."
(let ((alist (if project-name
`((,project-name ,@(org-publish-get-project project-name)))
(defun org-publish-get-plists (&optional project-name)
"Return a list of property lists for project PROJECT-NAME.
When argument is not given, return all property lists for all projects."
(let ((alist (if project-name
(list (assoc project-name org-publish-project-alist))
org-publish-project-alist))
(project nil))
(project nil)
(plists nil))
(while (setq project (pop alist))
(if (org-publish-composite-project-p project)
;;
;; handle composite project
(let ((components (cdr project))
(c nil))
(while (setq c (pop components))
(let ((plist (cdr c)))
(funcall action (car project) plist))))
;;
;; handle normal project
(let ((plist (cdr project)))
(funcall action (car project) plist))))))
(if (org-publish-meta-project-p project)
;; meta project
(let* ((components (plist-get (cdr project) :components))
(components-plists (mapcar 'org-publish-get-plists components)))
(setq plists (append plists components-plists)))
;; normal project
(let ((p (cdr project)))
(setq p (plist-put p :project-name (car project)))
(setq plists (append plists (list (cdr project)))))))
;;
plists))
(defun org-publish-get-base-files (plist &optional exclude-regexp)
"Return a list of all files in project defined by PLIST.
If EXCLUDE-REGEXP is set, this will be used to filter out
@ -401,22 +373,24 @@ matching filenames."
Filename should contain full path. Returns name of project, or
nil if not found."
(let ((found nil))
(org-publish-iterate-project-plists
(lambda (project-name project-plist)
(let ((files (org-publish-get-base-files project-plist)))
(mapcar
(lambda (plist)
(let ((files (org-publish-get-base-files plist)))
(if (member (expand-file-name filename) files)
(setq found project-name)))))
(setq found (plist-get plist :project-name)))))
(org-publish-get-plists))
found))
(defun org-publish-get-plist-from-filename (filename)
"Return publishing configuration plist for file FILENAME."
(let ((found nil))
(org-publish-iterate-project-plists
(lambda (project-name project-plist)
(let ((files (org-publish-get-base-files project-plist)))
(mapcar
(lambda (plist)
(let ((files (org-publish-get-base-files plist)))
(if (member (expand-file-name filename) files)
(setq found project-plist)))))
(setq found plist))))
(org-publish-get-plists))
found))
@ -427,6 +401,7 @@ nil if not found."
"Publish an org file to HTML.
PLIST is the property list for the given project.
FILENAME is the filename of the org file to be published."
(require 'org)
(let* ((arg (plist-get plist :headline-levels)))
(progn
(find-file filename)
@ -439,11 +414,15 @@ FILENAME is the filename of the org file to be published."
"Publish a file with no transformation of any kind.
PLIST is the property list for the given project.
FILENAME is the filename of the file to be published."
;; make sure eshell/cp code is loaded
(require 'eshell)
(require 'esh-maint)
(require 'em-unix)
(let ((destination (file-name-as-directory (plist-get plist :publishing-directory))))
(eshell/cp filename destination)))
;;;; Publishing files, projects, and indices
;;;; Publishing files, sets of files, and indices
(defun org-publish-file (filename)
@ -458,8 +437,8 @@ FILENAME is the filename of the file to be published."
(org-publish-update-timestamp filename))))
(defun org-publish-project-plist (plist)
"Publish all base files in project defined by PLIST.
(defun org-publish-plist (plist)
"Publish all files in set defined by PLIST.
If :auto-index is set, publish the index too."
(let* ((exclude-regexp (plist-get plist :exclude))
(publishing-function (or (plist-get plist :publishing-function) 'org-publish-org-to-html))
@ -482,7 +461,7 @@ FILENAME is the filename of the file to be published."
(defun org-publish-org-index (plist &optional index-filename)
"Create an index of pages in project PLIST.
"Create an index of pages in set defined by PLIST.
Optionally set the filename of the index with INDEX-FILENAME;
default is 'index.org'."
(let* ((dir (file-name-as-directory (plist-get plist :base-directory)))
@ -505,7 +484,12 @@ default is 'index.org'."
"]]\n")))))
(write-file index-filename)
(kill-buffer (current-buffer)))))
;(defun org-publish-meta-index (meta-plist &optional index-filename)
; "Create an index for a metaproject."
; (let* ((plists (
;;;; Interactive publishing functions
@ -514,11 +498,9 @@ default is 'index.org'."
(defun org-publish (project-name &optional force)
"Publish the project PROJECT-NAME."
(interactive "sProject name: \nP")
(let ((org-publish-use-timestamps-flag (if force nil t)))
(org-publish-iterate-project-plists
(lambda (ignore project-plist)
(org-publish-project-plist project-plist))
project-name)))
(let ((org-publish-use-timestamps-flag (if force nil t))
(plists (org-publish-get-plists project-name)))
(mapcar 'org-publish-plist plists)))
;;;###autoload
@ -549,11 +531,9 @@ With prefix argument, force publish the file."
With prefix argument, force publish all files."
(interactive "P")
(let ((org-publish-use-timestamps-flag
(if force nil t)))
(org-publish-iterate-project-plists
(lambda (project-name project-plist)
(org-publish-project-plist project-plist)))))
(if force nil t))
(plists (org-publish-get-plists)))
(mapcar 'org-publish-plist plists)))

655
org.el

File diff suppressed because it is too large Load Diff

BIN
org.pdf

Binary file not shown.

346
org.texi
View File

@ -5,7 +5,7 @@
@c @setfilename ../info/org
@settitle Org Mode Manual
@set VERSION 4.30
@set VERSION 4.33
@set DATE May 2006
@dircategory Emacs
@ -85,7 +85,7 @@ Software Foundation raise funds for GNU development.''
* Tags:: Tagging headlines and matching sets of tags
* Agenda views:: Collecting information into views
* Exporting:: Sharing and publishing of notes
* Publishing::
* Publishing:: Create a web site of linked Org-mode files
* Miscellaneous:: All the rest which did not fit elsewhere
* Index:: The fast road to specific information
* Key Index:: Key bindings and where they are described
@ -209,9 +209,9 @@ Configuration
* Project alist:: The central configuration variable
* File sources and destinations:: From here to there
* Selecting files:: What files are part of the project?
* Publishing action::
* Publishing action:: Setting the function doing the publishing
* Publishing options:: Tweaking HTML export
* Links:: Linking between files of a project
* Publishing links:: Which links keep working after publishing?
* Project page index:: Publishing a list of project files
Sample configuration
@ -555,7 +555,7 @@ creation of a new headline, use a prefix arg, or first press @key{RET}
to get to the beginning of the next line. When this command is used in
the middle of a line, the line is split and the rest of the line becomes
the new headline. If the command is used at the beginning of a
headline, the new headline is created before the current line. It at
headline, the new headline is created before the current line. If at
the beginning of any other line, the content of that line is made the
new heading.
@kindex M-S-@key{RET}
@ -658,7 +658,7 @@ If the match is in a headline, the headline is made visible. If the
match is in the body of an entry, headline and body are made visible.
In order to provide minimal context, also the full hierarchy of
headlines above the match is shown, as well as the headline following
the match. Each match is also highlighted, the highlights disappear
the match. Each match is also highlighted; the highlights disappear
when the buffer is changed with an editing command.
@end table
@noindent
@ -676,7 +676,7 @@ For example:
@noindent will define the key @kbd{C-c a f} as a shortcut for creating
a sparse tree matching the string @samp{FIXME}.
Other commands are using sparse trees as well. For example @kbd{C-c
Other commands use sparse trees as well. For example @kbd{C-c
C-v} creates a sparse TODO tree (@pxref{TODO basics}).
@kindex C-c C-x v
@ -699,7 +699,7 @@ part of the document and print the resulting file.
Headlines define both the structure of the Org-mode file, and also lists
(for example, TODO items (@pxref{TODO items}) should be created using
headline levels). However, when taking notes, the plain text is
headline levels). When taking notes, however, the plain text is
sometimes easier to read with hand-formatted lists. Org-mode supports
editing such lists, and the HTML exporter (@pxref{Exporting}) does
parse and format them.
@ -710,7 +710,7 @@ bullet, lines must be indented or they will be seen as top-level
headlines. Also, when you are hiding leading stars to get a clean
outline view, plain list items starting with a star are visually
indistinguishable from true headlines. In short: even though @samp{*}
is supported, it may be better to not use it for plain list items} as
is supported, it may be better not to use it for plain list items} as
bullets. Ordered list items start with @samp{1.} or @samp{1)}. Items
belonging to the same list must have the same indentation on the first
line. In particular, if an ordered list reaches number @samp{10.}, then
@ -735,18 +735,18 @@ But in the end, not individual scenes matter but the film as a whole.
@end example
Org-mode supports these lists by tuning filling and wrapping commands
to correctly deal with them.
to deal with them correctly.
@cindex checkboxes
Every item in a plain list can be made a checkbox by starting it with
the string @samp{[_]}. The checkbox status can conveniently be toggled
the string @samp{[ ]}. The checkbox status can conveniently be toggled
with @kbd{C-c C-c}.
@example
* Shopping list
- [_] Milk
- [X] Butter
- [_] bred
* Stupid mistakes when distributing a new version
- [ ] update also Emacs CVS
- [X] forget to update index.html on the website
- [X] leaving a `(debug)' form in the code
@end example
The following commands act on items when the cursor is in the first line
@ -757,8 +757,8 @@ of an item (the line with the bullet or number).
@item @key{TAB}
Items can be folded just like headline levels if you set the variable
@code{org-cycle-include-plain-lists}. The level of an item is then
given by the indentation of the bullet/number. However, items are
always subordinate to real headlines, the hierarchies remain
given by the indentation of the bullet/number. Items are always
subordinate to real headlines, however; the hierarchies remain
completely separated.
@kindex M-@key{RET}
@item M-@key{RET}
@ -769,8 +769,15 @@ item. If this command is executed in the @emph{whitespace before a bullet or
number}, the new item is created @emph{before} the current item. If the
command is executed in the white space before the text that is part of
an item but does not contain the bullet, a bullet is added to the
current line. If the current item has a checkbox, so will the newly
created item.
current line.
@kindex M-S-@key{RET}
@item M-S-@key{RET}
Insert a new item with a checkbox.
@kindex S-@key{up}
@kindex S-@key{down}
@item S-@key{up}
@itemx S-@key{down}
Jump to the previous/next item in the current list.
@kindex M-S-@key{up}
@kindex M-S-@key{down}
@item M-S-@key{up}
@ -864,7 +871,7 @@ If not, lines are split at whitespace into fields. You can use a prefix
argument to indicate the minimum number of consecutive spaces required
to identify a field separator (default: just one).@*
If there is no active region, this command creates an empty Org-mode
table. However, it's easier to just start typing, like
table. But it's easier just to start typing, like
@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
@tsubheading{Re-aligning and field motion}
@ -1048,7 +1055,7 @@ it off with
(setq org-enable-table-editor nil)
@end lisp
@noindent The only table command which then still works is
@noindent Then the only table command that still works is
@kbd{C-c C-c} to do a manual re-align.
@node Narrow columns, Table calculations, Built-in table editor, Tables
@ -1167,8 +1174,8 @@ described below, see @ref{Advanced features}.
A formula can contain an optional mode string after a semicolon. This
string consists of flags to influence calc's modes@footnote{By
default, Org-mode uses the standard calc modes (precision 12, angular
units degrees, fraction and symbolic modes off). However, the display
format has been changed to @code{(float 5)} to keep tables compact.
units degrees, fraction and symbolic modes off). The display format,
however, has been changed to @code{(float 5)} to keep tables compact.
The default settings can be configured using the variable
@code{org-calc-default-modes}.} during execution, e.g. @samp{p20} to
switch the internal precision to 20 digits, @samp{n3}, @samp{s3},
@ -1194,13 +1201,13 @@ taylor($3,x=7,2) @r{taylor series of $3, at x=7, second degree}
@node Lisp formulas, Column formulas, Formula syntax, Table calculations
@subsection Emacs Lisp forms as formulas
@cindex Lisp forms, as table fomulas
@cindex Lisp forms, as table formulas
It is also possible to write a formula in Emacs lisp, this can be useful
It is also possible to write a formula in Emacs lisp; this can be useful
for string manipulation and control structures. If a formula starts
with a single quote followed by an opening parenthesis, then it is
evaluated as a lisp form. The evaluation should return either a string
or a number. Just like with @file{calc} formulas, you can provide a
or a number. Just as with @file{calc} formulas, you can provide a
format specifier after a semicolon. A few examples:
@example
@ -1280,7 +1287,7 @@ features:
@noindent @b{Important}: Please note that for these special tables,
recalculating the table with @kbd{C-u C-c *} will only affect rows
which are marked @samp{#} or @samp{*}, and named fields. The column
that are marked @samp{#} or @samp{*}, and named fields. The column
formulas are not applied in rows with empty first field.
@cindex marking characters, tables
@ -1377,7 +1384,7 @@ Detailed information will be displayed.
@node Appetizer, , Editing/debugging formulas, Table calculations
@subsection Appetizer
Finally, just to wet your appetite on what can be done with the fantastic
Finally, just to whet your appetite on what can be done with the fantastic
@file{calc} package, here is a table that computes the Taylor series
for a couple of functions (homework: try that with Excel :-)
@ -1403,7 +1410,7 @@ for a couple of functions (homework: try that with Excel :-)
@cindex minor mode for tables
If you like the intuitive way the Org-mode table editor works, you
might want to use it also in other modes like text-mode or mail-mode.
might also want to use it in other modes like text-mode or mail-mode.
The minor mode Orgtbl-mode makes this possible. You can always toggle
the mode with @kbd{M-x orgtbl-mode}. To turn it on by default, for
example in mail mode, use
@ -1447,7 +1454,7 @@ possible.
@cindex hyperlinks
Just like HTML, Org-mode provides links inside a file, and external
links to other files, Usenet articles, emails and much more.
links to other files, Usenet articles, emails, and much more.
@menu
* Link format:: How links in Org-mode are formatted
@ -1465,7 +1472,7 @@ links to other files, Usenet articles, emails and much more.
@cindex format, of links
Org-mode will recognize plain URL-like links and activate them as
clickable links. However, the general link format looks like this:
clickable links. The general link format, however, looks like this:
@example
[[link][description]] @r{or alternatively} [[link]]
@ -1485,7 +1492,7 @@ If you place the cursor at the beginning or just behind the end of the
displayed text and press @key{BACKSPACE}, you will remove the
(invisible) bracket at that location. This makes the link incomplete
and the internals are again displayed as plain text. Inserting the
missing bracket does hide the link internals again. To show the
missing bracket hides the link internals again. To show the
internal structure of all links, use the menu entry
@code{Org->Hyperlinks->Literal links}.
@ -1500,16 +1507,18 @@ the current file. Links such as @samp{[[My Target]]} or @samp{[[My
Target][Find my target]]} lead to a text search in the current file.
The link can be followed with @kbd{C-c C-o} when the cursor is on the
link, or with a mouse click (@pxref{Handling links}). The preferred
match for such a link is a dedicated target: The same string in double
angular brackets. Targets may be located anywhere, often it is
convenient to put them into a comment line, for example
match for such a link is a dedicated target: the same string in double
angular brackets. Targets may be located anywhere; often it is
convenient to put them into a comment line. For example
@example
# <<My Target>>
@end example
@noindent In HTML export (@pxref{HTML export}), such targets will become
named anchors for direct access through @samp{http} links.
named anchors for direct access through @samp{http} links@footnote{Note
that text before the first headline will never be exported, so the first
such target must be after the first headline.}.
If no dedicated target exists, Org-mode will search for the words in the
link. In the above example the search would be for @samp{my target}.
@ -1580,30 +1589,35 @@ text search such that @samp{CamelCaseLink} is equivalent to
@cindex MH-E links
@cindex USENET links
@cindex SHELL links
@cindex Info links
@cindex elisp links
Org-mode supports links to files, websites, Usenet and email messages;
and BBDB database entries. External links are URL-like locators. The
following list shows examples for each link type.
Org-mode supports links to files, websites, Usenet and email messages,
and BBDB database entries. External links are URL-like locators. They
start with a short identifying string followed by a colon. There can be
no space after the colon. The following list shows examples for each
link type.
@example
http://www.astro.uva.nl/~dominik @r{on the web}
file:/home/dominik/images/jupiter.jpg @r{file, absolute path}
file:papers/last.pdf @r{file, relative path}
news:comp.emacs @r{Usenet link}
mailto:adent@@galaxy.net @r{Mail link}
vm:folder @r{VM folder link}
vm:folder#id @r{VM message link}
vm://myself@@some.where.org/folder#id @r{VM on remote machine}
wl:folder @r{WANDERLUST folder link}
wl:folder#id @r{WANDERLUST message link}
mhe:folder @r{MH-E folder link}
mhe:folder#id @r{MH-E message link}
rmail:folder @r{RMAIL folder link}
rmail:folder#id @r{RMAIL message link}
gnus:group @r{GNUS group link}
gnus:group#id @r{GNUS article link}
bbdb:Richard Stallman @r{BBDB link}
shell:ls *.org @r{A shell command}
http://www.astro.uva.nl/~dominik @r{on the web}
file:/home/dominik/images/jupiter.jpg @r{file, absolute path}
file:papers/last.pdf @r{file, relative path}
news:comp.emacs @r{Usenet link}
mailto:adent@@galaxy.net @r{Mail link}
vm:folder @r{VM folder link}
vm:folder#id @r{VM message link}
vm://myself@@some.where.org/folder#id @r{VM on remote machine}
wl:folder @r{WANDERLUST folder link}
wl:folder#id @r{WANDERLUST message link}
mhe:folder @r{MH-E folder link}
mhe:folder#id @r{MH-E message link}
rmail:folder @r{RMAIL folder link}
rmail:folder#id @r{RMAIL message link}
gnus:group @r{GNUS group link}
gnus:group#id @r{GNUS article link}
bbdb:Richard Stallman @r{BBDB link}
shell:ls *.org @r{A shell command}
elisp:(find-file-other-frame "Elisp.org") @r{An elisp form to evaluate}
@end example
A link should be enclosed in double brackets and may contain a
@ -1618,7 +1632,7 @@ format}), for example:
@cindex plain text external links
Org-mode also finds external links in the normal text and activates them
as links. If spaces must be part of the link (for example in
@samp{bbdb:Richard Stallman}) or to remove ambiguities about the end of
@samp{bbdb:Richard Stallman}), or you need to remove ambiguities about the end of
the link, enclose them in angular brackets.
@node Handling links, Search options, External links, Hyperlinks
@ -1637,7 +1651,7 @@ stored for later insertion into an Org-mode buffer (see below). For
Org-mode files, if there is a @samp{<<target>>} at the cursor, the link
points to the target. Otherwise it points to the current headline. For
VM, RMAIL, WANDERLUST, MH-E, GNUS and BBDB buffers, the link will
indicate to the current article/entry. For W3 and W3M buffers, the link
indicate the current article/entry. For W3 and W3M buffers, the link
goes to the current URL. For any other files, the link will point to
the file, with a search string (@pxref{Search options}) pointing to the
contents of the current line. If there is an active region, the
@ -1680,7 +1694,7 @@ is used, if possible with @samp{~/} for your home directory. You can
force an absolute path with two @kbd{C-u} prefixes.
@item C-c C-l @r{with cursor on existing link}
When the cursor is on an existing link, @kbd{C-c C-l} allows to edit the
When the cursor is on an existing link, @kbd{C-c C-l} allows you to edit the
link and description parts of the link.
@cindex following links
@ -1690,7 +1704,7 @@ Open link at point. This will launch a web browser for URLs (using
@command{browse-url-at-point}), run vm/mh-e/wanderlust/rmail/gnus/bbdb
for the corresponding links, and execute the command in a shell link.
When the cursor is on an internal link, this commands runs the
corresponding search. When the cursor is on a TAGS list in a headline,
corresponding search. When the cursor is on a TAG list in a headline,
it creates the corresponding TAGS view. If the cursor is on a time
stamp, it compiles the agenda for that date. Furthermore, it will visit
text files in @samp{file:} links with Emacs and select a suitable
@ -1703,7 +1717,7 @@ override the default application and visit the file with Emacs, use a
@kindex mouse-1
@item mouse-2
@itemx mouse-1
On links, @kbd{mouse-2} will open the link just like @kbd{C-c C-o}
On links, @kbd{mouse-2} will open the link just as @kbd{C-c C-o}
would. Under Emacs 22, also @kbd{mouse-1} will follow a link.
@kindex mouse-3
@ -1757,7 +1771,7 @@ Jump to line 255.
Search for a link target @samp{<<My Target>>}, or do a text search for
@samp{my target}, similar to the search in internal links, see
@ref{Internal links}. In HTML export (@pxref{HTML export}), such a file
link will become an html reference to the corresponding named anchor in
link will become an HTML reference to the corresponding named anchor in
the linked file.
@item *My Target
In an Org-mode file, restrict search to headlines.
@ -1772,7 +1786,7 @@ sparse tree with the matches.
As a degenerate case, a file link with an empty file name can be used
to search the current file. For example, @code{<file:::find me>} does
a search for @samp{find me} in the current file, just like
a search for @samp{find me} in the current file, just as
@samp{[[find me]]} would.
@node Custom searches, Remember, Search options, Hyperlinks
@ -1808,7 +1822,7 @@ store quick notes with little interruption of your work flow. See
@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
information. The notes produced by @emph{Remember} can be stored in
different ways, and Org-mode files are a good target. Org-mode allows
to file away notes either to a default file, or directly to the correct
you to file away notes either to a default file, or directly to the correct
location in your Org-mode outline tree. The following customization
will tell @emph{Remember} to use org files as target, and to create
annotations compatible with Org-mode links.
@ -1938,6 +1952,12 @@ Rotate the TODO state of the current item between
The same rotation can also be done ``remotely'' from the timeline and
agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
@kindex S-@key{right}
@kindex S-@key{left}
@item S-@key{right}
@itemx S-@key{left}
Select the following/preceding TODO state, similar to cycling. Mostly
useful if more than two TODO states are possible (@pxref{TODO extensions}).
@kindex C-c C-v
@cindex sparse tree, for TODO
@item C-c C-v
@ -2012,7 +2032,7 @@ of working on an item, for example:
@end lisp
@cindex completion, of TODO keywords
Changing these variables becomes only effective in a new Emacs session.
Changing these variables only becomes effective in a new Emacs session.
With this setup, the command @kbd{C-c C-t} will cycle an entry from
TODO to FEEDBACK, then to VERIFY, and finally to DONE. You may also
use a prefix argument to quickly select a specific state. For example
@ -2081,7 +2101,7 @@ anywhere in the file:
@cindex DONE, final TODO keyword
Remember that the last keyword must always mean that the item is DONE
(you may use a different word, though). Also note that in each file,
(although you may use a different word). Also note that in each file,
only one of the two aspects of TODO keywords can be used. After
changing one of these lines, use @kbd{C-c C-c} with the cursor still
in the line to make the changes known to Org-mode@footnote{Org-mode
@ -2122,7 +2142,7 @@ difference only in the agenda (@pxref{Weekly/Daily agenda}).
@table @kbd
@kindex @kbd{C-c ,}
@item @kbd{C-c ,}
Set the priority of the current item. The command prompts for a
Set the priority of the current headline. The command prompts for a
priority character @samp{A}, @samp{B} or @samp{C}. When you press
@key{SPC} instead, the priority cookie is removed from the headline.
The priorities can also be changed ``remotely'' from the timeline and
@ -2132,10 +2152,9 @@ agenda buffer with the @kbd{,} command (@pxref{Agenda commands}).
@kindex S-@key{down}
@item S-@key{up}
@itemx S-@key{down}
Increase/decrease priority of current item. Note that these keys are
also used to modify time stamps (@pxref{Creating timestamps}).
Furthermore, these keys are also used by CUA-mode
(@pxref{Conflicts}).
Increase/decrease priority of current headline. Note that these keys
are also used to modify time stamps (@pxref{Creating timestamps}).
Furthermore, these keys are also used by CUA-mode (@pxref{Conflicts}).
@end table
@node Timestamps, Tags, TODO items, Top
@ -2165,15 +2184,15 @@ of an org-tree entry. Its presence allows entries to be shown on specific
dates in the agenda (@pxref{Weekly/Daily agenda}). We distinguish:
@table @var
@item Plain time stamp
@cindex timestamp
@item TIMESTAMP
A simple time stamp just assigns a date/time to an item. This is just
like writing down an appointment in a paper agenda, or like writing down
an event in a diary, when you want to take not of when something
happened. In the timeline and agenda displays, the headline of an entry
associated with a plain time stamp will be shown exactly on that date.
@item TIMERANGE
@item Time stamp range
@cindex timerange
Two time stamps connected by @samp{--} denote a time range. The
headline will be shown on the first and last day of the range, and on
@ -2185,7 +2204,7 @@ example:
<2004-08-23 Mon>--<2004-08-26 Thu>
@end example
@item SCHEDULED
@item Time stamp with SCHEDULED keyword
@cindex SCHEDULED keyword
If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you
are planning to start working on that task on the given date. So this is
@ -2200,7 +2219,7 @@ automatically be forwarded until completed.
SCHEDULED: <2004-12-25 Sat>
@end example
@item DEADLINE
@item Time stamp with DEADLINE keyword
@cindex DEADLINE keyword
If a time stamp is preceded by the word @samp{DEADLINE:}, the task
(most likely a TODO item) is supposed to be finished on that date, and
@ -2214,6 +2233,12 @@ continuing until the entry is marked DONE. An example:
The editor in charge is <bbdb:Ford Prefect>
DEADLINE: <2004-02-29 Sun>
@end example
@item Time stamp with CLOSED keyword
@cindex CLOSED keyword
When @code{org-log-done} is non-nil, Org-mode will automatically insert
a special time stamp each time a TODO entry is marked done
(@pxref{Progress logging}). This time stamp is enclosed in square
brackets instead of angular brackets.
@end table
@node Creating timestamps, , Time stamps, Timestamps
@ -2260,7 +2285,10 @@ Access the agenda for the date given by the time stamp at point
@kindex C-c C-d
@item C-c C-d
Insert @samp{DEADLINE} keyword along with a stamp.
Insert @samp{DEADLINE} keyword along with a stamp. The insertion will
happen in the line directly following the headline.
@c FIXME Any CLOSED timestamp will be removed.????????
@kindex C-c C-w
@cindex sparse tree, for deadlines
@item C-c C-w
@ -2272,7 +2300,9 @@ all deadlines due tomorrow.
@kindex C-c C-s
@item C-c C-s
Insert @samp{SCHEDULED} keyword along with a stamp.
Insert @samp{SCHEDULED} keyword along with a stamp. The insertion will
happen in the line directly following the headline. Any CLOSED
timestamp will be removed.
@kindex S-@key{left}
@kindex S-@key{right}
@ -2350,9 +2380,9 @@ Choose date in calendar (only if nothing typed into minibuffer).
@cindex matching, tags
@cindex sparse tree, tag based
If you wish to implement a system to cross-correlate information, an
excellent way is to assign @i{tags} to headline. Org-mode has
extensive support for using tags.
If you wish to implement a system of labels and contexts for
cross-correlating information, an excellent way is to assign @i{tags} to
headlines. Org-mode has extensive support for using tags.
Every headline can contain a list of tags, at the end of the headline.
Tags are normal words containing letters, numbers, @samp{_}, and
@ -2384,8 +2414,8 @@ the final heading will have the tags @samp{:WORK:}, @samp{:BOSS:},
@samp{:NOTES:}, and @samp{:ACTION:}. When executing tag searches and
Org-mode finds that a certain headline matches the search criterion, it
will not check any sublevel headline, assuming that these likely also
match, and that the list of matches can become very long. However, this
may not be what you want, and you can influence inheritance and
match, and that the list of matches can become very long. This may
not be what you want, however, and you can influence inheritance and
searching using the variables @code{org-use-tag-inheritance} and
@code{org-tags-match-list-sublevels}.
@ -2394,25 +2424,75 @@ searching using the variables @code{org-use-tag-inheritance} and
@cindex setting tags
@kindex M-@key{TAB}
As Org-mode deals with plain text files, tags can simply be typed into
the buffer. After a colon, @kbd{M-@key{TAB}} offers completion on all
tags being used in the current buffer. There is also a special command
for inserting tags:
Tags can simply be typed into the buffer at the end of a headline.
After a colon, @kbd{M-@key{TAB}} offers completion on tags. There is
also a special command for inserting tags:
@table @kbd
@kindex C-c C-c
@item C-c C-c
@cindex completion, of tags
Enter new tags for the current headline. The minibuffer will prompt for
a list of tags and offer completion with respect to all other tags used
in the current buffer. Several tags, separated by colons, may be
specified at the prompt. After pressing @key{RET}, the tags will be
inserted and aligned to @code{org-tags-column}. When called with a
@kbd{C-u} prefix, all tags in the current buffer will be aligned to that
column, just to make things look nice. TAGS are automatically realigned
after promotion, demotion, and TODO state changes (@pxref{TODO basics}).
Enter new tags for the current headline. Org-mode will either offer
completion or a special single-key interface for setting tags, see
below. After pressing @key{RET}, the tags will be inserted and aligned
to @code{org-tags-column}. When called with a @kbd{C-u} prefix, all
tags in the current buffer will be aligned to that column, just to make
things look nice. TAGS are automatically realigned after promotion,
demotion, and TODO state changes (@pxref{TODO basics}).
@end table
Org will support tag insertion based on a @emph{list of tags}. By
default this list is constructed dynamically, containing all tags
currently used in the buffer. You may also globally specify a hard list
of tags with the variable @code{org-tag-alist}. Finally you can set
the allowed tags for a given file with lines like
@example
#+TAGS: @@WORK @@HOME @@TENNISCLUB
#+TAGS: Laptop Car PC Sailboat
@end example
The default method Org-mode uses to support setting tags is completion.
However, it also implements a much better method: @emph{fast tag
selection}. This method allows to select and deselect tags with a
single key per tag. To function efficiently, you need to assign unique
keys to all tags. This can be done globally with
@lisp
(setq org-tag-alist '(("@@WORK" . ?w) ("@@HOME" . ?h) ("Laptop" . ?l)))
@end lisp
@noindent or on a per-file basis with
@example
#+TAGS: @@WORK(w) @@HOME(h) @@TENNISCLUB(t)
#+TAGS: Laptop(l) Car(c) PC(p) Sailboat(s)
@end example
@noindent Don't forget to press @kbd{C-c C-c} with the cursor in one of
these lines to activate any changes.
If selection keys have been configured, pressing @kbd{C-c C-c} will
automatically present you with a special interface, listing inherited
tags, the tags of the current headline, and a list of all legal tags
with corresponding keys. Pressing keys for the tags will add or remove
them from the list of tags in the current line. @key{SPC} clears all
tags for this line, @kbd{RET} accepts the modified set, and @kbd{C-g}
aborts without installing changes. This method lets you assing tags to
a headline with very few keys. With the above setup, you could clear
the current tags and set @samp{@@HOME}, @samp{Laptop} and @samp{PC} tags
with just the following keys: @kbd{C-c C-c @key{SPC} h l p @key{RET}}.
What if you have globally defined your preferred set of tags using the
variable @code{org-tag-alist}, but would like to use a dynamic tag list
in a specific file? Just add and empty TAGS option line to that file:
@example
#+TAGS:
@end example
@node Tag searches, , Setting tags, Tags
@section Tag searches
@cindex tag searches
@ -2984,7 +3064,7 @@ on my keyboard.
@item i
Insert a new entry into the diary. Prompts for the type of entry
(day, weekly, monthly, yearly, anniversary, cyclic) and creates a new
entry in the diary, just like @kbd{i d} etc. would do in the calendar.
entry in the diary, just as @kbd{i d} etc. would do in the calendar.
The date is taken from the cursor position.
@tsubheading{Calendar commands}
@ -3038,7 +3118,7 @@ visit org files will not be removed.
Org-mode documents can be exported into a variety of other formats. For
printing and sharing of notes, ASCII export produces a readable and
simple version of an Org-mode file. HTML export allows to publish a
simple version of an Org-mode file. HTML export allows you to publish a
notes file on the web, while the XOXO format provides a solid base for
exchange with a broad range of other applications. To incorporate
entries with associated times like deadlines or appointments into a
@ -3131,13 +3211,26 @@ at a different level, specify it with a prefix argument. For example,
creates two levels of headings and does the rest as items.
If you want to include HTML tags which should be interpreted as such,
mark them with a @samp{@@} like in @samp{@@<b>bold text@@</b>}.
mark them with @samp{@@} as in @samp{@@<b>bold text@@</b>}.
Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
@samp{&gt;} in HTML export.
@cindex links, in HTML export
@cindex internal links, in HTML export
@cindex external links, in HTML export
Internal links (@pxref{Internal links}) will continue to work in HTML
files only if they match a dedicated @samp{<<target>>}. Automatic links
created by radio targets (@pxref{Radio targets}) will also work in the
HTML file. Links to external files will still work if the HTML file is
in the same directory as the Org-mode file. Links to other @file{.org}
files will be translated into HTML links under the assumption that an
HTML version also exists of the linked file. For information related to
linking files while publishing them to a publishing directory see
@ref{Publishing links}.
You can also give style information for the exported file. The HTML
exporter asigns the following CSS classes to appropriate parts of the
document - your style specifications may change these.
exporter assigns the following CSS classes to appropriate parts of the
document - your style specifications may change these:
@example
.todo @r{TODO keywords}
.done @r{the DONE keyword}
@ -3147,9 +3240,7 @@ document - your style specifications may change these.
.target @r{target for links}
@end example
The
default specification can be configured through the option
The default style specification can be configured through the option
@code{org-export-html-style}. If you want to use a file-local style,
you may use file variables, best wrapped into a COMMENT section at the
end of the outline tree. For example:
@ -3370,7 +3461,7 @@ you can:
@cindex section-numbers
@cindex table of contents
@cindex linebreak preservation
@cindex quoted html tags
@cindex quoted HTML tags
@cindex fixed-width sections
@cindex tables
@cindex @TeX{}-like syntax for sub- and superscripts
@ -3381,7 +3472,7 @@ H: @r{set the number of headline levels for export}
num: @r{turn on/off section-numbers}
toc: @r{turn on/off table of contents}
\n: @r{turn on/off linebreak-preservation}
@@: @r{turn on/off quoted html tags}
@@: @r{turn on/off quoted HTML tags}
:: @r{turn on/off fixed-width sections}
|: @r{turn on/off tables}
^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts.}
@ -3396,7 +3487,7 @@ Org-mode includes@footnote{@file{org-publish.el} is not yet part of
emacs, so if you are using @file{org.el} as it comes with Emacs, you
need to download this file separately. Also make sure org.el is at
least version 4.27.} a publishing management system
that allows you to configure automatic html conversion of
that allows you to configure automatic HTML conversion of
@emph{projects} composed of interlinked org files. This system is
called @emph{org-publish}. You can also configure org-publish to
automatically upload your exported HTML pages and related attachments,
@ -3421,9 +3512,9 @@ and many other properties of a project.
* Project alist:: The central configuration variable
* File sources and destinations:: From here to there
* Selecting files:: What files are part of the project?
* Publishing action::
* Publishing action:: Setting the function doing the publishing
* Publishing options:: Tweaking HTML export
* Links:: Linking between files of a project
* Publishing links:: Which links keep working after publishing?
* Project page index:: Publishing a list of project files
@end menu
@ -3513,7 +3604,7 @@ You can write your own publishing function, but @code{org-publish}
provides one for attachments (files that only need to be copied):
@code{org-publish-attachment}.
@node Publishing options, Links, Publishing action, Configuration
@node Publishing options, Publishing links, Publishing action, Configuration
@subsection Options for the HTML exporter
The property list can be used to set many export options for the HTML
@ -3551,10 +3642,10 @@ respective variable for details.
When a property is given a value in org-publish-project-alist, its
setting overrides the value of the corresponding user variable (if any)
during publishing. However, options set within a file (@pxref{Export
options}) override everything.
during publishing. options set within a file (@pxref{Export
options}), however, override everything.
@node Links, Project page index, Publishing options, Configuration
@node Publishing links, Project page index, Publishing options, Configuration
@subsection Links between published files
To create a link from one Org-mode file to another, you would use
@ -3569,7 +3660,7 @@ careful with relative pathnames, and provided you have also configured
org-publish to upload the related files, these links will work
too. @ref{Complex example} for an example of this usage.
@node Project page index, , Links, Configuration
@node Project page index, , Publishing links, Configuration
@subsection Project page index
The following properties may be used to control publishing of an
@ -3824,6 +3915,10 @@ oddeven @r{allow all outline levels}
These lines that the TODO keywords and their interpretation in the
current file. The corresponding variables are @code{org-todo-keywords}
and @code{org-todo-interpretation}.
@item #+TAGS: TAG1(c1) TAG2(c2)
These lines (several such lines are allowed) specify the legal tags in
this file, and (potionally) the corresponding @emph{fast tag selection}
keys. The corresponding variable is @code{org-tag-alist}.
@item #+CATEGORY:
This line sets the category for the agenda file. The category applies
for all subsequent lines until the next @samp{#+CATEGORY} line, or the
@ -3843,7 +3938,7 @@ The key @kbd{C-c C-c} has many purposes in org-mode, which are all
mentioned scattered throughout this manual. One specific function of
this key is to add @emph{tags} to a headline (@pxref{Tags}). In many
other circumstances it means something like @emph{Hey Org-mode, look
here and update according to what you see here}. Here is a summary what
here and update according to what you see here}. Here is a summary of what
this means in different contexts.
@itemize @minus
@ -4094,7 +4189,7 @@ Would I let you down like that? If you must, you can do this
org-link-format "<%s>")
@end lisp
@item @b{When I am executing shell links I always get a
@item @b{When I am executing shell/elisp links I always get a
confirmation prompt and need to type @kbd{yes @key{RET}}, that's 4 key
presses! Can I get rid of this?}@*
@c
@ -4105,10 +4200,11 @@ potentially dangerous commands. For example, imagine a link
@samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this
command would look like @samp{Google Search}, but really it would remove
your home directory. If you wish, you can make it easier to respond to
the query by setting @code{org-confirm-shell-links} to @code{y-or-n-p}.
Then a single @kbd{y} keypress will be enough to confirm shell links.
It is also possible to turn off this check entirely, but I do not
recommend to do this. Be warned.
the query by setting @code{org-confirm-shell-link-function} and/or
@code{org-confirm-elisp-link-function} to @code{y-or-n-p}. Then a
single @kbd{y} keypress will be enough to confirm those links. It is
also possible to turn off this check entirely, but I do not recommend to
do this. Be warned.
@item @b{All these stars are driving me mad, I just find the Emacs
outlines unreadable. Can't you just put white space and a single star as a
@ -4213,7 +4309,7 @@ You may also select specific files with
If you now launch the calendar and press @kbd{d} to display a diary, the
headlines of entries containing a timestamp, date range, schedule, or
deadline referring to the selected date will be listed. Just like in
deadline referring to the selected date will be listed. Just like
Org-mode's agenda view, the diary for @emph{today} contains additional
entries for overdue deadlines and scheduled items. See also the
documentation of the @command{org-diary} function. Under XEmacs, it is
@ -4253,14 +4349,14 @@ This package implements extended mouse functionality for Org-mode. It
allows you to cycle visibility and to edit the document structure with
the mouse. Best of all, it provides a context-sensitive menu on
@key{mouse-3} that changes depending on the context of a mouse-click.
@file{org-mouse.el} is freely avaliable at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
@cindex @file{org-publish.el}
@item @file{org-publish.el} by David O'Toole
This package provides facilities for publishing related sets of Org-mode
files together with linked files like images as a webpages. It is
highly configurable and can be used for other publishing purposes as
well. As of Org-mode version 4.30, @file{org-publish.el} is part of
the Org-mode distribution. However, it is not yet part of Emacs due to
the Org-mode distribution. It is not yet part of Emacs, however, due to
a pending copyright assignment. In the mean time, @file{org-publish.el}
can be downloaded from David's site:
@url{http://dto.freeshell.org/e/org-publish.el}.
@ -4382,7 +4478,7 @@ Recalculating a table line applies the formulas from left to right.
If a formula uses @emph{calculated} fields further down the row,
multiple recalculation may be needed to get all fields consistent.
@item
Several words in a rom may @b{*be made bold*}, but this does not work if
Several words in a row may @b{*be made bold*}, but this does not work if
the string is distributed over two lines.
@item
The exporters work well, but could be made more efficient.
@ -4427,6 +4523,8 @@ Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
@item
Stefan Monnier provided a patch to keep the Emacs-Lisp compiler happy.
@item
Todd Neal provided patches for links to Info files and elisp forms.
@item
Tim O'Callaghan suggested in-file links, search options for
general file links, and TAGS.
@item
@ -4469,7 +4567,7 @@ system.
John Wiegley wrote @file{emacs-wiki.el} and @file{planner.el}. The
development of Org-mode was fully independent, and both systems are
really different beasts in their basic ideas and implementation details.
However, I have later looked at John's code and learned from his
I later looked at John's code, however, and learned from his
implementation of (i) links where the link itself is hidden and only a
description is shown, and (ii) popping up a calendar to select a date.
@item

Binary file not shown.

View File

@ -1,5 +1,5 @@
% Reference Card for Org Mode
\def\orgversionnumber{4.30}
\def\orgversionnumber{4.33}
\def\year{2006}
%
%**start of header
@ -294,6 +294,7 @@ are preserved on all copies.
\key{previous heading, same level}{C-c C-b}
\key{backward to higher level heading}{C-c C-u}
\key{jump to another place in document}{C-c C-j}
\key{previous/next plain list item}{S-UP/DOWN$^3$}
\section{Structure Editing}
@ -380,7 +381,7 @@ To set archive location for current file, add a line like$^2$:
\key{open file links in emacs (\kbd{C-u} : in emacs)}{C-c C-o}
\key{open link at point (3: in emacs)}{mouse-2/3}
%\key{open file links in emacs}{mouse-3}
\key{record a position in mark ring}{C-c \%}
%\key{record a position in mark ring}{C-c \%}
\key{jump back to last followed link(s)}{C-c \&}
{\bf Internal Links}
@ -397,16 +398,18 @@ To set archive location for current file, add a line like$^2$:
\key{\kbd{file:papers/last.pdf}}{\rm file, relative}
\key{\kbd{file:projects.org::*that text}}{\rm find headline}
\key{\kbd{file:projects.org::find me}}{\rm find tgt/string}
\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
%\key{\kbd{file:projects.org::/regexp/}}{\rm regexp search}
\key{\kbd{http://www.astro.uva.nl/~dominik}}{\rm on the web}
\key{\kbd{mailto:adent@galaxy.net}}{\rm EMail address}
\key{\kbd{news:comp.emacs}}{\rm Usenet group}
\key{\kbd{bbdb:Richard Stallman}}{\rm BBDB person}
\key{\kbd{shell:ls *.org}}{\rm shell command}
\key{\kbd{gnus:group}}{\rm GNUS group}
\key{\kbd{gnus:group\#id}}{\rm GNUS message}
\key{\kbd{vm|wl|mhe|rmail:folder}}{\rm Mail folder}
\key{\kbd{vm|wl|mhe|rmail:folder\#id}}{\rm Mail message}
\key{\kbd{info:emacs:Regexps}}{\rm Info file:node}
\key{\kbd{shell:ls *.org}}{\rm shell command}
\key{\kbd{elisp:(calendar)}}{\rm elisp form}
\metax{\kbd{[[external link][description]]}}{\rm optional link text}
%\key{\kbd{vm://myself@some.where.org/folder\#id}}{\rm VM remote}