Page MenuHomePhabricator

Support argument interpolation in FragmentHandler API
Open, Needs TriagePublic

Description

The fragment handler API should support argument interpolation using the KeyValuePairPFragment class.

For example, given a {{#kv}} parser function which returns its arguments as a KeyValuePairPFragment, the following invocation:

{{#pf:{{#kv:a=b|c=d}}}}

should be equivalent to:

{{#pf:a=b|c=d}}

That is, it should be possible for the {{#pf}} implementation to see a=b and c=d in its argument list, as opposed to seeing (say) a=b|c=d as the first ordered parameter. If this introduces compatibility problems this may need to be opt-in behavior, for example by calling $args->interpolate() or some such.

This should also eventually (T390342) work for extension tag syntax:

<ext {{#kv:a=b|c=d}}>...</ext>

should be equivalent to

<ext a="b" c="d">...</ext>