Un template (gabarit) est une page html au format template.tmpl contenant des balises pour y insérer les documents et menus.
Le principe est d'utiliser le même template pour tout un site, en gardant la possibilité d'en avoir un par répertoire et un par fichier.
La recherche des templates se fait donc dans cet ordre.
A l'intérieur du template on retrouvera toutes les données sous la forme:
$page: contenu de la page
$title: titre (indiqué dans le menu)
$label: label (indiqué dans le menu)
$page_name: nom du fichier de la page
$css: liste des feuilles de style
$root_url: url de la racine du site
$roots: liens vers les répertoires parents
$menu: menu
$data: datas accessibles par $data.get("nom_mot-cle")
Le template est programmable en python, toutes sortes de choses sont possibles. Il est par exemple possible de parcourir les entrées du menu:
#for $menu in $menu.items
$menu.title $menu.url $menu.data.get("nom_donnee")...
#end for
Les feuilles de styles sont utilisés en héritage. Et automatiquement associées aux pages.
Ainsi seront prises en compte dans cet ordre.
Contrairement aux templates, toutes les feuilles de styles trouvées sont insérées, sachant que les informations de la dernière remplaceront les informations similaire de la précédente. Cela permet d'hériter des feuilles de styles précédentes.
Le code html généré sera de la forme:
@import "../../style.css"; @import "../style.css"; @import "style.css"; @import "nom_du_fichier.css";
Les pages rst peuvent contenir du code cheetah également. Par défault l'option est désactivée (#raw), pour la réactiver il faut taper #raw, pour la désactiver à nouveau #end raw:
blablabla #end raw code cheetah ici #raw blabla
Le code cheetah peut utiliser les données "data", avec $data.