BML Block Types
This documents the flags in braces at the beginning of .look file block template definitions.
The flags fall into one of three classes:
Varible definition types:
F
Full, mix of multi & single line property definitions:
Single line string
template?>]]>
P
Pipe delimited, properites are named DATA<n>, where <n> starts at 1 and increases.
<?template DATA1|second arg|DATA3 template?>
D
One property, and it's named DATA
<?template I am the DATA template?>
Static template definitions:
S
Static: output won't have more BML to expand, or properties to fill-in, so don't try.
R
Less static: add pRoperties, but then don't BML expand.
Controlling expansion vs. interpolation order:
p
Pre-parsed.
BML-expand parameters first, then interpolate into template.
By default, parameters are interpolated first, then everything is expanded.
But if you use %%TITLE%% twice in your PAGE, for example, and your .bml file defines TITLE=> with a _CODE block, it will be run twice, so it's generally a good idea to make PAGE definitions pre-parsed.
Also, then, you avoid re-running most of your output through the BML expander a second time.
s
Expand embedded parameterless static blocks in definition early.
When the template file is read, any blocks of the form <?foo?> are expanded ahead of time.
Useful in conjunction with the {S} flag. consider:
{S}http://www.site.com:8080/
# Some block that has an image:
SPACER=>{Ss}]]>
The SPACER block isn't really static, but because {s} is used and <?IMGPREFIX?> is static, then SPACER can also be static.