Hi Eric, I know this doesn't answer your actual question about nested macro expansion, but writing some elisp might help you get the TIMESTAMP property, at least: both
#+MACRO: bubba (eval (org-entry-get nil "TIMESTAMP")) and #+MACRO: bubba (eval (org-macro-expand "{{{property(TIMESTAMP)}}}" org-macro-templates)) appear to produce the current timestamp, and both can be fed to another function, but not `format-time-string': the result of (org-entry-get...) is a string of the form "<2014-08-19>", which would need to be passed to `org-parse-time-string' first. On 8/19/15, Eric Abrahamsen <e...@ericabrahamsen.net> wrote: > Eric Abrahamsen <e...@ericabrahamsen.net> writes: > >> What I'm trying to do is have a macro that takes the computed TIMESTAMP >> property for an entry, and then runs it through a custom function that >> breaks out the start/end times, and produces a nicely formatted string >> from that. >> >> I don't see how to write a macro that feeds the value of a computed >> special property to a function. >> >> Right now my testing version looks like this: >> >> #+MACRO: bubba (eval (format-time-string "%Y" "$1")) >> >> and I'm calling it like this: >> >> {{{bubba({{{property(TIMESTAMP)}}})}}} >> >> That doesn't expand the interior "{{{property(TIMESTAMP)}}}" clause. >> What `format-time-string' ends up seeing is "{{{property(TIMESTAMP", >> without the final braces etc. >> >> Is there any way to get that value expanded first, and then passed to >> `format-time-string' (or, eventually, my custom function)? > > After googling for a while, I also thought this might work: > > #+MACRO: bubba (eval (format-time-string "%Y" property{{{TIMESTAMP}}})) > > {{{bubba}}} > > But the nested definition isn't expanded, either with or without quotes. > > E > > >