Dear All, apologies for replying that late. If I understand the situation correctly, we could handle the question of allowing macros in citations independently of the handling of other constructs, because macros are resolved before processing citations, so they have no effect on the input of Citeproc-el. In light of this, maybe there could be a separate patch for just allowing macros?
As for the question of other elements, I proposed the custom backend-based approach because CSL has its own rich-text markup (which is actually not simply a subset of Org's, for example, it contains small-caps, which is not in Org), and, consequently, Citeproc-el has its own internal rich-text representations (ASTs), on which it performs the operations that are prescribed by the various CSL styles. When the rich text citation/bibliography is finalized, it can be "serialized" or "formatted" (analogously to Org's exporting a parse tree) using one of the Citeproc formatters, e.g. into LaTeX, HTML or Org. As the prefix, suffix and the locator also need to be operated on by the processor (concatenated to other rich text elements etc.,), they also have to be parsed into CIteproc el's internal rich-text representations. Since this is a given, the only question is in what format should they be passed, and the simple HTML-like standard which is already supported by Citeproc-el (see https://www.zotero.org/support/kb/rich_text_bibliography) seems to be the simplest solution. Ihor Radchenko <yanta...@posteo.net> wrote: > 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? Since Citeproc-el assumes that all formatting in the prefix/suffix is in the HTML-like markup mentioned above, any Org markup would be treated as plain text which should be preserved as is, and not interpreted as formatting, so, for example, when an Org document with underlined text in a citation prefix were exported to LaTeX then the Citeproc LaTeX formatter would escape the underscore characters ("\_") to preserve them in the output and the citation would be inserted in this form into the resulting LaTeX document. > 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. See above, unfortunately, this wouldn't work, at least not in a general and safe way. best wishes, András On Sun, 15 Jan 2023 at 09:56, Ihor Radchenko <yanta...@posteo.net> wrote: > > M. ‘quintus’ Gülker <post+orgmod...@guelker.eu> writes: > > > I probably have not much to contribute to this rather technical thread, > > but Ihor has redirected me here two times for my citation formatting > > questions[1][2]. So I would like to ask if there is something I can do to > > accelerate its inclusion into org so that I can start using macros in > > citations? > > András is the author of citeproc.el. I am not sure who else would be in > position to help us to move this forward. > > My understanding of CSL is non-existing. I can only tell that > citeproc.el has its own implementation of citation export > (`citeproc-render-citations'), which expects some limited kind of html > as input. I am hoping that we can somehow work around limited markup > support of citeproc's implementation and instead leverage ox.el to do > the job. Otherwise, we will keep stumbling upon citeproc.el limitations > when exporting bibliography items. > > -- > 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>