aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Dominik2006-06-19 06:54:43 +0000
committerCarsten Dominik2006-06-19 06:54:43 +0000
commit5aafad2e4e26ab3bdde420760ab4e9d9b759fcdc (patch)
treed94c43d3445d13f530cacc33b5f9565ca7596b92
parent0fee8d6e467f0f96675915d930ed5a5d029d87a7 (diff)
downloademacs-5aafad2e4e26ab3bdde420760ab4e9d9b759fcdc.tar.gz
emacs-5aafad2e4e26ab3bdde420760ab4e9d9b759fcdc.zip
(Publishing links): Document the
`:link-validation-function' property. (Extensions and Hacking): New chapter, includes some sections of the "Miscellaneous" chapter.
-rw-r--r--man/org.texi494
1 files changed, 217 insertions, 277 deletions
diff --git a/man/org.texi b/man/org.texi
index c88205887ba..4f614a6fe95 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -3,7 +3,7 @@
3@setfilename ../info/org 3@setfilename ../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 4.37 6@set VERSION 4.38
7@set DATE June 2006 7@set DATE June 2006
8 8
9@dircategory Emacs 9@dircategory Emacs
@@ -86,6 +86,8 @@ Software Foundation raise funds for GNU development.''
86* Exporting:: Sharing and publishing of notes 86* Exporting:: Sharing and publishing of notes
87* Publishing:: Create a web site of linked Org-mode files 87* Publishing:: Create a web site of linked Org-mode files
88* Miscellaneous:: All the rest which did not fit elsewhere 88* Miscellaneous:: All the rest which did not fit elsewhere
89* Extensions and Hacking::
90* History and Acknowledgments::
89* Index:: The fast road to specific information 91* Index:: The fast road to specific information
90* Key Index:: Key bindings and where they are described 92* Key Index:: Key bindings and where they are described
91 93
@@ -162,7 +164,7 @@ Timestamps
162 164
163Progress Logging 165Progress Logging
164 166
165* Closing items:: When was this entry makred DONE? 167* Closing items:: When was this entry marked DONE?
166* Clocking work time:: When exactly did you work on this item? 168* Clocking work time:: When exactly did you work on this item?
167 169
168Tags 170Tags
@@ -231,17 +233,19 @@ Miscellaneous
231* The very busy C-c C-c key:: When in doubt, press C-c C-c 233* The very busy C-c C-c key:: When in doubt, press C-c C-c
232* Clean view:: Getting rid of leading stars in the outline 234* Clean view:: Getting rid of leading stars in the outline
233* TTY keys:: Using Org-mode on a tty 235* TTY keys:: Using Org-mode on a tty
234* FAQ:: Frequently asked questions
235* Interaction:: Other Emacs packages 236* Interaction:: Other Emacs packages
236* Bugs:: Things which do not work perfectly 237* Bugs:: Things which do not work perfectly
237* Acknowledgments:: These people provided feedback and more
238 238
239Interaction with other packages 239Interaction with other packages
240 240
241* Extensions:: Third-party extensions for Org-mode
242* Cooperation:: Packages Org-mode cooperates with 241* Cooperation:: Packages Org-mode cooperates with
243* Conflicts:: Packages that lead to conflicts 242* Conflicts:: Packages that lead to conflicts
244 243
244Extensions and Hacking
245
246* Extensions::
247* Dynamic blocks::
248
245@end detailmenu 249@end detailmenu
246@end menu 250@end menu
247 251
@@ -296,9 +300,10 @@ example:
296The Org-mode table editor can be integrated into any major mode by 300The Org-mode table editor can be integrated into any major mode by
297activating the minor Orgtbl-mode. 301activating the minor Orgtbl-mode.
298 302
303@cindex FAQ
299There is a website for Org-mode which provides links to the newest 304There is a website for Org-mode which provides links to the newest
300version of Org-mode, as well as additional information, screen shots 305version of Org-mode, as well as additional information, frequently asked
301and example files. This page is located at 306questions (FAQ), links to tutorials etc. This page is located at
302@uref{http://www.astro.uva.nl/~dominik/Tools/org/}. 307@uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
303 308
304@page 309@page
@@ -341,6 +346,10 @@ them together with @file{org-install.el} on your load path. Then add to
341(require 'org-install) 346(require 'org-install)
342@end lisp 347@end lisp
343 348
349If you use Org-mode with XEmacs, you also need to install the file
350@file{noutline.el} from the @file{xemacs} subdirectory of the Org-mode
351distribution.
352
344@cindex org-mode, turning on 353@cindex org-mode, turning on
345With this setup, all files with extension @samp{.org} will be put into 354With this setup, all files with extension @samp{.org} will be put into
346Org-mode. As an alternative, make the first line of a file look like 355Org-mode. As an alternative, make the first line of a file look like
@@ -621,9 +630,16 @@ to move the tree to an archive place, either in the same file under a
621special top-level heading, or even to a different file. 630special top-level heading, or even to a different file.
622@table @kbd 631@table @kbd
623@kindex C-c $ 632@kindex C-c $
624@item @kbd{C-c $} 633@item C-c $
625Archive the subtree starting at the cursor position to the location 634Archive the subtree starting at the cursor position to the location
626given by @code{org-archive-location}. 635given by @code{org-archive-location}.
636@kindex C-u C-c $
637@item C-u C-c $
638When @kbd{C-c $} is called with @kbd{C-u} prefix argument, check for
639(sub)trees without any open TODO items and offer to archive them. When
640the cursor is on a headline when this command is called, inly check the
641direct children of this headline. When the cursor is @emph{not} on a
642headline, check all level 1 trees.
627@end table 643@end table
628 644
629@cindex archive locations 645@cindex archive locations
@@ -1674,7 +1690,11 @@ and activation}.
1674Insert a link. This prompts for a link to be inserted into the buffer. 1690Insert a link. This prompts for a link to be inserted into the buffer.
1675You can just type a link, using text for an internal link, or one of the 1691You can just type a link, using text for an internal link, or one of the
1676link type prefixes mentioned in the examples above. Through completion, 1692link type prefixes mentioned in the examples above. Through completion,
1677all links stored during the current session can be accessed. The link 1693all links stored during the current session can be
1694accessed@footnote{After insertion of a stored link, the link will be
1695removed from the list of stored links. To keep it in the list later
1696use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the
1697option @code{org-keep-stored-link-after-insertion}.}. The link
1678will be inserted into the buffer, along with a descriptive text. Note 1698will be inserted into the buffer, along with a descriptive text. Note
1679that you don't have to use this command to insert a link. Links in 1699that you don't have to use this command to insert a link. Links in
1680Org-mode are plain text, and you can type or paste them straight into 1700Org-mode are plain text, and you can type or paste them straight into
@@ -2227,10 +2247,9 @@ brackets instead of angular brackets.
2227@item Time range with CLOCK keyword 2247@item Time range with CLOCK keyword
2228@cindex CLOCK keyword 2248@cindex CLOCK keyword
2229When using the clock to time the work that is being done on specific 2249When using the clock to time the work that is being done on specific
2230items, time ranges preceeded by the CLOCK keyword are inserted 2250items, time ranges preceded by the CLOCK keyword are inserted
2231automatically into the file. The time stamps are enclosed in square 2251automatically into the file. The time stamps are enclosed in square
2232brackets instead of angular brackets. @xref{Clocking work time}. 2252brackets instead of angular brackets. @xref{Clocking work time}.
2233@c FIXME: Reference needed
2234@end table 2253@end table
2235 2254
2236@node Creating timestamps, Progress logging, Time stamps, Timestamps 2255@node Creating timestamps, Progress logging, Time stamps, Timestamps
@@ -2376,7 +2395,7 @@ items in a project by starting and stopping a clock when you start and
2376stop working on an aspect of a project. 2395stop working on an aspect of a project.
2377 2396
2378@menu 2397@menu
2379* Closing items:: When was this entry makred DONE? 2398* Closing items:: When was this entry marked DONE?
2380* Clocking work time:: When exactly did you work on this item? 2399* Clocking work time:: When exactly did you work on this item?
2381@end menu 2400@end menu
2382 2401
@@ -2405,8 +2424,8 @@ each day, giving you an overview of what has been done on a day.
2405 2424
2406Org-mode allows you to clock the time you spent on specific tasks in a 2425Org-mode allows you to clock the time you spent on specific tasks in a
2407project. When you start working on an item, you can start the clock. 2426project. When you start working on an item, you can start the clock.
2408When you stop working on that tast, or when you makr the task done, the 2427When you stop working on that task, or when you mark the task done, the
2409clock is stoppend and the corresponding time interval is recorded. It 2428clock is stopped and the corresponding time interval is recorded. It
2410also computes the total time spent on each subtree of a project. 2429also computes the total time spent on each subtree of a project.
2411 2430
2412@table @kbd 2431@table @kbd
@@ -2435,6 +2454,22 @@ puts overlays at the end of each headline, showing the total time
2435recorded under that heading, including the time of any subheadings. You 2454recorded under that heading, including the time of any subheadings. You
2436can use visibility cycling to study the tree, but the overlays disappear 2455can use visibility cycling to study the tree, but the overlays disappear
2437automatically when the buffer is changed. 2456automatically when the buffer is changed.
2457@kindex C-c C-x C-r
2458@item C-c C-x C-r
2459Insert a dynamic block containing a clock report as an org-mode table
2460into the current file.
2461@example
2462#+BEGIN: clocktable :maxlevel 2 :emphasize nil
2463
2464#+END: clocktable
2465@end example
2466@noindent
2467If such a block already exists, its content is replaced by the new
2468table. The @samp{BEGIN} line can specify options:
2469@example
2470:maxlevels @r{Maximum level depth to which times are listed in the table.}
2471:emphasize @r{When @code{t}, emphasize level one and level two items}
2472@end example
2438@end table 2473@end table
2439 2474
2440The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in 2475The @kbd{l} key may be used in the timeline (@pxref{Timeline}) and in
@@ -3765,6 +3800,24 @@ careful with relative pathnames, and provided you have also configured
3765org-publish to upload the related files, these links will work 3800org-publish to upload the related files, these links will work
3766too. @ref{Complex example} for an example of this usage. 3801too. @ref{Complex example} for an example of this usage.
3767 3802
3803Sometime an Org-mode file to be published may contain links that are
3804only valid in your production environment, but not in the publishing
3805location. In this case, use the property
3806
3807@multitable @columnfractions 0.4 0.6
3808@item @code{:link-validation-function}
3809@tab Function to validate links
3810@end multitable
3811
3812@noindent
3813to define a function for checking link validity. This function must
3814accept two arguments, the file name and a directory relative to which
3815the file name is interpreted in the production environment. If this
3816function returns @code{nil}, then the HTML generator will only insert a
3817description into the HTML file, but no link. One option for this
3818function is @code{org-publish-validate-link} which checks if the given
3819file is part of any project in @code{org-publish-project-alist}.
3820
3768@node Project page index, , Publishing links, Configuration 3821@node Project page index, , Publishing links, Configuration
3769@subsection Project page index 3822@subsection Project page index
3770 3823
@@ -3891,7 +3944,7 @@ Org uses timestamps to track when a file has changed. The above
3891functions normally only publish changed files. You can override this and 3944functions normally only publish changed files. You can override this and
3892force publishing of all files by giving a prefix argument. 3945force publishing of all files by giving a prefix argument.
3893 3946
3894@node Miscellaneous, Index, Publishing, Top 3947@node Miscellaneous, Extensions and Hacking, Publishing, Top
3895@chapter Miscellaneous 3948@chapter Miscellaneous
3896 3949
3897@menu 3950@menu
@@ -3901,10 +3954,8 @@ force publishing of all files by giving a prefix argument.
3901* The very busy C-c C-c key:: When in doubt, press C-c C-c 3954* The very busy C-c C-c key:: When in doubt, press C-c C-c
3902* Clean view:: Getting rid of leading stars in the outline 3955* Clean view:: Getting rid of leading stars in the outline
3903* TTY keys:: Using Org-mode on a tty 3956* TTY keys:: Using Org-mode on a tty
3904* FAQ:: Frequently asked questions
3905* Interaction:: Other Emacs packages 3957* Interaction:: Other Emacs packages
3906* Bugs:: Things which do not work perfectly 3958* Bugs:: Things which do not work perfectly
3907* Acknowledgments:: These people provided feedback and more
3908@end menu 3959@end menu
3909 3960
3910@node Completion, Customization, Miscellaneous, Miscellaneous 3961@node Completion, Customization, Miscellaneous, Miscellaneous
@@ -4043,14 +4094,13 @@ The key @kbd{C-c C-c} has many purposes in org-mode, which are all
4043mentioned scattered throughout this manual. One specific function of 4094mentioned scattered throughout this manual. One specific function of
4044this key is to add @emph{tags} to a headline (@pxref{Tags}). In many 4095this key is to add @emph{tags} to a headline (@pxref{Tags}). In many
4045other circumstances it means something like @emph{Hey Org-mode, look 4096other circumstances it means something like @emph{Hey Org-mode, look
4046here and update according to what you see here}. Here is a summary of what 4097here and update according to what you see here}. Here is a summary of
4047this means in different contexts. 4098what this means in different contexts.
4048 4099
4049@itemize @minus 4100@itemize @minus
4050@c @item 4101@item
4051@c If the cursor is in a headline, prompt for tags and insert them 4102If there are highlichts in the buffer from the creation of a sparse
4052@c into the current line, aligned to `org-tags-column'. When called 4103tree, or from clock display, remove these highlights.
4053@c with prefix arg, realign all tags in the current buffer.
4054@item 4104@item
4055If the cursor is in one of the special @code{#+KEYWORD} lines, this 4105If the cursor is in one of the special @code{#+KEYWORD} lines, this
4056triggers scanning the buffer for these lines and updating the 4106triggers scanning the buffer for these lines and updating the
@@ -4180,7 +4230,7 @@ double-star-per-level convention with @kbd{M-x org-convert-to-odd-levels
4180RET} in that file. The reverse operation is @kbd{M-x 4230RET} in that file. The reverse operation is @kbd{M-x
4181org-convert-to-oddeven-levels}. 4231org-convert-to-oddeven-levels}.
4182 4232
4183@node TTY keys, FAQ, Clean view, Miscellaneous 4233@node TTY keys, Interaction, Clean view, Miscellaneous
4184@section Using org-mode on a tty 4234@section Using org-mode on a tty
4185@cindex tty keybindings 4235@cindex tty keybindings
4186 4236
@@ -4217,251 +4267,19 @@ rather use @kbd{C-c .} to re-insert the timestamp.
4217@item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab 4267@item @kbd{S-@key{down}} @tab @kbd{C-c C-x @key{down}} @tab
4218@end multitable 4268@end multitable
4219 4269
4220@node FAQ, Interaction, TTY keys, Miscellaneous 4270@node Interaction, Bugs, TTY keys, Miscellaneous
4221@section Frequently asked questions
4222@cindex FAQ
4223
4224@enumerate
4225@cindex @code{keymapp nil} error
4226@item @b{When I try to use Org-mode, I always get
4227@code{(wrong-type-argument keymapp nil)}}.@*
4228@cindex allout.el, conflict with
4229This is a conflict with an outdated version of the @file{allout.el}.
4230See @ref{Conflicts}.
4231
4232@item @b{Org-mode seems to be a useful default mode for the various
4233@file{README} files I have scattered through my directories. How do I
4234turn it on for all @file{README} files?}
4235
4236@lisp
4237(add-to-list 'auto-mode-alist '("README$" . org-mode))
4238@end lisp
4239
4240@item @b{I would like to use editing features of org-mode in other
4241modes, is this possible?}@*
4242@c
4243Not really. For tables there is @code{orgtbl-mode} which implements the
4244table editor as a minor mode. For other features you need to switch to
4245Org-mode temporarily, or prepare text in a different buffer.
4246
4247@item @b{Can I get the visibility-cycling features in outline-mode and
4248outline-minor-mode?}@*
4249@c
4250Yes, these functions are written in a way that they are independent of
4251the outline setup. The following setup provides standard Org-mode
4252functionality in outline-mode on @key{TAB} and @kbd{S-@key{TAB}}. For
4253outline-minor-mode, we use @kbd{C-@key{TAB}} instead of @key{TAB},
4254because @key{TAB} usually has mode-specific tasks.
4255@lisp
4256(add-hook 'outline-minor-mode-hook
4257 (lambda ()
4258 (define-key outline-minor-mode-map [(control tab)] 'org-cycle)
4259 (define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle)))
4260(add-hook 'outline-mode-hook
4261 (lambda ()
4262 (define-key outline-mode-map [(tab)] 'org-cycle)
4263 (define-key outline-mode-map [(shift tab)] 'org-global-cycle)))
4264@end lisp
4265
4266Or check out @file{outline-magic.el}, which does this and also provides
4267promotion and demotion functionality. @file{outline-magic.el} is
4268available at @url{http://www.astro.uva.nl/~dominik/Tools/OutlineMagic}.
4269
4270@item @b{Some of my links stopped working after I upgraded to a version
42714.20 or later. Why is this, and how can I fix it?}@*
4272@c
4273These must be links in plain text, containing white space, such as
4274@samp{bbdb:Richard Stallman}. You need to protect these links by
4275putting double brackets around them, like @samp{[[bbdb:Richard
4276Stallman]]}.
4277
4278@item @b{I see that Org-mode now creates links using the double bracket
4279convention that hides the link part and the brackets, only showing the
4280description part. How can I convert my old links to this new format?}@*
4281@c
4282Execute once in each Org-mode file: @kbd{M-x org-upgrade-old-links}.
4283This replaces angular brackets with the new link format.
4284
4285@item @b{I don't care if you find the new bracket links great, I am
4286attached to the old style using angular brackets and no hiding of the
4287link text. Please give them back to me, don't tell me it is not
4288possible!}@*
4289@c
4290Would I let you down like that? If you must, you can do this
4291
4292@lisp
4293(setq org-link-style 'plain
4294 org-link-format "<%s>")
4295@end lisp
4296
4297@item @b{When I am executing shell/elisp links I always get a
4298confirmation prompt and need to type @kbd{yes @key{RET}}, that's 4 key
4299presses! Can I get rid of this?}@*
4300@c
4301@cindex shell links, confirmation
4302@cindex dangerous commands
4303The confirmation is there to protect you from unwantingly execute
4304potentially dangerous commands. For example, imagine a link
4305@samp{[[shell:rm -rf ~/*][Google Search]]}. In an Org-mode buffer, this
4306command would look like @samp{Google Search}, but really it would remove
4307your home directory. If you wish, you can make it easier to respond to
4308the query by setting @code{org-confirm-shell-link-function} and/or
4309@code{org-confirm-elisp-link-function} to @code{y-or-n-p}. Then a
4310single @kbd{y} keypress will be enough to confirm those links. It is
4311also possible to turn off this check entirely, but I do not recommend to
4312do this. Be warned.
4313
4314@item @b{All these stars are driving me mad, I just find the Emacs
4315outlines unreadable. Can't you just put white space and a single star as a
4316starter for headlines?}@*
4317@c
4318See @ref{Clean view}.
4319
4320@item @b{I would like to have two windows on the same Org-mode
4321file, but with different outline visibility. Is that possible?}@*
4322@c
4323@cindex @code{make-indirect-buffer}
4324@cindex indirect buffers
4325In GNU Emacs, you may use @emph{indirect buffers} which do exactly this.
4326See the documentation on the command @code{make-indirect-buffer}. In
4327XEmacs, this is currently not possible because of the different outline
4328implementation.
4329
4330@item @b{When I export my TODO list, every TODO item becomes a
4331separate section. How do I enforce these items to be exported as an
4332itemized list?}@*
4333@c
4334If you plan to use ASCII or HTML export, make sure things you want to
4335be exported as item lists are level 4 at least, even if that does mean
4336there is a level jump. For example:
4337
4338@example
4339* Todays top priorities
4340**** TODO write a letter to xyz
4341**** TODO Finish the paper
4342**** Pick up kids at the school
4343@end example
4344
4345Alternatively, if you need a specific value for the heading/item
4346transition in a particular file, use the @samp{+OPTIONS} line to
4347configure the @samp{H} switch.
4348
4349@example
4350+OPTIONS: H:2; ...
4351@end example
4352
4353@item @b{I would like to export only a subtree of my file to HTML.
4354How?}@*
4355@c
4356@cindex exporting a subtree
4357If you want to export a subtree, mark the subtree as region and then
4358export. Marking can be done with @kbd{C-c @@ C-x C-x}, for example.
4359
4360@item @b{Org-mode takes over the S-cursor keys. I also want to use
4361CUA-mode, is there a way to fix this conflict?}@*
4362Yes, see @ref{Conflicts}.
4363
4364@item @b{One of my table columns has started to fill up with
4365@samp{#ERROR}. What is going on?}@*
4366@c
4367Org-mode tried to compute the column from other fields using a
4368formula stored in the @samp{#+TBLFM:} line just below the table, and
4369the evaluation of the formula fails. Fix the fields used in the
4370formula, or fix the formula, or remove it!
4371
4372@item @b{When I am in the last column of a table and just above a
4373horizontal line in the table, pressing TAB creates a new table line
4374@i{before} the horizontal line. How can I quickly move to the line
4375@i{below} the horizontal line instead?}@*
4376@c
4377Press @key{down} (to get on the separator line) and then @key{TAB}.
4378Or configure the variable @code{org-table-tab-jumps-over-hlines}.
4379
4380@item @b{How can I change the indentation of an entire table without
4381fixing every line by hand?}@*
4382@c
4383@cindex indentation, of tables
4384The indentation of a table is set by the first line. So just fix the
4385indentation of the first line and realign with @key{TAB}.
4386
4387@item @b{Is it possible to include entries from org-mode files into my
4388emacs diary?}@*
4389@c
4390Since the org-mode agenda is much more powerful and can contain the
4391diary (@pxref{Calendar/Diary integration}), you should think twice
4392before deciding to do this. Integrating Org-mode information into the
4393diary is, however, possible. You need to turn on @emph{fancy diary
4394display} by setting in @file{.emacs}:
4395
4396@lisp
4397(add-hook 'diary-display-hook 'fancy-diary-display)
4398@end lisp
4399
4400Then include the following line into your @file{~/diary} file, in
4401order to get the entries from all files listed in the variable
4402@code{org-agenda-files}:
4403
4404@example
4405&%%(org-diary)
4406@end example
4407@noindent
4408You may also select specific files with
4409
4410@example
4411&%%(org-diary) ~/path/to/some/org-file.org
4412&%%(org-diary) ~/path/to/another/org-file.org
4413@end example
4414
4415If you now launch the calendar and press @kbd{d} to display a diary, the
4416headlines of entries containing a timestamp, date range, schedule, or
4417deadline referring to the selected date will be listed. Just like
4418Org-mode's agenda view, the diary for @emph{today} contains additional
4419entries for overdue deadlines and scheduled items. See also the
4420documentation of the @command{org-diary} function. Under XEmacs, it is
4421not possible to jump back from the diary to the org, this works only in
4422the agenda buffer.
4423
4424@end enumerate
4425
4426
4427@node Interaction, Bugs, FAQ, Miscellaneous
4428@section Interaction with other packages 4271@section Interaction with other packages
4429@cindex packages, interaction with other 4272@cindex packages, interaction with other
4430Org-mode lives in the world of GNU Emacs and interacts in various ways 4273Org-mode lives in the world of GNU Emacs and interacts in various ways
4431with other code out there. 4274with other code out there.
4432 4275
4433@menu 4276@menu
4434* Extensions:: Third-party extensions for Org-mode
4435* Cooperation:: Packages Org-mode cooperates with 4277* Cooperation:: Packages Org-mode cooperates with
4436* Conflicts:: Packages that lead to conflicts 4278* Conflicts:: Packages that lead to conflicts
4437@end menu 4279@end menu
4438 4280
4439@node Extensions, Cooperation, Interaction, Interaction
4440@subsection Third-party extensions for Org-mode
4441
4442The following extensions for Org-mode have been written by other people:
4443
4444@table @asis
4445@cindex @file{org-mouse.el}
4446@item @file{org-mouse.el} by Piotr Zielinski
4447This package implements extended mouse functionality for Org-mode. It
4448allows you to cycle visibility and to edit the document structure with
4449the mouse. Best of all, it provides a context-sensitive menu on
4450@key{mouse-3} that changes depending on the context of a mouse-click.
4451@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
4452@cindex @file{org-publish.el}
4453@item @file{org-publish.el} by David O'Toole
4454This package provides facilities for publishing related sets of Org-mode
4455files together with linked files like images as a webpages. It is
4456highly configurable and can be used for other publishing purposes as
4457well. As of Org-mode version 4.30, @file{org-publish.el} is part of
4458the Org-mode distribution. It is not yet part of Emacs, however, due to
4459a pending copyright assignment. In the mean time, @file{org-publish.el}
4460can be downloaded from David's site:
4461@url{http://dto.freeshell.org/e/org-publish.el}.
4462@end table
4463 4281
4464@node Cooperation, Conflicts, Extensions, Interaction 4282@node Cooperation, Conflicts, Interaction, Interaction
4465@subsection Packages that Org-mode cooperates with 4283@subsection Packages that Org-mode cooperates with
4466 4284
4467@table @asis 4285@table @asis
@@ -4538,7 +4356,7 @@ in the paragraph above about CUA mode also applies here.
4538@end table 4356@end table
4539 4357
4540 4358
4541@node Bugs, Acknowledgments, Interaction, Miscellaneous 4359@node Bugs, , Interaction, Miscellaneous
4542@section Bugs 4360@section Bugs
4543@cindex bugs 4361@cindex bugs
4544 4362
@@ -4564,10 +4382,6 @@ When the application called by @kbd{C-c C-o} to open a file link fails
4564(for example because the application does not exist or refuses to open 4382(for example because the application does not exist or refuses to open
4565the file), it does so silently. No error message is displayed. 4383the file), it does so silently. No error message is displayed.
4566@item 4384@item
4567Plain list items should be able to hold a TODO item. Unfortunately this
4568has so many technical problems that I will only consider this change for
4569the next major release (5.0).
4570@item
4571The remote-editing commands in the agenda buffer cannot be undone with 4385The remote-editing commands in the agenda buffer cannot be undone with
4572@code{undo} called from within the agenda buffer. But you can go to 4386@code{undo} called from within the agenda buffer. But you can go to
4573the corresponding buffer (using @key{TAB} or @key{RET} and execute 4387the corresponding buffer (using @key{TAB} or @key{RET} and execute
@@ -4577,22 +4391,140 @@ Recalculating a table line applies the formulas from left to right.
4577If a formula uses @emph{calculated} fields further down the row, 4391If a formula uses @emph{calculated} fields further down the row,
4578multiple recalculation may be needed to get all fields consistent. 4392multiple recalculation may be needed to get all fields consistent.
4579@item 4393@item
4580Several words in a row may @b{*be made bold*}, but this does not work if 4394A single letter cannot be made bold, for example @samp{*a*}.
4581the string is distributed over two lines.
4582@item 4395@item
4583The exporters work well, but could be made more efficient. 4396The exporters work well, but could be made more efficient.
4584@end itemize 4397@end itemize
4585 4398
4586@node Acknowledgments, , Bugs, Miscellaneous 4399
4587@section Acknowledgments 4400@node Extensions and Hacking, History and Acknowledgments, Miscellaneous, Top
4401@appendix Extensions, Hooks and Hacking
4402
4403This appendix lists extensions for Org-mode written by other authors.
4404It also covers some aspects where users can easily extend the
4405functionality of Org-mode.
4406
4407@menu
4408* Extensions::
4409* Dynamic blocks::
4410@end menu
4411
4412@node Extensions, Dynamic blocks, Extensions and Hacking, Extensions and Hacking
4413@section Third-party extensions for Org-mode
4414
4415The following extensions for Org-mode have been written by other people:
4416
4417@table @asis
4418@cindex @file{org-mouse.el}
4419@item @file{org-mouse.el} by Piotr Zielinski
4420This package implements extended mouse functionality for Org-mode. It
4421allows you to cycle visibility and to edit the document structure with
4422the mouse. Best of all, it provides a context-sensitive menu on
4423@key{mouse-3} that changes depending on the context of a mouse-click.
4424@file{org-mouse.el} is freely available at @url{http://www.cl.cam.ac.uk/~pz215/files/org-mouse.el}.
4425@cindex @file{org-publish.el}
4426@item @file{org-publish.el} by David O'Toole
4427This package provides facilities for publishing related sets of Org-mode
4428files together with linked files like images as a webpages. It is
4429highly configurable and can be used for other publishing purposes as
4430well. As of Org-mode version 4.30, @file{org-publish.el} is part of the
4431Org-mode distribution. It is not yet part of Emacs, however, a delay
4432caused by the preparations for the 22.1 release. In the mean time,
4433@file{org-publish.el} can be downloaded from David's site:
4434@url{http://dto.freeshell.org/e/org-publish.el}.
4435@cindex @file{org-blog.el}
4436@item @file{org-blog.el} by David O'Toole
4437A blogging plug-in for @file{org-publish.el}.
4438@cindex @file{org-blogging.el}
4439@item @file{org-blogging.el} by Bastien Guerry
4440Publish Org-mode files as
4441blogs. @url{http://www.cognition.ens.fr/~guerry/org-blogging.html}.
4442@end table
4443
4444@node Dynamic blocks, , Extensions, Extensions and Hacking
4445@section Dynamic blocks
4446
4447Org-mode documents can contain @emph{dynamic blocks}. These are
4448specially marked regions that are updates by some user-written
4449function. A good example for such a block is the clock table inserted
4450by the command @kbd{C-c C-x C-r} (@pxref{Clocking work time}).
4451
4452Dynamic block are enclosed by a BEGIN-END structure that assigns a name
4453to the block and can also specify parameters for the function producing
4454the content of the block.
4455
4456@example
4457#+BEGIN: myblock :parameter1 value1 :parameter2 value2 .....
4458
4459#+END:
4460@end example
4461
4462Dynamic blocks are updated with the following commands
4463
4464@table @kbd
4465@kindex C-c C-x C-u
4466@item C-c C-x C-u
4467Update dynamic block at point.
4468@kindex C-u C-c C-x C-u
4469@item C-u C-c C-x C-u
4470Update all dynamic blocks in the current file.
4471@end table
4472
4473Updating a dynamic block means to remove all the text between BEGIN and
4474END, parse the BEGIN line for parameters and then call the specific
4475writer function for this block to insert the new content. For a block
4476with name @code{myblock}, the writer function is
4477@code{org-dblock-write:myblock} with as only parameter a property list
4478with the parameters given in the begin line. Here is a trivial example
4479of a block that keeps track of when the block update function was last
4480run:
4481
4482@example
4483#+BEGIN: block-update-time :format "on %m/%d/%Y at %H:%M"
4484
4485#+END:
4486@end example
4487
4488@noindent
4489The corresponding block writer function could look like this:
4490
4491@lisp
4492(defun org-dblock-write:date-and-time (params)
4493 (let ((fmt (or (plist-get params :format) "%d. %m. %Y")))
4494 (insert "Last block update at: "
4495 (format-time-string fmt (current-time)))))
4496@end lisp
4497
4498If you want to make sure that all dynamic blocks are always up-to-date,
4499you could add the function @code{org-update-all-dblocks} to a hook, for
4500example @code{before-save-hook}. @code{org-update-all-dblocks} is
4501written in a way that is does nothing in buffers that are not in Org-mode.
4502
4503
4504@node History and Acknowledgments, Index, Extensions and Hacking, Top
4505@appendix History and Acknowledgments
4588@cindex acknowledgments 4506@cindex acknowledgments
4507@cindex history
4589@cindex thanks 4508@cindex thanks
4590 4509
4591Org-mode was created by @value{AUTHOR}, who still maintains it at the 4510Org-mode was conceived in 2003 out of frustration over the user
4592Org-mode homepage @uref{http://www.astro.uva.nl/~dominik/Tools/org/}. 4511interface of the emacs outline-mode. The first driver was simply to
4593The following people (in alphabetic order) have helped the development 4512make working with an outline tree possible without having to remember
4594along with ideas, suggestions and patches. Many thanks to all of you, 4513more than 10 commands just for hiding and unhiding parts of the outline
4595Org-mode would not be what it is without your input. 4514tree, and to allow to restructure a tree easily. Visibility cycling and
4515structure editing were originally implemented in the package
4516@file{outline-magic.el}, but quickly moved to the more general
4517@file{org.el}. TODO entries and table support were added relatively
4518quickly, and pointed to the two main drivers of Org-mode: Creating a
4519new plain text mode with intuitive editing features, and to
4520incorporate project planning functionality directly into a notes file.
4521
4522Since the first release, hundreds of emails either directly to me or
4523later on @code{emacs-orgmode@@gnu.org} have been a constant source of
4524bug reports, feedback and new ideas. While I cannot mention everyone, I
4525try to keep here a list of the people who had significant
4526influence in shaping one or more aspects of Org-mode. Many thanks to
4527all of you. If I have forgotten someone, please accept my apologies.
4596 4528
4597@itemize @bullet 4529@itemize @bullet
4598@item 4530@item
@@ -4607,8 +4539,9 @@ for Remember.
4607@i{Pavel Chalmoviansky} influenced the agenda treatment of items with 4539@i{Pavel Chalmoviansky} influenced the agenda treatment of items with
4608specified time. 4540specified time.
4609@item 4541@item
4610@i{Gregory Chenov} patched support for lisp forms into table 4542@i{Gregory Chernov} patched support for lisp forms into table
4611calculations and improved XEmacs compatibility. 4543calculations and improved XEmacs compatibility, in particular by porting
4544@file{nouline.el} to XEmacs.
4612@item 4545@item
4613@i{Sacha Chua} suggested to copy some linking code from Planner. 4546@i{Sacha Chua} suggested to copy some linking code from Planner.
4614@item 4547@item
@@ -4619,6 +4552,8 @@ patched CSS formatting into the HTML exporter, and inspired the agenda.
4619@item 4552@item
4620@i{Nic Ferrier} contributed mailcap and XOXO support. 4553@i{Nic Ferrier} contributed mailcap and XOXO support.
4621@item 4554@item
4555@i{Bastien Guerry} provoded extensive feedback.
4556@item
4622@i{Kai Grossjohann} pointed out key-binding conflicts caused by 4557@i{Kai Grossjohann} pointed out key-binding conflicts caused by
4623Org-mode. 4558Org-mode.
4624@item 4559@item
@@ -4655,6 +4590,10 @@ other things.
4655@item 4590@item
4656Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s 4591Linking to VM/BBDB/GNUS was inspired by @i{Tom Shannon}'s
4657@file{organizer-mode.el}. 4592@file{organizer-mode.el}.
4593@c FIXME:
4594@c @item
4595@c @i{Daniel Sinder} came up with the idea if internal archiving my locking
4596@c subtrees.
4658@item 4597@item
4659@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual 4598@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
4660chapter about publishing. 4599chapter about publishing.
@@ -4684,9 +4623,10 @@ work on a tty.
4684@i{Piotr Zielinski} wrote @file{org-mouse.el} and showed how to follow 4623@i{Piotr Zielinski} wrote @file{org-mouse.el} and showed how to follow
4685links with mouse-1. 4624links with mouse-1.
4686@end itemize 4625@end itemize
4687 4626
4688@node Index, Key Index, Miscellaneous, Top 4627
4689@chapter Index 4628@node Index, Key Index, History and Acknowledgments, Top
4629@unnumbered Index
4690 4630
4691@printindex cp 4631@printindex cp
4692 4632