Re: Force creation of org id in template
I have this URL to a site which gives a method for generating auto IDs, which might be useful. I never use IDs so can't report on its effectiveness. https://writequit.org/articles/emacs-org-mode-generate-ids.html#automating-id-creation Best wishes, Colin Baxter URL: http://www.Colin-Baxter.com - GnuPG fingerprint: 68A8 799C 0230 16E7 BF68 2A27 BBFA 2492 91F5 41C8 - Since mathematicians have invaded the theory of relativity, I do not understand it myself. A. Einstein
Re: Force creation of org id in template
On Mon, 26 Oct 2020 at 19:40, Gustavo Barros wrote: > On Mon, 26 Oct 2020 at 22:33, Michael Heerdegen > wrote: > >> I'm not sure. I see that creating an id involves slightly more than >> adding the property - see the `org-id-add-location' call in >> `org-id-get'. Calling the higher level `org-id-get' or the like in a >> %() spec in a template fails however, since when it's called a temp >> buffer not associated with a file is current. >> >> And then I'm also not sure if the above is always secure when something >> else in the template spec wants to add a (different) property. Do you >> know? > > Not really. `org-id' usually "just works" for me, so I never had to dig > anything deeper there. But, as far as I recall, this is meant to add > the new ID on the IDs file. Considering your capture template is likely > to be on your agenda files, this is probably not going to be of > concern (meaning here these files will eventually be scanned and the ID > found). But, if it is, you could then go with `%(org-id-get nil t)`, > right? It does seem to be more appropriate either way, I agree. > > I have stored here in my init file a message from the list describing > the procedure Org uses to try to find an ID, you might find it useful: > https://lists.gnu.org/archive/html/emacs-orgmode/2009-11/msg01195.html > > Regarding the second issue, of course, you should end up with a single > properties drawer, and the template should ensure that. Indeed, `%(org-id-get nil t)` fails. But the following works: (defun org-id-get-new-id () (interactive) (let ((id (org-id-get nil t))) id)) To my surprise, I had to make it interactive. Perhaps that's what made the previous try fail. Best, Gustavo.
Re: Force creation of org id in template
On Mon, 26 Oct 2020 at 22:33, Michael Heerdegen wrote: > I'm not sure. I see that creating an id involves slightly more than > adding the property - see the `org-id-add-location' call in > `org-id-get'. Calling the higher level `org-id-get' or the like in a > %() spec in a template fails however, since when it's called a temp > buffer not associated with a file is current. > > And then I'm also not sure if the above is always secure when something > else in the template spec wants to add a (different) property. Do you > know? Not really. `org-id' usually "just works" for me, so I never had to dig anything deeper there. But, as far as I recall, this is meant to add the new ID on the IDs file. Considering your capture template is likely to be on your agenda files, this is probably not going to be of concern (meaning here these files will eventually be scanned and the ID found). But, if it is, you could then go with `%(org-id-get nil t)`, right? It does seem to be more appropriate either way, I agree. I have stored here in my init file a message from the list describing the procedure Org uses to try to find an ID, you might find it useful: https://lists.gnu.org/archive/html/emacs-orgmode/2009-11/msg01195.html Regarding the second issue, of course, you should end up with a single properties drawer, and the template should ensure that. Best, Gustavo.
Re: Force creation of org id in template
gusbrs.2...@gmail.com writes: > Untested, but how about adding something like the following to your > template? > > :PROPERTIES: > :ID: %(org-id-new) > :END: I'm not sure. I see that creating an id involves slightly more than adding the property - see the `org-id-add-location' call in `org-id-get'. Calling the higher level `org-id-get' or the like in a %() spec in a template fails however, since when it's called a temp buffer not associated with a file is current. And then I'm also not sure if the above is always secure when something else in the template spec wants to add a (different) property. Do you know? Thanks, Michael.
Re: Force creation of org id in template
Hi Michael, On Mon, 26 Oct 2020 at 19:26, Michael Heerdegen wrote: > is it possible to tweak `org-capture-templates' entries so that the > creation of an org id for an org entry created with `org-capture' is > forced? Untested, but how about adding something like the following to your template? :PROPERTIES: :ID: %(org-id-new) :END: HTH, Gustavo.
Force creation of org id in template
Hello, is it possible to tweak `org-capture-templates' entries so that the creation of an org id for an org entry created with `org-capture' is forced? TIA, Michael.