emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Arbitrary lisp functions in column-attributes


From: Mark Edgington
Subject: Re: [O] Arbitrary lisp functions in column-attributes
Date: Sun, 3 Nov 2013 22:09:30 -0500

> How about using an elisp babel block, with tabular results?  Something
> like (tested only very lightly):
>
> #+BEGIN_SRC elisp :results table
>   (cons
>    (list "Header A" "Header B")
>    (cons 'hline
>          (org-map-entries
>           (lambda ()
>             (list
>              (princ (org-entry-get (point) "FOO"))
>              (princ (identity (org-entry-get (point) "BAR"))))))))
> #+END_SRC
>
> Replace ‘identity’ with your desired lisp-level processing.

Hi Aaron,

I think this could be useful for doing some more general processing of
the properties of trees (e.g. using functions of multiple properties),
but it requires more "low-level" programming than just using a COLUMNS
definition.  Furthermore, as far as I can tell, you would need to use
something other than org-entry-get to get an entry's headline (e.g.
'ITEM' in the COLUMNS definition).  If you used babel to do this, you
would also not be able to (without reinventing them in elisp) use any
of the special summary functions, like when you specify COLUMNS to
include %MYPROP(Col Title){mean}.  Also, it requires extra conditional
code to limit the results to the properties of a particular subtree.
With dynamic blocks, I can just specify an ID.

I do like the flexibility that the babel-block method offers, but
maybe this same flexibility could be offered via a different kind of
column-attribute definition -- perhaps a syntax like %FUNC(Col
Title){myfunc,PROP1NAME,PROP2NAME,...}   (or simply omit 'FUNC') which
would pass PROP1NAME and PROP2NAME to myfunc.  Thoughts?

Regards,

Mark



reply via email to

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