From: Aankhen <aankhen@gmail.com>
To: Darlan Cavalcante Moreira <darcamo@gmail.com>,
David Maus <dmaus@ictsoc.de>,
Org mailing list <emacs-orgmode@gnu.org>
Subject: Re: Define capture template with dynamic id target
Date: Sat, 11 Jun 2011 13:36:27 +0530 [thread overview]
Message-ID: <BANLkTikykFDdD6BG03PFLeGSNic-DNUGFw@mail.gmail.com> (raw)
In-Reply-To: <4df23d66.814de50a.09ad.7325@mx.google.com>
Hi Darlan,
On Fri, Jun 10, 2011 at 21:20, Darlan Cavalcante Moreira
<darcamo@gmail.com> wrote:
> 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?
> [snip]
Looking at the code, the function doesn’t need to return anything; it
just needs to place point where you want the new headline to appear.
Therefore, you can use ‘org-find-olp’ to locate the entry:
,----[ C-h f org-find-olp RET ]
| org-find-olp is a compiled Lisp function in `org.el'.
|
| (org-find-olp PATH &optional THIS-BUFFER)
|
| Return a marker pointing to the entry at outline path OLP.
| If anything goes wrong, throw an error.
| You can wrap this call to catch the error like this:
|
| (condition-case msg
| (org-mobile-locate-entry (match-string 4))
| (error (nth 1 msg)))
|
| The return value will then be either a string with the error message,
| or a marker if everything is OK.
|
| If THIS-BUFFER is set, the outline path does not contain a file,
| only headings.
`----
So the code would look something like this:
,----
| (org-find-olp '("2011" "May" "Sub-headline") t)
`----
Aankhen
prev parent reply other threads:[~2011-06-11 8:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 18:18 Define capture template with dynamic id target Darlan Cavalcante Moreira
2011-06-10 5:31 ` David Maus
2011-06-10 15:50 ` Darlan Cavalcante Moreira
2011-06-11 8:06 ` Aankhen [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BANLkTikykFDdD6BG03PFLeGSNic-DNUGFw@mail.gmail.com \
--to=aankhen@gmail.com \
--cc=darcamo@gmail.com \
--cc=dmaus@ictsoc.de \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).