> I am not yet convinced a citation processor will get us where we want
> because of the complexity of the external dependencies, and the
> potential/probable need for us to define new CSL files for different
> backends, or at a minimum for org-formatted citations and
> bibliographies. Hacking bst files is no fun, and it doesn't look like
> CSL files are much better! Plus you have to find them and install them
> somehow.

As I understand it, we would not need to hack the CSL files to get org
markup. With a good processor, such as citeproc-js, it should be trivial
to modify the output format.[fn:1]

This is good. It still means adding each output somewhere.
 

What CSL implementations do offer is the complexity to handle all the
nuances of multiple citation styles, languages, etc. (e.g., something
like Chicago Manual of Style footnotes). My suspicion is that it would
take years to code something in emacs-lisp that offers all of the
functionality of CSL processors.

That sounds right. bibtex was developed for a long time, and there are still efforts to improve it!
 

> http://kitchingroup.cheme.cmu.edu/blog/2015/12/03/Exporting-numbered-citations-in-html-with-unsorted-numbered-bibliography/
>
> I am pointing this out because I think the approach I used could allow
> for plugins for different database backends, different ways to get the
> replacements, etc... you could substitute org-ref links for the
> citation syntax at some point with no real loss of generality. org-ref
> could insert the new syntax as soon as it is available in a main org
> branch. Some code will have to be rewritten to get the key under
> point, but that probably won't be too hard.

Thanks for sharing this. I use something like this myself for *basic*
Chicago Manual of Style formatting when I can't rely on
biblatex-chicago. Might I ask: What is org-ref syntax as opposed to
citation syntax?

org-ref syntax for a citation is just a link such as cite:some-key,another-key, All the cite types in bibtex and biblatex have a link definition. Here is an example document with a citation with pre and post text. A limitation is you can only currently put pre/post text on a single citation. 

Org-mode is great [[cite:Dominik201408][See page 20::for example]].

bibliographystyle:unsrt
bibliography:~/Dropbox/bibliography/references.bib

This exports to LaTeX as 

\cite[See page 20][for example]{Dominik201408}.

\bibliographystyle{unsrt}
\bibliography{/Users/jkitchin/Dropbox/bibliography/references}

I looked at an alternative syntax for pre/post text a year ago, but there doesn't seem to be much demand for it, and we don't use pre/post text.
http://kitchingroup.cheme.cmu.edu/blog/2014/06/26/Another-parsing-of-links-for-citations-with-pre-and-post-text/

 org-ref also provides links for labels, cross-references, index entries and glossaries, and mostly supports biblatex too. See https://github.com/jkitchin/org-ref/blob/master/org-ref.org for a pretty good intro to it.
 

>  Then other more advanced solutions could come along that would likely
> be superior in output quality if they use real citation processors,
> but only if there are CSLs for different backends (if I understand how
> they work).

I don't think modifying CSL styles would be necessary. A huge number
already exist.[fn:2] I think all we would need to do is to convert the
final CSL output to org syntax, which pandoc can already do and which
citeproc-js could do with minor additions.

Best,
Matt

Footnotes:

[fn:1]
See https://bitbucket.org/fbennett/citeproc-js/src/tip/src/formats.js?fileviewer=file-view-default

[fn:2] https://github.com/citation-style-language/styles