From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thorsten Jolitz Subject: Re: Can `org-element-map' act on secondary-strings? Date: Mon, 08 Jul 2013 09:16:59 +0200 Message-ID: <87obada5ck.fsf@gmail.com> References: <87li5jrbx3.fsf@gmail.com> <871u7bfw4x.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45526) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uw5hE-0005nY-Fv for emacs-orgmode@gnu.org; Mon, 08 Jul 2013 03:17:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Uw5hC-0002Jm-Rv for emacs-orgmode@gnu.org; Mon, 08 Jul 2013 03:17:16 -0400 Received: from plane.gmane.org ([80.91.229.3]:38393) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Uw5hC-0002JZ-Jo for emacs-orgmode@gnu.org; Mon, 08 Jul 2013 03:17:14 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Uw5h9-00028V-MS for emacs-orgmode@gnu.org; Mon, 08 Jul 2013 09:17:11 +0200 Received: from e178063147.adsl.alicedsl.de ([85.178.63.147]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 08 Jul 2013 09:17:11 +0200 Received: from tjolitz by e178063147.adsl.alicedsl.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 08 Jul 2013 09:17:11 +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: emacs-orgmode@gnu.org Nicolas Goaziou writes: > Hello, > > Thorsten Jolitz writes: > >> when parsing an Org file with org-element-parse-buffer, headline titles >> and section contents (e.g.) end up as secondary strings in the >> parse-tree that do have a ':parent' attribute. >> >> When I try to modify all :parent attributes inside a parse-tree with >> `org-element-map' (by mapping over all element and object types), the >> secondary strings in the parse-tree remain untouched. >> >> Is there a way to make `org-element-map' act on these secondary strings >> too? > > I'm not sure to understand your question. > > "Secondary string" is not an object type, so you cannot explicitly > search for them in a parse tree. > > Also, secondary strings do not have a :parent property (or any property > whatsoever: they are just lists). > > Though, if you map over objects, e.g., bold text, `org-element-map' will > also look for them within secondary lists. I meant these strings that I find in parse-trees that apparently do have a parent-proptery: #+begin_src emacs-lisp (headline ... :title (#("topic number one" 0 16 (:parent #1)))) (paragraph (:begin 114 ...) #("Hello subtopic number one " 0 26 (:parent #4))) #+end_src I concluded that they are the secondary values listed here: #+begin_quote org-element-secondary-value-alist is a variable defined in `org-element.el'. Its value is ((headline . :title) (inlinetask . :title) (item . :tag) (footnote-reference . :inline-definition)) Alist between element types and location of secondary value. #+end_quote plus the actual (string) content of paragraphs (e.g.). I can change the :parent attribute of the headline containing the above :title string (or of the paragraph containing the above content string) with `org-element-map', but those :parent references inside the strings remain untouched. I can access them by writing some code, of course, I only wanted to know if `org-element-map' might be able to access them out-of-the-box somehow. -- cheers, Thorsten