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>