Re: [O] link recognition in orgmode

2017-09-06 Thread Nicolas Goaziou
Hello,

John Kitchin  writes:

> The reason this came up is related to restructured text in a src block
> docstring. For example, using
> http://sphinxcontrib-bibtex.readthedocs.io/en/latest/usage.html#roles-and-directives,
> one can write: "See :cite:`1987:nelson` for an introduction to
> non-standard analysis." and the cite: appears to be recognized as part
> of a link with `1987:nelson` as the path. In this case I would not
> expect that to be interpreted as a link. The backticks in the path are
> a little problematic for org-ref since they are not part of the actual
> key.

In this particular case, this is a problem of the fontification engine.
It shouldn't fontify Org elements in a src block, or any other verbatim
context. More precisely, `org-activate-links' does not check if match is
within such a context.

Ideally, fontification should use the parser, which doesn't fail in this
case. This is on my long TODO list; unfortunately, it has no NEXT
keyword yet.

Regards,

-- 
Nicolas Goaziou



Re: [O] link recognition in orgmode

2017-09-05 Thread John Kitchin

Nicolas Goaziou writes:

> Hello,
>
> John Kitchin  writes:
>
>> With this definition of a link in org-9:
>>
>> #+BEGIN_SRC emacs-lisp
>> (org-link-set-parameters "test" :follow (lambda (path) (message "check")))
>> #+END_SRC
>>
>> #+RESULTS:
>>
>> Should both of these be "linkfied"? I would have expected the first one
>> to be, but not the second one. It seems like the "test:rtree" parts of
>> both of these are linkified.
>>
>>  test:rtree  :test:rtree
>
> It looks correct. `org-plain-link-re' regexp expects a word boundary
> before the type. If you disagree, what do you suggest as allowed
> characters before a plain link?

I thought I knew the answer to that, which is I normally would say a
space or a [, but...

The reason this came up is related to restructured text in a src block
docstring. For example, using
http://sphinxcontrib-bibtex.readthedocs.io/en/latest/usage.html#roles-and-directives,
one can write: "See :cite:`1987:nelson` for an introduction to
non-standard analysis." and the cite: appears to be recognized as part
of a link with `1987:nelson` as the path. In this case I would not
expect that to be interpreted as a link. The backticks in the path are
a little problematic for org-ref since they are not part of the actual
key.

However, it is pretty common (in my work) to put citations right after
punctuation when they are superscripted, e.g. after a comma,cite:somekey
or after the end of a sentence.cite:anotherkey. That is common because
old LaTeX packages couldn't put them in the right place; it was up to
you. It is a pain to switch to bracketed citations though, because
brackets typically go before punctuations. I normally use bracketed
links in this scenario, but I would expect plain links to work here
(mostly because they always have), including all the other punctuations.

Newer latex packages handle the citation placement for you and let you
do what makes the most sense to me which is to put citations before a
comma like cite:thirdkey, and before a period cite:fourthkey. That way
the citations are in the sentence they belong to and the rest is just
styling during export.

So, in the end I am a little conflicted on the solution here. It seems
specific to this particular markup conflict, which is links should not
start with " :" or "^:". On the other hand, org-ref fails harmlessly for
me (although in some setups it might lead to a traceback, e.g.
https://github.com/jkitchin/org-ref/issues/492), and I am inclined to
leave well enough alone and stick with the harmless fail (the fail is
when you generate help on the link and it can't find the key in the
bibtex file).

Thoughts?

>
> Regards,


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



Re: [O] link recognition in orgmode

2017-09-05 Thread Nicolas Goaziou
Hello,

John Kitchin  writes:

> With this definition of a link in org-9:
>
> #+BEGIN_SRC emacs-lisp
> (org-link-set-parameters "test" :follow (lambda (path) (message "check")))
> #+END_SRC
>
> #+RESULTS:
>
> Should both of these be "linkfied"? I would have expected the first one
> to be, but not the second one. It seems like the "test:rtree" parts of
> both of these are linkified.
>
>  test:rtree  :test:rtree

It looks correct. `org-plain-link-re' regexp expects a word boundary
before the type. If you disagree, what do you suggest as allowed
characters before a plain link?

Regards,

-- 
Nicolas Goaziou



[O] link recognition in orgmode

2017-09-04 Thread John Kitchin
With this definition of a link in org-9:

#+BEGIN_SRC emacs-lisp
(org-link-set-parameters "test" :follow (lambda (path) (message "check")))
#+END_SRC

#+RESULTS:

Should both of these be "linkfied"? I would have expected the first one
to be, but not the second one. It seems like the "test:rtree" parts of
both of these are linkified.

 test:rtree  :test:rtree

Thanks,

-- 
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu