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

%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


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/