9398 shaares
13 liens privés
13 liens privés
1 résultat
taggé
yaml
YAML : un hybride simplifié de XML et de JSON, en plus lisible.
Voir aussi : [https://www.youtube.com/watch?v=7gmW6vxgsRQ]
- Les commentaires sont signalés par le signe dièse (#) et se prolongent sur toute la ligne. Si par contre le dièse apparait dans une chaine, il signifie alors un nombre littéral.
- Une valeur nulle s'écrit avec le caractère tilde (~)
- Il est possible d'inclure une syntaxe JSON dans une syntaxe YAML.
- Les éléments de listes sont dénotés par le tiret (-), suivi d'une espace, à raison d'un élément par ligne.
- Les tableaux sont de la forme clé: valeur, à raison d'un couple par ligne.
- Les scalaires peuvent être entourés de guillemets doubles ("), ou simples ('), sachant qu'un guillemet s'échappe avec un antislash (), alors qu'une apostrophe s'échappe avec une autre apostrophe4. Ils peuvent de plus être représentés par un bloc indenté avec des modificateurs facultatifs pour conserver (|) ou éliminer (>) les retours à la ligne.
- Plusieurs documents rassemblés dans un seul fichier sont séparés par trois traits d'union (---) ; trois points (...) optionnels marquent la fin d'un document dans un fichier.
- Les nœuds répétés sont initialement signalés par une esperluette (&) puis sont référencés avec un astérisque (*) ; JSON, un langage concurrent de YAML, est compatible avec la syntaxe de JavaScript mais ne supporte pas cette notion de référence.
- L'indentation, par des espaces, manifeste une arborescence.
- Il est aussi possible de préciser le type (anglais tag) d'une donnée. Cependant, cette précision n'opère aucune contrainte, et fonctionne plutôt comme un marquage, ou une modélisation.
Exemple de fichier yaml :
--- <-- entête d'un fichier yaml (les tirets sont facultatifs, mais par convention ils signifient qu'on a affaire à un fichier yaml)
clef: valeur
#Ceci est un commentaire
script: | <-- le pipe définit une clef avec une valeur sur plusieurs lignes
ligne 1
ligne 2
ligne 3
commande: > <-- le chevron définit une clef avec une valeur très longue sur une seule ligne, mais découpée en plusieurs ligne pour plus de lisibilité
très longue ligne 1/n
très longue ligne 2/n
...
très longue ligne n/n
modele: &template <-- modèle de structure pré-valorisée (`template` n'est pas un mot-clef, c'est le symbole & qui fait tout)
nom: lacan
prenom: guillaume
qui: *template <-- `grâce au symbole `*`, qui` reprend la structure et les valeurs de `modele`
qui_bis:
<< : *template <-- le double-chevron signifie qu'on reprend la structure et les valeurs par défaut de `template`, et qu'on va "overwrite" ledit `template`
age: 8 <-- ajoute une clef à la structure héritée
prenom: camille <-- écrase la valeur par défaut
tableau_yaml:
- toto
- tata
tableau_json: [ "toto", "tata" ]
... <-- fin (facultative) d'un fichier yaml