syntaxyamltemplate-enginetransclusion

How can I reference a YAML "setting" from elsewhere in the same YAML file?


I have the following YAML content:

paths:
  patha: /path/to/root/a
  pathb: /path/to/root/b
  pathc: /path/to/root/c

How can I "normalise" this, by removing /path/to/root/ from the three paths, and have it as its own setting, something like:

paths:
  root: /path/to/root/
  patha: *root* + a
  pathb: *root* + b
  pathc: *root* + c

Obviously that's invalid; I just made it up. What's the real syntax? Can it be done?


Solution

  • I don't think it is possible. You can reuse "node" but not part of it.

    bill-to: &id001
        given  : Chris
        family : Dumars
    ship-to: *id001
    

    This is perfectly valid YAML and fields given and family are reused in ship-to block. You can reuse a scalar node the same way but there's no way you can change what's inside and add that last part of a path to it from inside YAML.

    If repetition bother you that much I suggest to make your application aware of root property and add it to every path that looks relative not absolute.