emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Is it possible to keep /all/ the heading properties in one place


From: Nicolas Goaziou
Subject: Re: [O] Is it possible to keep /all/ the heading properties in one place?
Date: Thu, 25 Feb 2016 17:52:37 +0100

Oleh Krehel <address@hidden> writes:

> I would most definitely make Org easier in some respects. Suppose a
> person wants to parse an Org file's content, just for displaying it on a
> website (like Github does right now). If all properties were in a single
> place, they could be trivially skipped with a regex, resulting in an
> almost ASCII-like export of the Org file.

(Parsing - regexp - trivially: pick only two)

There already is a parser, and a syntax definition.

>> CLOCK cannot be located within PROPERTIES drawer because it not
>> a key-value association. You can have multiple clocks with different
>> values.
>
> :LOGBOOK: could be the key, and all of its contents would be the value.
> Same thing with putting :TAGS: into :PROPERTIES:.

Contents of :LOGBOOK: can be almost anything. You need a parser
understanding the whole Org syntax to parse it. I don't see how it would
make anything easier. Also, you cannot parse Org syntax only using
regexps.

>> SCHEDULED and DEADLINE could have been moved within PROPERTIES drawer.
>> It was even discussed a couple of times on this ML. However, Carsten
>> decided to keep them separated, mainly because such an important
>> information should not be hidden in the document, in particular for
>> newcomers. I still agree with him.
>
> Could we have an option to customize this? Just declare a standard
> getter and setter interface for :SCHEDULED: and :DEADLINE:. I'll
> customize them in my config to put them in the :PROPERTIES: drawer.

I'm against making syntax customizable. I'd rather have a clear
definition of a single syntax anyone could implement.

However, I agree we could allow to customize how meta-data is
/displayed/. Since planning lines and properties drawers are required to
be next to each other, it is easy to make them disappear under the same
overlay. See, for example, `org-end-of-meta-data'.

> Here's another idea for the :PROPERTIES: drawer that might make things a
> lot less hairy - make it fully in Lisp:
>
>     (properties
>      (scheduled [2016-02-25 Thu])
>      (id ca23d969-d189-4d38-aee3-aa21feb5b305)
>      (logbook
>       (clock [2016-02-25 Thu 15:03])
>       (clock [2016-02-25 Thu 14:33] [2016-02-25 Thu 14:58])
>       (clock [2016-02-25 Thu 13:24] [2016-02-25 Thu 13:49]))
>      (added [2016-02-25 Thu 11:24]))
>
> I think it would greatly enhance the parsing of Org files, and simplify
> many functions in org.el. With this, a simple `read' will suffice to
> parse all the stuff.

I do not feel like asking users to write directly the AST for their
plain text documents, really. Parsing an Org document is a solved
problem. I do not pretend the solution cannot be improved, but at least,
it is complete.

I'm not sure about your motivations. If they are about reducing visual
clutter, you can work it out at the display level. I'm pretty sure this
improvement would be appreciated.

OTOH, if they are about making it easier to implement external parsers,
I think you should try first to implement the current syntax. It is
quite documented and not really hard to grok.


Regards,

-- 
Nicolas



reply via email to

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