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/