[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Define capture template with dynamic id target
From: |
Darlan Cavalcante Moreira |
Subject: |
Re: [O] Define capture template with dynamic id target |
Date: |
Fri, 10 Jun 2011 12:50:50 -0300 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) Emacs/24.0 Mule/6.0 (HANACHIRUSATO) |
Thanks David,
I tried to follow your suggestion, but I found two problems (maybe because
I know little about lisp).
For instance, suppose I have a test.org file with the follow content
--8<---------------cut here---------------start------------->8---
* 2011
Every headline has an ID, but I have omitted here for brevity
*** May
***** Sub-headline
bla bla bla
*** June
***** Sub-headline
bla bla bla
--8<---------------cut here---------------end--------------->8---
I want the capture process to add an entry to the Sub-headline of June. If
I just use the file+headline and specify "Sub-headline" then it will add to
the Sub-headline in May. That's why I tried using IDs in the first
place. Also, every month I create a new month headline with the
Sub-headline and the capture process should add an entry to that
instead. That is the reason I wanted to get the ID from a function, instead
of just writing it in the capture template.
As far as I understand if I use the file+function target then the function
must return the headline name, but how can I say that I want the
Sub-headline of June and not of May? [first problem]
I found an org-id-find function that returns something like
"(filename . characterPosition)". Therefore, If there is a way to specify a
position where org should start looking for the headline then I could use
that to go to the correct Sub-headline.
Also, the file+headline target will add the entry as a child of the
specified headline, but file+function seems to add the entry as a sibling
of the headline returned by the function. [second problem] Is this intended
behaviour or is it a bug?
--
Thanks again,
Darlan
At Fri, 10 Jun 2011 07:31:43 +0200,
David Maus <address@hidden> wrote:
>
> [1 <text/plain; US-ASCII (7bit)>]
> At Thu, 09 Jun 2011 15:18:00 -0300,
> Darlan Cavalcante Moreira wrote:
> >
> >
> > Hello List,
> >
> > I'm trying to create a few templates for org capture and I have found a
> > weird behavior with the ID target type. It works OK if I use the ID
> > directly like below
> > #+begin_src emacs-lisp
> > (id "Junho2011Contas")
> > #+end_src
> > but it does not find the ID if I try to get it from a function, such as
> > #+begin_src emacs-lisp
> > (id (get-me-an-org-id-for-the-month "Contas"))
> > #+end_src
>
> Org capture does not support executing a function in the ID target spec.
>
> C-h v org-capture-templates RET
>
> target Specification of where the captured item should be placed.
> In Org-mode files, targets usually define a node. Entries will
> become children of this node, other types will be added to the
> table or list in the body of this node.
>
> Most target specifications contain a file name. If that file
> name is the empty string, it defaults to
> `org-default-notes-file'.
> A file can also be given as a variable, function, or Emacs Lisp
> form.
>
> Valid values are:
>
> (file "path/to/file")
> Text will be placed at the beginning or end of that file
>
> (id "id of existing org entry")
> File as child of this entry, or in the body of the entry
>
> ...
>
> You might use the `function' target spec
>
> (function function-finding-location)
> Most general way, write your own function to find both
> file and location
>
> HTH,
> -- David
> --
> OpenPGP... 0x99ADB83B5A4478E6
> Jabber.... address@hidden
> Email..... address@hidden
> [2 <application/pgp-signature (7bit)>]
>