From c222e8f134de324025d623dfe4f6b7f4a22cfba5 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Mon, 25 Jul 2011 23:08:45 +0200 Subject: [PATCH] org-capture: Fix order of template sequences. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * org-capture.el (org-capture-templates): docstring fix. * org.texi (Template expansion): order template sequences in the proper order. Thanks to Philipp Möller for this fix. --- doc/org.texi | 54 ++++++++++++++++++++++----------------------- lisp/org-capture.el | 35 +++++++++++++++-------------- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/doc/org.texi b/doc/org.texi index 87f73a862..8c6b13737 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -6526,39 +6526,39 @@ buffer again after capture is completed. In the template itself, special @kbd{%}-escapes@footnote{If you need one of these sequences literally, escape the @kbd{%} with a backslash.} allow -dynamic insertion of content: +dynamic insertion of content. The templates are expanded in the order given here: @smallexample +%[@var{file}] @r{insert the contents of the file given by @var{file}.} +%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.} +%<...> @r{the result of format-time-string on the ... format specification.} +%t @r{timestamp, date only.} +%T @r{timestamp with date and time.} +%u, %U @r{like the above, but inactive timestamps.} +%a @r{annotation, normally the link created with @code{org-store-link}.} +%i @r{initial content, the region when capture is called while the} + @r{region is active.} + @r{The entire text will be indented like @code{%i} itself.} +%A @r{like @code{%a}, but prompt for the description part.} +%c @r{Current kill ring head.} +%x @r{Content of the X clipboard.} +%k @r{title of the currently clocked task.} +%K @r{link to the currently clocked task.} +%n @r{user name (taken from @code{user-full-name}).} +%f @r{file visited by current buffer when org-capture was called.} +%F @r{full path of the file or directory visited by current buffer.} +%:keyword @r{specific information for certain link types, see below.} +%^g @r{prompt for tags, with completion on tags in target file.} +%^G @r{prompt for tags, with completion all tags in all agenda files.} +%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}.} + @r{You may define a prompt like @code{%^@{Birthday@}t}.} +%^C @r{Interactive selection of which kill or clip to use.} +%^L @r{Like @code{%^C}, but insert as link.} +%^@{@var{prop}@}p @r{Prompt the user for a value for property @var{prop}.} %^@{@var{prompt}@} @r{prompt the user for a string and replace this sequence with it.} @r{You may specify a default value and a completion table with} @r{%^@{prompt|default|completion2|completion3...@}.} @r{The arrow keys access a prompt-specific history.} -%a @r{annotation, normally the link created with @code{org-store-link}.} -%A @r{like @code{%a}, but prompt for the description part.} -%i @r{initial content, the region when capture is called while the} - @r{region is active.} - @r{The entire text will be indented like @code{%i} itself.} -%t @r{timestamp, date only.} -%T @r{timestamp with date and time.} -%u, %U @r{like the above, but inactive timestamps.} -%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}.} - @r{You may define a prompt like @code{%^@{Birthday@}t}.} -%<...> @r{the result of format-time-string on the ... format specification.} -%n @r{user name (taken from @code{user-full-name}).} -%c @r{Current kill ring head.} -%x @r{Content of the X clipboard.} -%^C @r{Interactive selection of which kill or clip to use.} -%^L @r{Like @code{%^C}, but insert as link.} -%k @r{title of the currently clocked task.} -%K @r{link to the currently clocked task.} -%f @r{file visited by current buffer when org-capture was called.} -%F @r{full path of the file or directory visited by current buffer.} -%^g @r{prompt for tags, with completion on tags in target file.} -%^G @r{prompt for tags, with completion all tags in all agenda files.} -%^@{@var{prop}@}p @r{Prompt the user for a value for property @var{prop}.} -%:keyword @r{specific information for certain link types, see below.} -%[@var{file}] @r{insert the contents of the file given by @var{file}.} -%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.} @end smallexample @noindent diff --git a/lisp/org-capture.el b/lisp/org-capture.el index d80bddcd5..d18dd96bc 100644 --- a/lisp/org-capture.el +++ b/lisp/org-capture.el @@ -206,39 +206,40 @@ properties are: capture was invoked, kill the buffer again after capture is finalized. -The template defines the text to be inserted. Often this is an org-mode -entry (so the first line should start with a star) that will be filed as a -child of the target headline. It can also be freely formatted text. -Furthermore, the following %-escapes will be replaced with content: +The template defines the text to be inserted. Often this is an +org-mode entry (so the first line should start with a star) that +will be filed as a child of the target headline. It can also be +freely formatted text. Furthermore, the following %-escapes will +be replaced with content and expanded in this order: - %^{prompt} prompt the user for a string and replace this sequence with it. - A default value and a completion table ca be specified like this: - %^{prompt|default|completion2|completion3|...}. + %[pathname] insert the contents of the file given by `pathname'. + %(sexp) evaluate elisp `(sexp)' and replace with the result. + %<...> the result of format-time-string on the ... format specification. %t time stamp, date only. %T time stamp with date and time. %u, %U like the above, but inactive time stamps. - %^t like %t, but prompt for date. Similarly %^T, %^u, %^U. - You may define a prompt like %^{Please specify birthday. - %<...> the result of format-time-string on the ... format specification. - %n user name (taken from `user-full-name'). %a annotation, normally the link created with `org-store-link'. %i initial content, copied from the active region. If %i is indented, the entire inserted text will be indented as well. + %A like %a, but prompt for the description part. %c current kill ring head. %x content of the X clipboard. - %^C interactive selection of which kill or clip to use. - %^L like %^C, but insert as link. %k title of currently clocked task. %K link to currently clocked task. + %n user name (taken from `user-full-name'). %f file visited by current buffer when org-capture was called. %F full path of the file or directory visited by current buffer. + %:keyword specific information for certain link types, see below. %^g prompt for tags, with completion on tags in target file. %^G prompt for tags, with completion on all tags in all agenda files. + %^t like %t, but prompt for date. Similarly %^T, %^u, %^U. + You may define a prompt like %^{Please specify birthday. + %^C interactive selection of which kill or clip to use. + %^L like %^C, but insert as link. %^{prop}p prompt the user for a value for property `prop'. - %:keyword specific information for certain link types, see below. - %[pathname] insert the contents of the file given by `pathname'. - %(sexp) evaluate elisp `(sexp)' and replace with the result. - + %^{prompt} prompt the user for a string and replace this sequence with it. + A default value and a completion table ca be specified like this: + %^{prompt|default|completion2|completion3|...}. %? After completing the template, position cursor here. Apart from these general escapes, you can access information specific to the