emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] problem with org-element-parse-buffer


From: Nicolas Goaziou
Subject: Re: [O] problem with org-element-parse-buffer
Date: Sun, 25 Nov 2012 10:11:49 +0100

Hello,

Eric Abrahamsen <address@hidden> writes:

>> Strictly speaking, yes. But Org Agenda is a bit permissive (and not only
>> for that thing). Do you want to help basing Agenda on Elements?
>
> This is something I was wondering about -- so that is the plan
> eventually? 

Since we have a complete parser, it would be good to use it as much as
possible. It will alleviate the need to use regexps and normalize Org
syntax.

One downside, though, is that it isn't fast enough yet for speed
critical operations (i.e. fontification). A caching mechanism would be
required to go further (any taker?).

Org Elements is quite simple to use: API basically boils down to five
functions. For a global action, the main function to use is
`org-element-parse-buffer'. At the element level (paragraphs,
tables...), it is `org-element-at-point'. At the object level (links,
emphasis...), it is `org-element-context'. Then you extract properties
(resp. type) with `org-element-property' (resp. `org-element-type').

You can get a list of all properties available for each element/object
by looking at:

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

or by looking at org-element.el source code, obviously.

In order to get started, you can study navigation/manipulation functions
in org.el (from `org-forward-element' to `org-unindent-buffer').

> This is something I've wanted for a while, as it would make
> some of my little personal projects a lot easier. I'd be happy to help
> if there's a roadmap, and if I can be fed bite-sized problems to deal
> with.

There's no roadmap for now. If you're looking for small tasks to handle,
I think interactive functions are a good start (although some can be
a bit challenging, i.e. `org-open-link'). Particularly good candidates
are those calling either `org-at-regexp-p', `org-in-regexp' or
`org-between-regexps-p': using those is almost always wrong (or at least
fragile).

If you give a shot at some of them, please include ert tests: writings
tests for Org is really a must from now on. There are now plenty of
examples in testing directory.

Thank you for your interest in this.


Regards,

-- 
Nicolas Goaziou



reply via email to

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