42.2.6 Assigning a macro or
variable to a configuration variable
When you assign a value to a configuration variable,
and the value includes the name of a macro or a macro variable, whether
or not that name should be enclosed in quotes depends on the context:
- In a *Config PI marker,
a value is always assigned literally, as is, so you can either
include or omit quotes around the name of a macro or variable.
- In a macro, a value is assigned
literally only if it is enclosed in quotes. If the value includes
a macro name, the entire value should be quoted. Such a value may not
contain a quote.
For example:
HTMConfig: [StyleCodeAfter]=<$macafter>
HTML Macro: <$$[StyleCodeAfter]="<$macafter>">
Angle brackets get processed
in a macro
When you assign a value to a configuration variable
in a macro, and the value contains any < or > characters (angle brackets),
absent enclosing quotes DITA2Go processes each angle bracket as
the start or end of a macro, instead of assigning the entire value as
a string. That is, DITA2Go would try to figure out if maybe the
string is something else first. When the value includes a > character that it is
not in quotes, the macro ends prematurely. In this example:
<$$[StyleCodeAfter]=<hr>>
DITA2Go would assign only <hr to the configuration
variable, because the > after <hr would be taken as
the end of the macro; and then DITA2Go would drop the real ending
> into the current text.
Unquoted variables are
evaluated in a macro
When you assign a macro variable to a configuration
variable in a macro:
- Enclose the macro variable name
in quotes if you want the macro variable to be evaluated later, at run
time.
- Do not enclose the macro variable
name in quotes if you want the macro variable to be evaluated immediately,
so the configuration setting gets the current value of the macro variable
instead of just its name.
Previous Topic: 42.2.5 Adding
a new configuration setting on the fly
Next Topic: 42.2.7 Understanding
fixed-key vs. variable-key settings
Parent Topic: 42.2 Overriding
settings with PI markers or macros
Sibling Topics:
42.2.1 Determining
the extent of a configuration override
42.2.2 Overriding
settings with configuration PI markers
42.2.3 Overriding
settings with macros
42.2.4 Assigning
values to configuration variables
42.2.5 Adding
a new configuration setting on the fly
42.2.7 Understanding
fixed-key vs. variable-key settings
42.2.8 Overriding
fixed-key configuration settings
42.2.9 Overriding variable-key configuration
settings
42.2.10 Assigning
HTML table and graphic groups with overrides