Template Blocks
Templates are made up of blocks. At least one block is required for
a file to be a template. The required block is the
main block.
The main block will contain the contents of the
entire file. Any text outside of the main block will ignored and therefor
will not be present after being parsed. This behavior can be useful for
commenting templates.
Example:
this will be ignored
<!-- BEGIN: main -->
<p>this will be present after parsing</p>
<!-- END: main -->
The main block does not necessarily need to be named main but this
is the default value assumed by XiTemplate and is therefor good practice
to always start your template with a block named
main.
Block syntax
Block markers must begin with <!--
followed by a space and BEGIN
or END in capital letters followed by a colon
: and a space and then the
name of the block followed by another
space and ending with -->.
Block names can be any combination of lower and uppercase letters,
numbers, and underscores. Blocks must have a beginning and an end
marker. This syntax is very strict and any deviation from this syntax
will break your template.
<!-- BEGIN: main -->
some content can go here
<!-- BEGIN: another_block -->
some more content can go here
<!-- END: another_block -->
even more content can go here
<!-- END: main -->
Block hierarchy
The main block can have sub
blocks and sub blocks can have sub
blocks.
Example:
this will be ignored
<!-- BEGIN: main -->
<p>this will be present after parsing</p>
<!-- BEGIN: whatever -->
<p>This is a sub block</p>
<!-- BEGIN: another -->
<p>This is a sub block inside a sub block</p>
<!-- END: another -->
<p>this is part of the whatever block</p>
<!-- END: whatever -->
<p>This is part of the main block</p>
<!-- END: main -->
This is outside of main and will also be ignored
The main block is the always parent block and must be parsed last.
All other blocks are child blocks or sub blocks.
Sub blocks can have child blocks of their own to an infinite level.
Child blocks must always be parse prior to parsing a parent
block.