From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: [RFC] [PATCH] [parser] org-element.el: Handle block parameters Date: Thu, 31 Oct 2013 12:00:23 +0100 Message-ID: <878ux9aens.fsf@gmail.com> References: <1382987074-19223-1-git-send-email-aaronecay@gmail.com> <878uxca3p6.fsf@gmail.com> <8738njcrgl.fsf@gmail.com> <87iowfb325.fsf@gmail.com> <87ob66bdp5.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50612) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vbpz8-00035L-Ul for emacs-orgmode@gnu.org; Thu, 31 Oct 2013 07:00:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vbpyw-0000D6-If for emacs-orgmode@gnu.org; Thu, 31 Oct 2013 07:00:18 -0400 Received: from mail-wi0-x233.google.com ([2a00:1450:400c:c05::233]:50813) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vbpyw-0000AY-CM for emacs-orgmode@gnu.org; Thu, 31 Oct 2013 07:00:06 -0400 Received: by mail-wi0-f179.google.com with SMTP id hm4so2791585wib.12 for ; Thu, 31 Oct 2013 04:00:05 -0700 (PDT) Received: from selenimh ([91.224.148.150]) by mx.google.com with ESMTPSA id e1sm25183032wij.6.2013.10.31.04.00.04 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Oct 2013 04:00:04 -0700 (PDT) In-Reply-To: <87ob66bdp5.fsf@gmail.com> (Aaron Ecay's message of "Wed, 30 Oct 2013 18:23:34 -0400") 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: emacs-orgmode@gnu.org Hello, Aaron Ecay writes: > 2013ko urriak 30an, Nicolas Goaziou-ek idatzi zuen: >> IIRC, I already suggested a solution with Babel for this problem. >> There's no need to complicate core Org syntax for such a specific >> case. > > And I already said why I disagree that your proposal is a solution. > Special blocks are =E2=80=9CContainers targeted at export back-ends=E2=80= =9D (according > to the manual). Is it appropriate for such containers to have metadata > attached? As I explain below, I think so. Whether you approve or > disapprove of the use to which someone puts that metadata in a specific > instance is a different question, as long as we agree that the metadata > is potentially useful for some things. Metadata relative to export back-ends is stuffed into #+attr_backend keywords. There's no reason to clobber Org syntax with back-ends metadata. >> Actually, there are two points to consider: >>=20 >> 1. Providing something like :author implies that all back-ends in core >> and contrib and the manual have to be updated accordingly. > > Yes, that is desirable eventually. I guess whoever implements :author > for quotes (maybe it will be me) will need to think about all these > things. (Though I=E2=80=99m not sure that all backends have to be update= d in > one fell swoop. The old behavior is still fine as a fall-back until all > backends catch up to the new standard. All backends will not magically catch-up if nobody does the job. Creating new syntax has a cost, which is higher than simply adding a few lines in "org-element.el". >> 2. "parameters" is too vague to be useful. It needs to be parsed >> further, which means that we must define explicitly use cases and >> keywords. Thus, I don't think adding "parameters" to every block is >> a good move if we don't know beforehand how they will be used. >>=20 >> Though, it is possible to extend the syntax to well-defined >> specific cases. :author may be one of them, there are certainly >> others. > > I have the opposite view. The parser should provide a set of convenient > tools to elisp code, which are useful for extending org=E2=80=99s functio= nality > at the elisp level. An =E2=80=9Cif you build it they will come=E2=80=9D = approach. I'm trying to unify and simplify Org syntax. The simpler the better. That doesn't mean that the syntax cannot be extended, but I'd like to see a concrete good reason for it. "Let's do it as it might be used later" just doesn't cut it. Moreover, your proposal, IMO, is not well-enough defined. You merely add a free-form string and call it "parameters". Parameters for what? Which syntax: a plist, switches? Why cannot some parameters fit into other affiliated keywords (e.g. HEADER)? What happens if the line is too long: is there another location for them? What happens if they compete with other affiliated keywords, i.e. what if I write #+begin_quote :caption "Something" So, again, it is important to know what they do so we can deduce what location is the more appropriate for them. For example, "attributes" should be short enough to fit on a single line. Switches are good candidates, a plist is not (see switches in example blocks, for example), unless we limit allowed keywords in it. Regards, --=20 Nicolas Goaziou