emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] org-capture question/suggestion


From: Carsten Dominik
Subject: Re: [Orgmode] org-capture question/suggestion
Date: Wed, 23 Jun 2010 10:05:52 +0200


On Jun 22, 2010, at 9:45 PM, Tassilo Horn wrote:

Hi,

as already said, I really like the new org-capture interface.  But
there's one thing concerning the templates, which might be optimized a
bit.

I want to add certain information accessible with template escapes as
properties.  So as an example, I have a template like this:

("t" "TODO" entry
 (file "/home/horn/repos/org/remember.org")
"* TODO %?\n :PROPERTIES:\n :created: %U\n :link: %a\n :END:\n %i")

The creation date %U is always there, so that's no problem.  But the
link accessible with %a may be nil. Then, I really don't want to have a :link: property. Currently, I simply delete that line before filing the
item.  That's a bit inconvenient, and that I have to deal with
indentation in the template is another inconvenience. And it won't work
when my capture template doesn't create a new entry, but appends to an
existing one.  In that case, properties should be appended to existing
properties, too.

So what I would love to see was a possibility to have property escapes,
which use the property API and only add properties that have a value.
Then the property API would handle the correct indentation and
everything else.

James wrote to me that he will try to adapt his template-filling code
so that org-capture can use it.  Among other things, this will make use
of the normal property API, and it will make the entire template stuff
extensible so that you can even write your own special functions.
This will be very useful, I am looking forward to a lot.


Maybe, a good syntax would be %:propname:X, where X is one of the normal
escapes without the leading %.  Then I could write the template above
like that:

("t" "TODO" entry
 (file "/home/horn/repos/org/remember.org")
 "* TODO %?\n  %i %:created:U %:link:a")

Well, I don't really care about the syntax.  Maybe it's better to
specify properties outside the template, because they won't be inserted at the exact position defined in the template anyway, especially if type
is not 'entry.  So how about something like that:

("t" "TODO" entry
 (file "/home/horn/repos/org/remember.org")
 "* TODO %?\n  %i"
 :properties (("created" "%U")
              ("link"    "%a")))

His looks very good. James, are you seeing this? THis would be an interesting way to specify values for some properties, and then prompt for others.

- Carsten




reply via email to

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