[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: org-attach-attach in an org-capture template?
From: |
Ihor Radchenko |
Subject: |
Re: org-attach-attach in an org-capture template? |
Date: |
Fri, 30 Apr 2021 21:12:17 +0800 |
Tim Visher <tim.visher@gmail.com> writes:
> I also believe I could do this with one of the org-capture hooks but
> examining them I didn't see the obvious right one to add my function to. I
> would think it would be the org-capture-prepare-finalize-hook and I may
> just give that a try.
Capture hooks should be the right place to do what your want. I
recommend org-capture-before-finalize-hook since it will not run if you
abort the capture for any reason. Otherwise, you may attach the file,
abort capture (via C-c C-k or because of some error), and your attached
file will hang somewhere unreferenced. Your first idea with
%()-expansion have the same problem.
> ... I further assume then that I'd need to to apply the
> advice here
> <https://www.reddit.com/r/emacs/comments/9n3vxn/in_org_mode_how_can_i_make_a_postcapture_hook_run/>
> and
> check for what template I'm in with (plist-get org-capture-plist :key) or
> similar.
I recommend using doct [1] with :before-finalize keyword. It will take
care that your function runs for the right template.
[1] https://github.com/progfolio/doct#hooks
> So my question is whether there's anything I can do to get org-attach-attach
> to
> recognize the file it's in. I'm assuming that when it's expanding it's in a
> temporary buffer of some kind which is why it's failing.
You are right, template expansion is done in separate "*Capture*" buffer
using org-capture-fill-template. The buffer is not associated with any
file.
Best,
Ihor