diff options
author | Jonas Smedegaard <dr@jones.dk> | 2010-10-14 13:38:35 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2010-10-14 13:38:35 +0200 |
commit | def01959f8b76178d393a39ecd2c5af9be20b31f (patch) | |
tree | ed9b5b062671c30e55fe691625fc7ddcb31fee1f /ikiwiki/directive/template.mdwn |
Diffstat (limited to 'ikiwiki/directive/template.mdwn')
-rw-r--r-- | ikiwiki/directive/template.mdwn | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/ikiwiki/directive/template.mdwn b/ikiwiki/directive/template.mdwn new file mode 100644 index 0000000..e4f3a93 --- /dev/null +++ b/ikiwiki/directive/template.mdwn @@ -0,0 +1,85 @@ +La directive `template` est fournie par le module d'extension [[!iki +plugins/template desc=template]]. + +Cette directive permet d'utiliser des pages de wiki comme modèles. Ces +modèles peuvent être remplis et insérés dans d'autres pages du wiki. La page +[[templates]] liste les modèles utilisables avec cette directive. + +Cette directive possède un paramètre `id` qui identifie le modèle à +utiliser. Les autres paramètres servent à remplir le modèle. + +## Exemple : + + \[[!template id=note text="""Here is the text to insert into my note."""]] + +Cette expression remplit le modèle `note`, remplaçant le champ `text` par la +valeur spécifiée, et insérant le résultat dans la page. + +## Utilisation d'un modèle + +Une valeur peut contenir tout marquage autorisé dans une page de wiki +externe au modèle. On peut même inclure des guillemets dans la valeur, en +les triplant. Avec des valeurs sur plusieurs lignes entre guillemets, on +peut ainsi insérer de longs passages de texte dans un modèle. + + \[[!template id=foo name="Sally" color="green" age=8 notes=""" + * \[[Charley]]'s sister. + * "I want to be an astronaut when I grow up." + * Really 8 and a half. + """]] + +## Création d'un modèle + +Le modèle est une simple page de wiki, située dans le sous-répertoire +`templates/` du répertoire source du wiki. + +Il est aussi possible de conserver les modèles dans un répertoire extérieur +au wiki, comme des fichiers avec l'extension ".tmpl". Par défaut ces +fichiers sont recherchés dans `/usr/share/ikiwiki/templates`. Le paramètre +`templatedir` peut être utilisé pour commencer la recherche dans un autre +répertoire. + +Le modèle utilise la syntaxe du module Perl [[!cpan HTML::Template]] qui +permet de faire des choses assez compliquées. Consultez la documentation +mais vous n'avez besoin de connaître que peu de choses : + +* Chaque paramètre passé à la directive template créera une variable pour le + modèle. Certaines variables sont prédéfinies comme PAGE et BASENAME. +* Pour insérer la valeur d'une variable, utilisez `<TMPL_VAR variable>`. Le + marquage wiki dans la valeur sera d'abord converti en HTML. +* Pour insérer la valeur brute d'une variable, sans conversion en HTML du + marquage wiki, utilisez `<TMPL_VAR raw_variable>`. +* Pour rendre un texte dépendant d'une variable, utilisez `<TMPL_IF + variable>text</TMPL_IF>` +* Pour utiliser un texte quand une variable est définie et un autre texte + quand elle n'est pas définie, utilisez `<TMPL_IF + variable>text<TMPL_ELSE>other text</TMPL_IF>` + +Voici un exemple : + + <span class="infobox"> + Name: \[[<TMPL_VAR raw_name>]]<br /> + Age: <TMPL_VAR age><br /> + <TMPL_IF color> + Favorite color: <TMPL_VAR color><br />" + <TMPL_ELSE> + No favorite color.<br /> + </TMPL_IF> + <TMPL_IF notes> + <hr /> + <TMPL_VAR notes> + </TMPL_IF> + </span> + +Le modèle rempli sera formaté comme le reste de la page dans laquelle il se +trouve. Vous pouvez donc inclure des WikiLinks ou d'autres marquages wiki +dans le modèle. Cependant ces WikiLinks n'apparaîtront pas comme des +rétroliens vers la page qui utilise ce modèle. + +Remarquez l'utilisation de "raw_name" dans [[ikiwiki/WikiLink]] de l'exemple +ci-dessus. Ainsi, si le nom peut être confondu avec un marquage wiki, il +n'est pas converti en html avant d'être créé en tant que +[[ikiwiki/WikiLink]]. + + +[[!meta robots="noindex, follow"]] |