[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,

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)>]

reply via email to

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