Les modèles internes de Go, fournis par le package text/template, servent de base à de nombreuses implémentations de modèles couramment utilisées. Des exemples spécifiques de HashiCorp incluent les strophes de modèles Nomad, consul-template, les modèles d'agent Vault, Nomad Pack, et Levant. D'autres implémentations bien connues sont Hugo et Helm. Ce tutoriel se concentre sur les fonctions universellement fournies par le package text/template.
Structure du Modèle Go
Le modèle Go, soumis au moteur de modèle pour rendu, se compose de texte et d'"actions". Tout le texte en dehors des actions est copié inchangé dans la sortie.
Actions
Les actions fournissent les composants dynamiques du modèle et sont délimitées par des délimiteurs. Les actions dans le modèle d'exemple incluent des sorties simples, des marqueurs de découpe et des commentaires.
{{ "output" }}
{{- "démontre" }}
{{/* il a un commentaire */}}
{{ "output" | print }}
{{ $A := "affecte des variables" }}
{{ $A }}
Délimiteurs
Les actions sont délimitées par un délimiteur gauche ({{ par défaut) et un délimiteur droit (}} par défaut). Les marqueurs de découpe permettent de supprimer les espaces indésirables.
Commentaires et Pipelines
Les commentaires, définis entre / et /, ne sont pas traités par le moteur de rendu. Les pipelines, chaînes de "commandes" séparées par |, permettent d'utiliser des fonctions comme print.
{{ "output" | print }}
Valeurs Simples et Littéraux
Les valeurs simples, comme les chaînes littérales, sont utilisées dans des actions telles que {{ "output" }}. Les littéraux Go incluent des chaînes, des chaînes brutes, des entiers, des points flottants et des booléens.
Fonctions et Structures de Contrôle
Les fonctions universellement disponibles incluent print, et la structure de contrôle utilise des actions comme if, else, range, et with. Ces structures permettent des branchements, des itérations et l'utilisation de sous-modèles.
Liste des Fonctions Go Template
- and
- call
- index
- slice
- len
- not
- or
- printf
- println
Fonctions de Comparaison
- eq
- ne
- lt
- le
- gt
- ge
Fonctions de Sortie Spécialisées
- html
- js
- urlquery
Conclusion
Maintenant que vous maîtrisez l'essentiel du langage de modèle Go, explorez davantage avec des tutoriels spécifiques. Consultez notre guide complet sur la syntaxe des modèles Go pour formater la sortie des commandes Nomad.
Maîtrisez l'art des modèles Go et optimisez votre utilisation pour des expériences de développement plus fluides et puissantes.