* looking for examples of `org-capture-templates` working with `org-protocol://capture`
@ 2022-01-31 2:30 chris
2022-01-31 3:07 ` chris
0 siblings, 1 reply; 4+ messages in thread
From: chris @ 2022-01-31 2:30 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 895 bytes --]
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`.
Chris
--------
[1] https://orgmode.org/manual/The-capture-protocol.html
[2] https://github.com/emacs-mirror/emacs/blob/master/lisp/org/org-protocol.el
[-- Attachment #2: Type: text/html, Size: 1972 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`
2022-01-31 2:30 looking for examples of `org-capture-templates` working with `org-protocol://capture` chris
@ 2022-01-31 3:07 ` chris
2022-01-31 4:23 ` chris
0 siblings, 1 reply; 4+ messages in thread
From: chris @ 2022-01-31 3:07 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1983 bytes --]
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`.
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/
[-- Attachment #2: Type: text/html, Size: 5400 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`
2022-01-31 3:07 ` chris
@ 2022-01-31 4:23 ` chris
2022-02-03 12:57 ` Max Nikulin
0 siblings, 1 reply; 4+ messages in thread
From: chris @ 2022-01-31 4:23 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 3043 bytes --]
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
[-- Attachment #2: Type: text/html, Size: 9295 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`
2022-01-31 4:23 ` chris
@ 2022-02-03 12:57 ` Max Nikulin
0 siblings, 0 replies; 4+ messages in thread
From: Max Nikulin @ 2022-02-03 12:57 UTC (permalink / raw)
To: emacs-orgmode
Chris, could you, please, be more specific with your complains?
Templates are described in the manual in the sections you cited.
Notice that manual may be accessed from emacs
M-x info RET org RET
or
M-: (info "(org) The capture protocol")
or using [[info:org#The capture protocol]] links in org files or as a
single long HTML page https://orgmode.org/org.html
On 31/01/2022 11:23, chris wrote:
>
> > 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`.
You need something like
(require 'org-protocol)
in your emacs init file to setup handlers for specific "file names".
Org-protocol URIs are just relative paths to files from standpoint of
emcasclient. Certainly this line should be executed when directory with
org package is already known. The pitfall of such line is that it makes
impossible to temporary try another org version using just
emacs -L ~/src/org-mode/lisp test.org
it must be combined with -q or -Q.
> So, reverse-engineering the example I've eventually found the relevant
> points of the documentation:
What do you mean by "reverse-engineering"? %:link, %:description, %i are
described in "The capture protocol"
https://orgmode.org/manual/The-capture-protocol.html known to you. Upper
"Protocols for External Access" section contains link to "Capture"
section where a couple of examples (unrelated to org-protocol however)
may be found. "Template elements" and (known to you) "Template
expansion" sections have detailed reference of template constituents.
> https://orgmode.org/worg/org-contrib/org-protocol.html
Notice that some information on this page is outdated.
> (setq org-capture-templates
>
> `(("l" "org-protocol-capture" entry
> (file "~/path/inbox.org")
> "* TODO [[%:link][%:description]]\n\n %:initial"
> :immediate-finish t)))
:immediate-finish should be added when everything already works.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-03 13:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-31 2:30 looking for examples of `org-capture-templates` working with `org-protocol://capture` chris
2022-01-31 3:07 ` chris
2022-01-31 4:23 ` chris
2022-02-03 12:57 ` Max Nikulin
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.