[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)
#+end_src
#+results:
: 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
intentional.
Best -- Eric
>
>
> Regards,
--
Eric Schulte
http://cs.unm.edu/~eschulte/