[Top][All Lists]

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

Re: [O] About commit named "Allow multi-line properties to be specified

From: Eric Schulte
Subject: Re: [O] About commit named "Allow multi-line properties to be specified in property blocks"
Date: Mon, 31 Oct 2011 14:05:22 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.90 (gnu/linux)

Nicolas Goaziou <address@hidden> writes:

> Hello,
> I just noticed that commit (8354fd9e0f5fff04665b2272fff6376b15ec0225).
> Could we talk about it before pushing it, a few days before the release?
> I am a bit worried about the new block types being introduced recently.
> Some may be justified, I don't know yet, but "#+begin_property"
> definitely isn't.
> By looking at the Org syntax. what appears clearly is that Org blocks
> are used for contents formatting. Center blocks, quote blocks, verse
> blocks, special blocks, example blocks, export blocks, even src blocks
> (even though these blocks may be used for very different things, they
> exist primarily to display source code)... there's no exception.
> On the other hand, Org internals are controlled through keywords,
> property drawers, and options on blocks.
> As "#+begin_property" block isn't about contents. I can't see any reason
> for it to exist under this shape. So, again, can we discuss about
> another approach that would not break the logic behind Org's syntax?
> I don't fully grasp the problem it tries to solve, but what's wrong
> with, for example, "#+property: var multiple couples"? What's wrong
> with :var_list: x=1,y=3,z=4 in a property drawer? What's wrong
> with #+header: :var x=1, y=2, z=3 just above the source block? As your
> already know, #+header can span already on multiple lines.
> Hoping we can find a more elegant solution,

The only problem with a single #+PROPERTY: line is that this line could
become unreadably long.  By allowing such an entry to span multiple
lines it becomes feasible to chain together many variables into a single
property.  Another approach which is easily implementable would be to
use syntax like the following...

  #+PROPERTY:  var foo=1,
  #+PROPERTY+:     bar=2,
  #+PROPERTY+:     baz=3,
  #+PROPERTY+:     qux=4

  #+begin_src emacs-lisp
    (+ foo bar baz qux)

  : 10

Although I originally switched from the above to the implemented because
I thought that using a block would be more consistent with Org-mode
syntax.  Also, the above is undesirable in its requires the PROPERTY+
lines to care about their position in the Org-mode file, which isn't
normally the case.

I think of #+FOO: lines as containers for anything that fits on a single
line, and as blocks as containers for anything that requires a line
break, e.g., #+HTML and #+BEGIN_HTML/#+END_HTML.

I didn't realize that there was an extra semantics of blocks as
formatting, and I'm not sure if such an association is desirable or

Best -- Eric

> Regards,

Eric Schulte

reply via email to

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