[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH][oc-csl] Improve reference parsing
From: |
Ihor Radchenko |
Subject: |
Re: [PATCH][oc-csl] Improve reference parsing |
Date: |
Wed, 02 Nov 2022 06:29:13 +0000 |
András Simonyi <andras.simonyi@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>