SPIP uses a syntax to write templates which has a limited vocabulary but which is also extremely rich and modular in nature. This syntax, defined explicitly in the
ecrire/public/phraser_html.php files, contains elements such as:
-* the loop ("boucle" in French)
<B_loopname>
... before content
<BOUCLE_loopname(TABLE){criteria}>
... for each matching element
</BOUCLE_loopname>
... after content
</B_loopname>
... else content
<//B_loopname>
-* the field or tag ("champ" and "balise" in French)
[ before (#TAG{criteria}|filters) after ]
-* the argument (
{args}
,
|filter
or
|filter{args}
on tags)
-* criteria (
{criteria=param}
used on loops)
-* code inclusion
<INCLURE{fond=included_code_segment_name}>
-* placeholders ("idiome" in French) (language specific character strings)
<:type:string_code_name:>
-* polyglots ("polyglotte" in French) (
<multi>
used throughout templates and in user text)
<multi>[fr]français[en]English</multi>