On Monday, 31 January 2022 04:07:01 CET chris wrote:
> On Monday, 31 January 2022 03:30:41 CET chris wrote:
> > Hi,
> > When you do
> > `emacsclient "org-protocol://capture?
> > template=X&url=URL&title=TITLE&body=BODY"`
> > I don't understand at all how you make use of `url` `title` and `body` in
> > `org- capture-template`.
> > I understand there is some sort of "encoding" that doesn't make use of the
> > keywords `url` `title` or `body`, but it's dense.
> > There are no indications of how to do that here:
> > https://orgmode.org/manual/The-capture-protocol.html[1]
> > I haven't found any example that I've been able to reproduce in the whole
> > web. I've spent hours on the documentation and the source code of
> > https://github.com/emacs-mirror/emacs/blob/master/lisp/org/org-protocol.el
> > [2 ] And I have absolutely no idea of how to use `url` `title` and `body`
> > in `org-capture- template`.
> 
> The last example in https://blog.jethro.dev/posts/capturing_inbox/[1],
> namely: ```emacs-lisp
> (setq org-capture-templates
>       `(("l" "org-protocol-capture" entry
>          (file "~/path/inbox.org")
>         "* TODO [[%:link][%:description]]\n\n %i"
> 
>         :immediate-finish t)))
> 
> ```
> Seems to work consistently with:
> `xdg-open "org-protocol://capture?template=l&url=URL$(date
> --iso-8601=s)&title=TITLE$ (date --iso-86
> 01=s)&body=BODY$(date --iso-8601=s)"`
> 
> 
> Provided I have opened at least one org buffer before hand, otherwise it
> opens a buffer named
> `"org-protocol://capture?template=l&url=URL&title=TITLE&body=BODY" ` at
> what point it can get messy. Probably I have to "start" somehow "org-mode"
> first, and it doesn't get enough started from my `init.el`.
> 

So, reverse-engineering the example I've eventually found the relevant points 
of the 
documentation:

https://orgmode.org/worg/org-contrib/org-protocol.html[1]
%i'
    will be replaced by the selected text in your browser window if any.
In addition, you may use the following placeholders in your template:
Placeholders     Replacement
%:link     URL of the web-page
%:description     The title of the web-page
%:initial     Selected text.


https://orgmode.org/manual/Template-expansion.html[2]

So, not so many examples, that's all.

So I've rewritten Jethro's example using `%:initial` because it's easier to 
read:


```emacs-lisp
(setq org-capture-templates
      `(("l" "org-protocol-capture" entry
         (file "~/path/inbox.org")
        "* TODO [[%:link][%:description]]\n\n %:initial"
        :immediate-finish t)))
```

> 
> Goal is to have the capturing work in the background, with emacs started as
> a daemon, but with no opened emacsclient frame:
> capture, simply, silently, unobtrusively.
> 
> > Chris
> > 
> > --------
> > [1] https://orgmode.org/manual/The-capture-protocol.html
> > [2]
> > https://github.com/emacs-mirror/emacs/blob/master/lisp/org/org-protocol.el
> 
> --------
> [1] https://blog.jethro.dev/posts/capturing_inbox/



--------
[1] https://orgmode.org/worg/org-contrib/org-protocol.html

Reply via email to