Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`

2022-02-03 Thread Max Nikulin
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.




Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`

2022-01-30 Thread chris
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

Re: looking for examples of `org-capture-templates` working with `org-protocol://capture`

2022-01-30 Thread chris
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/


looking for examples of `org-capture-templates` working with `org-protocol://capture`

2022-01-30 Thread chris
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