emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Extending the Org syntax by a custom exporter - how to do it?


From: Nicolas Goaziou
Subject: Re: [O] Extending the Org syntax by a custom exporter - how to do it?
Date: Wed, 26 Nov 2014 12:59:52 +0100

Hello,

Marcin Borkowski <address@hidden> writes:

> Now that I actually started work on my exporter, I'd like to investigate
> this further.  The thing is, I'm not sure where to start.  First of all,
> I have a bit old Org-mode (without latex-math-blocks); I guess I'll just
> have to update it (I'll try to do an Elpa update in a minute).  But my
> question is:
>
> 1. Is it a good idea to instrument `org-latex--wrap-latex-math-block'
> for Edebug to learn what's happening?

Possibly, but you need to start out with a tiny document and have
`print-level' and `print-length' set to nil.

Anyway, it is a straightforward function: it looks for a math-related
object in the parse tree. When it finds one (which needs to be checked
first as type is an insufficient information), it inserts an empty
pseudo object before it. Then, it moves the math-related object, and
every contiguous math-related objects, within that pseudo object.

> 2. Is there any other (possibly simpler) instance of pseudo-blocks I
> could study?  It seems to me (from the docstring) that latex-math-blocks
> are a bit tricky; what I'm interested in is more like creating a new
> element similar to e.g. italics.

A slightly simpler example can be found in
`org-latex--wrap-latex-matrices' (I think you'll need to study
development version). There is also
`org-export--remove-uninterpreted-data-1' in "ox.el".

Anyway, an example of what you're trying to achieve would help.

> Also, if (when?) I "get it", I'm going to describe the process of adding
> a pseudo-object somewhere (I consider my blog, or maybe I could upload
> it to Worg?), so that other people can learn it easier.

I have a TODO to document it at

            http://orgmode.org/worg/dev/org-element-api.html

and add a short note on how to use them at

         http://orgmode.org/worg/dev/org-export-reference.html

However, I have the feeling that the UI is not complete yet. For
example, at the moment, pseudo-objects are mostly wrapped around
existing objects, so a function `org-element-wrap' (with DATUM START END
as arguments, assuming that START and END are siblings) may be
implemented.

Anyway, feel free to document it in the "official" references. We can
always update it later.


Regards,

-- 
Nicolas Goaziou



reply via email to

[Prev in Thread] Current Thread [Next in Thread]