Hi Aaron,

I now see where you and Eric go and this is good!

Here is a revised suggestion, allowing to add link types from withing
the #+LINK keyword.

1. Allow more syntax for #+LINK:
   
   #+LINK: bib;%s;%s file:my.bib::%s org-bib-follow-link org-bib-export-link

If `org-bib-follow-link' is nil, it'll follow [[bib:my.bib::key][key]]
like it does right now, jumping to the "key" line in the my.bib file.

If `org-bib-follow-link' is non-nil, it will operate on
[[bib:my.bib::key;prenote;postnote][key]] and find the correct key.

If `org-bib-export-link' is non-nil, it will operate on
[[bib:my.bib::key;prenote;postnote][key]] and export it correctly
depending on the backend.

The change required for the exporter is to let `org-bib-follow-link'
and `org-bib-export-link' operate on [[bib::my.bib::key;prenote;postnote]], 
not on the expanded link.  IOW, link expansion should happen within
the backend export routines, treating abbreviated links with formatting
strings (aka "bib;%s;%s") in a special way.

I see two advantages:

- adding new types will be easier -- e.g.:
  #+LINK: cite file:my.bib::%s org-bib-follow-link org-bib-export-link

- users can decide what syntactic glue they want to their abbreviated
  links (using ";" or another separator).

Nicolas, do you think it is feasible/good to delay link expansion
till the backend knows whether the abbreviated link is associated
to follow/export function that would understand formatting strings
in the abbreviated form?

-- 
 Bastien

Reply via email to