emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] accessing properties in org-element-parse-buffer tree


From: Eike
Subject: Re: [O] accessing properties in org-element-parse-buffer tree
Date: Sat, 30 Aug 2014 21:07:46 +0200

Hello again

it seems that I messed up my testing variables… I always had just one
headline and thus the list of lists had always one element that I then
extracted with `car'. So `car' must be removed:

#+begin_src emacs-lisp
  (defun collect-props (tree)
    (org-element-map tree 'headline
      (lambda (hl)
        (when (eq 2 (org-element-property :level hl)) ; want only level-2 
properties
          (org-element-map hl 'node-property
            (lambda (np)
              (cons (org-element-property :key np)
                    (org-element-property :value np))))))))
#+end_src

I'd still be curious if there are other/better ways to do that; or is
this idiomatic usage of provided org functions?

Thanks again and kind regards
Eike

Eike writes:

> Hello list,
>
> I want to ask for help regarding elisp and org-elements. I like to
> access the properties of all my headlines and I created the following
> function (tree is the parsed tree) that collects them into an a-list:
>
> #+begin_src emacs-lisp
>   (defun collect-props (tree)
>     (car (org-element-map tree 'headline
>            (lambda (hl)
>              (when (eq 2 (org-element-property :level hl)) ; want only 
> level-2 properties
>                (org-element-map hl 'node-property
>                  (lambda (np)
>                    (cons (org-element-property :key np)
>                          (org-element-property :value np)))))))))
> #+end_src
>
> I'm not very confident about this, is this ok? Is there a better way?
> For example, the first car looks strange, and I don't know how to get
> rid of it.
>
> Thanks you very much in advance!!!
> Kind regards
> Eike

--
gpg: AD7AC35E
finger print: 137F BB0B 1639 D25F DC5D  E59C B412 C5F5 AD7A C35E



reply via email to

[Prev in Thread] Current Thread [Next in Thread]