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