Here is a summary of how things are/will be soon, unless some kind of UX simplification happens:
Property substitution: uses the str.format()
convention. Everywhere something like {propname}
shows up, it's replaced with the corresponding property's value (from the current layer if any, or global otherwise). Supports things like {propname:.5f}
and the rest of the str.format()
mini-language.
Examples:
$ vpype read input.svg [...] write {vp_filename}_processed.svg
$ vpype [...] text "pen width: {vp_pen_width:.2f}" [...]