memo YAML

Respecte l’indentation (uniquement via les espaces)

  • avec [ pour les listes
  • : avec { pour les mappings (enregistrements / tableau associatifs)

Pour le multi-ligne c’est un peu compliqué (_ veut dire espace):

  • | et > démarre à la ligne suivante, garde les espaces à la fin
    • | considère les sauts de ligne comme des sauts de ligne et pas des espaces
  • _ et et «  sur la même ligne, élimine les espaces à la fin
    • «  échappe les \n et \ et « 
    • _ si la chaîne ne contient pas # ou :
Scalars
# scalar = value
a: 1
a: 1.234
b: 'abc'
b: "abc"
b: abc
c: false	# boolean type
d: 2015-04-05	# date type

# Enforcing strings
b: !str 2015-04-05
Sequences
# sequence
array:
- 132
- 2.434
- 'abc'

# sqeuence of sequences
my_array:
- [1, 2, 3]
- [4, 5, 6]
Hashes
# Nest hash
my_hash:
  subkey:
    subsubkey1: 5
    subsubkey2: 6
  another:
    somethingelse: 'Important!'

# Hash of hashes
my_hash: {nr1: 5, nr2: 6}
Newlines
# block notation (newlines become spaces)
content:
  Arbitrary free text
  over multiple lines stopping
  after indentation changes...

# literal style (newlines are preserved)
content: |
  Arbitrary free text
  over "multiple lines" stopping
  after indentation changes...

# + indicator (keep extra newlines after block)
content: |+
  Arbitrary free text with two newlines after


# - indicator (remove extra newlines after block)
content: |-
  Arbitrary free text without newlines after it


# folded style (plié newlines are preserved)
content: >
  Arbitrary free text
  over "multiple lines" stopping
  after indentation changes...

Multiple Documents
---
content: doc1
---
content: doc2
Reference Content
---
values:
- &ref Something to reuse
- *ref	# Reused content
Merging Keys
default_settings:
  install:
    dir: /usr/local
    owner: root
  config:
    enabled: false

# Derive settings for 'my_app' from default and change install::owner
my_app_settings:
  <<: *default_settings
  install:
    owner: my_user
Complex Mapping
---
? - key
:
  - value
# Note: key and value can be multiple, complex structures
Tags
%TAG !personne! tag:foo.org,2004:bar
---
- !personne
    nom:    Simpson
    prenom: Omer
explicit_string: !!str 0.5
python_complex_number: !!python/complex 1+2j

Mémo pour les sautes de ligne

> | _ «  >-
Trailing spaces Kept Kept Kept
Single newline => _ \n _ _ _ _
Double newline => \n \n\n \n \n \n \n
In-line newlines No No No \n No No
Appended* \n \n \n
Single quote  »
Double quote «  «  «  \ » «  « 
Backslash \ \ \ \\ \ \
 » # », « : «  Ok Ok No Ok Ok Ok
Can start on same line as key  No No Yes Yes Yes No
  • http://symfony.com/legacy/doc/reference/1_3/fr/02-yaml
  • http://www.yaml.org/refcard.html
  • http://lzone.de/cheat-sheet/YAML
  • https://fr.wikipedia.org/wiki/YAML
  • http://sweetohm.net/article/introduction-yaml.html
  • http://stackoverflow.com/questions/3790454/in-yaml-how-do-i-break-a-string-over-multiple-lines
  • http://learnxinyminutes.com/docs/yaml/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *