From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Tabular overview of org-element.el Date: Sat, 20 Apr 2013 19:42:58 +0200 Message-ID: <87ehe5nlnh.fsf@gmail.com> References: <87obd944dk.fsf@gmail.com> <87ip3hnou6.fsf@gmail.com> <87k3nx3yz5.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:60450) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTboW-000376-De for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 13:43:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UTboV-0006kG-7X for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 13:43:04 -0400 Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:39358) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UTboV-0006k9-0L for emacs-orgmode@gnu.org; Sat, 20 Apr 2013 13:43:03 -0400 Received: by mail-wi0-f182.google.com with SMTP id m6so2343799wiv.9 for ; Sat, 20 Apr 2013 10:43:02 -0700 (PDT) In-Reply-To: <87k3nx3yz5.fsf@gmail.com> (Thorsten Jolitz's message of "Sat, 20 Apr 2013 19:15:26 +0200") 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: Thorsten Jolitz Cc: emacs-orgmode@gnu.org Thorsten Jolitz writes: > Nicolas Goaziou writes: > >> Hello, >> >> Thorsten Jolitz writes: >> >>> I prepared a tabular overview of org-element.el to get a better >>> understanding of how Nicolas modeled and Org file, and I thought it >>> might be useful for others so I share it here. >>> >>> I did not know where to put 'plain-link', but maybe I simply overlooked >>> it in one place. >> >> It belongs to `org-element-all-successors', which means it is >> a successor. Actually, it is a dumbed down successor for links, as it >> only finds plain links, i.e. links with no markup at all. E.g., >> >> http://orgmode.org >> >> This is necessary as some contexts (i.e. link descriptions) can only >> contain such links. > > > Whats kind of confusing for me is that all other successors are either > 'atomic' objects or 'object-categories' containing 'atomic' objects: > > ,-------------------------------------------------------------------- > | Object Recur? Successor(type) SecVal-Location > | ----------------------------------------------------------------- > | bold X text-markup > | code text-markup > | entity latex-or-entity > | export-snippet X > | footnote-reference X :inline-definition > | inline-babel-call X > | inline-src-block X > | italic X text-markup > | line-break X > | latex-fragment latex-or-entity > | link X X > | macro X > | radio-target X X > | statistics-cookie X > | strike-through X text-markup > | subscript X sub/superscript > | superscript X sub/superscript > | table-cell X X > | target X > | timestamp X > | underline X text-markup > | verbatim text-markup > `-------------------------------------------------------------------- > > Only plain-link is an 'outlier' in this systematic. What is a link like > > ,------------------- > | http://orgmode.org > `------------------- > > then, when encountered in an Org document? If its not an object nor an > element, then it is (anonymous) part of the String that forms a paragraph? > Its easy to understand that some objects can be successors of other > objects/elements, others not, and that its sometimes convenient to > organize similar successor objects into successor-categories. > > Its not so easy to understand how something can be a successor but not > an object. "http://orgmode.org" _is_ a link object, like [[http://orgmode.org]]. There are two successors for the same object type, one being more selective than the other. This special successor was introduced (lately) because there was no image syntax in Org. So we needed to recognize: [[http://orgmode.org][./unicorn.jpg]] as an image pointing to an URL. In fact, we could separate `plain-link' objects from `link' objects, but the benefit is not obvious, so `plain-link' is just considered as a sub-type of `link'. Regards, -- Nicolas Goaziou