From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Extending the Org syntax by a custom exporter - how to do it? Date: Wed, 26 Nov 2014 12:59:52 +0100 Message-ID: <87k32imatj.fsf@selenimh.mobile.lan> References: <20140315111059.00d3b8e0@aga-netbook> <20140315222244.5eee2361@aga-netbook> <874n2ysb30.fsf@gmail.com> <874mtnezx9.fsf@wmi.amu.edu.pl> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XtbFT-0005eH-Lr for emacs-orgmode@gnu.org; Wed, 26 Nov 2014 06:59:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XtbFN-0007Ez-0F for emacs-orgmode@gnu.org; Wed, 26 Nov 2014 06:59:07 -0500 Received: from relay6-d.mail.gandi.net ([2001:4b98:c:538::198]:56078) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XtbFM-0007EH-PI for emacs-orgmode@gnu.org; Wed, 26 Nov 2014 06:59:00 -0500 In-Reply-To: <874mtnezx9.fsf@wmi.amu.edu.pl> (Marcin Borkowski's message of "Tue, 25 Nov 2014 22:25:00 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Marcin Borkowski Cc: emacs-orgmode@gnu.org Hello, Marcin Borkowski 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