Re: [O] How to programmatically use/edit data provided on capture
Hi Marcin, Marcin Antczak marcin.antc...@neutrico-themes.pl writes: I got capture template with prompts to collect some properties: #+BEGIN_SRC * TODO %\1 / Some task description :PROPERTIES: :NAME: %^{NAME} :END: #+END_SRC My question is: How to get information on user input data to transform this data before capture finalize. I too have wanted to do something like this, but I am not sure that it is possible without hacking org-capture, because I don't think you can hook into the template processing at an arbitrary point. Is it really important that you transform the data *before* capture finalize? If not, I think you could do this *during* capture finalize by replacing, say, a pre-determined string PUT-NAME-HERE with the value of (custom-dashify-function (org-entry-get (point) NAME)) You could do that from org-capture-prepare-finalize-hook, maybe. Would that work for you? It has some limitations: - it's only easy to recover data that was entered as properties or tags, not arbitrary strings - you can't continue to edit the capture buffer after doing this processing, since the hook will only be called after you start finalization If you come up with a better solution, I'd like to hear about it! I have scratched my head about this several times before, but I've never come up with a satisfactory solution. Good luck! Best, Richard
[O] How to programmatically use/edit data provided on capture
Hi all! I got capture template with prompts to collect some properties: #+BEGIN_SRC * TODO %\1 / Some task description :PROPERTIES: :NAME: %^{NAME} :END: #+END_SRC My question is: How to get information on user input data to transform this data before capture finalize. For example: I got variable NAME and would like to use function like (s-dashed-words string) from s.el to make sure that my NAME is valid and converted to dashed syntax. Let's say that my input is: New random project I would like to have: #+begin_src * TODO new-random-project / Some task description :PROPERTIES: :NAME: New random project :END: #+end_src While currently I got: #+begin_src * TODO New random project / Some task description :PROPERTIES: :NAME: New random project :END: #+end_src I have been trying: #+BEGIN_SRC * TODO %(custom-dashify-function %\1) / Some task description :PROPERTIES: :NAME: %^{NAME} :END: #+END_SRC or #+BEGIN_SRC * TODO %(custom-dashify-function %\\1) / Some task description :PROPERTIES: :NAME: %^{NAME} :END: #+END_SRC But apparently function is executed before %\1 is replaced by my data and it dodesn't work. Could someone help me to write function that would get data I provided for property NAME, convert using s-dashed-words and return to template before finalize? Marcin