András Simonyi <andras.simo...@gmail.com> writes: > thanks for pointing out the problem!! I've attached a new version of > the patch, in which the custom exporter backend has an (in many cases > trivial) translator for all currently allowed objects.
Thanks! >> And we may add more, as discussed in >> https://orgmode.org/list/87k04xhhw3.fsf@localhost > > I don't think that it would make much sense to add a lot more, with > the possible exception of links, since citations are at most > sentence-sized textual units, not to mention the possible > complications arising for the existing export processors. (What type > of objects could the various LaTeX-based exporters support without > complex changes?) Since CSL has only a few types of formatting > attributes (font-style, font-variant, font-weight, text-decoration and > vertical-align), if the set of allowed object is radically expanded > then it will probably be more reasonable to define a derived backed, > maybe based on the ascii exporter, but I feel that the current set > doesn't require this solution. I do not think that CSL limitations are really limiting us. - Allowing macros will be handled by ox.el itself automatically - Export snippets can also be processed without much issue (consider direct LaTeX code) - inline-babel-call and inline src blocks may be useful with :exports results when some auto-generation of text is needed. They will also be handled automatically by ob-exp. - latex-fragments are either equivalent to direct LaTeX or to inserting an image - timestamps could be exported as text, although I do not see any obvious utility of timestamps inside references. However, oc-csl should not ignore the export processor to support all the above. I am not sure why you need a dedicated export processor instead of passing the string to current processor (or derivative) instead. If you really need to mark certain constructs specially for CSL, you can create a derived export backend for the current backend and replace the transcoders for the object types that must be treated specially. > +(defconst org-cite-csl--export-backend > + (org-export-create-backend > + :transcoders > + '((bold . (lambda (_bold contents _info) (format "<b>%s</b>" contents))) > + (code . org-cite-csl--element-value) > + (entity . (lambda (entity _contents _info) > + (format "\\%s" (org-element-property :name entity)))) Why :name, but not :html? -- 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>