On Thu, Nov 01, 2018 at 12:01:28AM +0100, Anders Waldenborg wrote: > Jeff King writes: > > > On the other hand, if the rule were not "this affects the next > > placeholder" but had a true ending mark, then we could make a real > > parse-tree out of it, and format chunks of placeholders. E.g.: > > > > %(format:lpad=30,filename)%(subject) %(authordate)%(end) > > > > would pad and format the whole string with two placeholders. I know that > > going down this road eventually involves reinventing XML, but I think > > having an actual tree structure may not be an unreasonable thing to > > shoot for. > > Yes. I'm thinking that with [] for formatting specifiers and () for > placeholders, {} would be available for nesting. E.g: > > %[lpad=30,mangle]{%(subject) %ad%} Hmm. That's kind of ugly, but probably not really any uglier than any of the things I showed. And it has the advantage that we could implement %[] now, and later extend it (well, I guess we'd want to make sure that "%[lpad=30]{foo}" does not treat the curly braces literally, since we'd eventually make them syntactically significant). > I'm planning to work on the initial "trailer:key=" part later this > week. Maybe I can play around with different formatting options and see > how it affects the parser. Great! Thanks for working on this. -Peff