Nicolas Goaziou <n.goaz...@gmail.com> writes: Hello,
> Thorsten Jolitz <tjol...@gmail.com> writes: > >> Wouldn't it make sense to replace >> >> ,---------------------------------------------- >> | (org-data nil (section (:begin 1 :end 52 ...))) >> `---------------------------------------------- >> >> with something like >> >> ,------------------------------------------------------------------------- >> | (org-data (:id-or-name file001 :input-file /my/file.org :author me :date >> | 01-01-2013 :description my planning data) (section (:begin 1 :end 52 >> | ...))) >> `------------------------------------------------------------------------- >> >> ? > > This is way beyond parser's attributions. For example, getting the right > date means that every SETUPFILE keyword should be inspected. INCLUDE > keywords too. And some macros could get expanded in the process. > > Also keep in mind that some keywords, e.g. DESCRIPTION, are defined and > made special at the export framework level (see > `org-export-options-alist'). There are just regular keywords to the > parser. IOW, for the parser, there is no difference between > > #+DESRCIPTION: something > > and > > #+FOO: something > > At one point, I thought about combining parse tree and information > channel, much like what you're suggesting, but in `ox.el'. It would give > something like an "Org closure" wrapping both contents and environment > together. > > But I discarded that idea, as it was very artificial: the minute the > closure was created, it was splitted again so it could get processed. OK, I do like the separation of parse tree and communication channel in the exporter, and I can use the exporter to extract and put the necessary 'org-data' DB object attributes, at the very least the file name or a unique ID. But sometimes, when only the parse-tree is needed, not the exporter framework, it would indeed be useful if that highest level element the others refer to as parent (org-data) would have some kind of unique name/id. What would be the cost of introducing just one single unique attribute like: ,------------------------------------------------------------------------- | (org-data (:input-file /my/file.org) (section (:begin 1 :end 52 ...))) `------------------------------------------------------------------------- or ,------------------------------------------------------------------------- | (org-data (:ID 08AF34b12) (section (:begin 1 :end 52 ...))) `------------------------------------------------------------------------- to make different parse trees distinguishable (and associated to the parsed file)? -- cheers, Thorsten