Tom Gillespie <tgb...@gmail.com> writes: > My suggestion is as follows. Schemes/prefixes defined by the > #+link: keyword can be used without surrounding syntax markers > but may not contain spaces etc.
> ... To support this Org parsers > should always parse prefix:suffix as a _putative_ link which > must then be checked against a list of known schemes that > are either built in or have been declared by the user to indeed > be legitimate schemes. > > In the tel: case, the way to solve the original bug is simply > to add the line #+link: tel tel: which would tell Org that e.g. > tel:555-555-5555 is a real uri, and that it should expand to > itself. Currently, link abbreviations are explicitly allowed in bracket links and only bracket links. The currently available way to force tel: link type is using angle links: <tel:555-555-5555> No special #+link keyword is needed in the above example. > At the same time this solution would avoid Arne's issue > (which I also have in some of my documents where I have > use fig: and tbl: as prefixes in names and reference them > via [[fig:figure-name]]) because the parser would only treat > prefix: in an internal link as a scheme if it is defined explicitly > by the user in a #+link: keyword or in their init.el. The most annoying part is that we have three not fully consistent link markups: http://plain-link.com <http://angle-link.com> [[http://bracket-link.com]] The plain link only works for `org-link-types' - registered link types. The angle link works all the time, unconditionally parsing <foo:bar> with "foo" being link type and "bar" being link path. Abbreviations are ignored. The bracket link works only for `org-link-types' __and__ link abbreviations. If whatever inside brackets is not matching know link type or abbreviation, it is considered a fuzzy link. As you see, the situation might easily get confusing in corner cases. My proposal aims to extend the bracket link a bit - the most commonly used link type. However, it creates a problem with fuzzy links. Even more problematic is plain link type where any kind of open syntax will likely clash with normal text flow with innocent text like A:B being suddenly considered a link. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>