#### 7.2.4 Understanding how DITA2Go processes format chains

When DITA2Go reads the properties of a format, DITA2Go does not just read the chain for the configuration section where the format is defined; DITA2Go reads the chain for each individual property of that format, across all format files in the chain. This ensures that settings that change defaults for other settings are always processed in the right order, regardless of how you listed them in the format section, thus eliminating one possible source of unexpected results.

When DITA2Go reads a format, you can think of it as combining all the sections with that format name, at every template level, with the settings for the lowest level first, then the settings for the next level up, and so on.

If a based property (see §7.4.5 Basing format properties on other formats) is anywhere in the combined list, DITA2Go takes it into consideration; if the same based property occurs more than once, DITA2Go sees just the first instance. Next, DITA2Go follows the same process for the format on which the current format is based. Next, if the format is a text format, DITA2Go looks for an inline property (see §7.6.4 Understanding based vs. inline properties for paragraph formats), and carries out the same recursive process again.

For any given format property setting, you can think of the “search order” like this:

1. The lowest-level instance of the format.
2. The higher-level instances, bottom to top.
3. The inline instances, bottom to top.
4. The based instances, bottom to top.

This can result in quite a few places to look. But it also means that you have a single point of change for common settings, such as font.

If you are in doubt, you can always add the specific property to the lowest-level instance of the format. That overrides any others. But it also means that if you change the value of that property higher in the chain, the change will not propagate to the lower instances.

Previous Topic: 7.2.3 Understanding how DITA2Go builds format chains

Next Topic: 7.3 Creating aliases to existing format names

Parent Topic: 7.2 Working with format configuration files

Sibling Topics:

7.2.1 Understanding where to define output formats

7.2.2 Specifying paths to your own format configuration files

7.2.3 Understanding how DITA2Go builds format chains