András Simonyi <andras.simo...@gmail.com> writes: > On Wed, 2 Nov 2022 at 07:28, Ihor Radchenko <yanta...@posteo.net> wrote: > >> I do not think that CSL limitations are really limiting us. > ... > I'm not really familiar with the internals of the Org exporter but, > looking at the ox.el code, macros and babel calls are processed and > resolved before processing citations, so they seemingly have no > bearing on the org-cite-csl--parse-reference function my patch is > concerned with.
> Other than macros and babel calls, e.g., timestamps, LaTeX fragments > etc. the problem is that citeproc-el expects and needs the affixes and > locator to be passed in the very limited html-like markup supported by > CSL (see https://www.zotero.org/support/kb/rich_text_bibliography for > a rudimentary description), and, crucially, the assumption is that > everything else is plain text, which, if necessary, will be escaped > according to the target format, i.e., '$' signs are escaped by > citeproc-el's own LaTeX formatter. The reason for this limitation is > that the affixes and especially the locator have to be parsed into > citeproc-el's internal rich-text representation for further processing > according to the used CSL style. (Affixes are only concatenated to > other elements but locators can be the subject of any type of > formatting.) As a consequence, I think the only real alternatives are > using a custom backend as I do in the current patch or a backend > derived from the plain text Org exporter -- I don't have a strong > preference as to which solution we choose, just went with the > seemingly more minimalist option. (The proper way of dealing with > LaTeX fragments in this context, in particular with LaTeX math > fragments, would be to support those in citeproc-el's internal > representation and markup, which is planned but not implemented yet.) Could you please explain in more details why CSL require special export of the prefix/suffix? What will happen if we simply pass the Org markup verbatim? I am asking because org-cite-csl-render-citation uses org-cite-parse-objects so, unless citeproc does something terrible with the original Org syntax, we can re-parse the output string and export appropriately according to the current export backend. -- 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>