summaryrefslogtreecommitdiffhomepage
path: root/nl-nl/yaml-nl.html.markdown
blob: a4a9d5fcc24d81f2659fbb4f30ed8a36ec3c2f1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
---
language: yaml
filename: learnyaml-nl.yaml
contributors:
  - ["Adam Brenecki", "https://github.com/adambrenecki"]
translators:
  - ["Niels van Velzen", "https://nielsvanvelzen.me"]
lang: nl-nl
---

YAML is een data serialisatie taal ontworpen om snel te kunnen worden begrepen door mensen.

Het is een strikte superset van JSON en bevat nieuwe regels en een stricte manier van inspringen, zoals bij Python. In tegenstelling tot Python kan je alleen geen tab tekens gebruiken.

```yaml
# Commentaar in YAML ziet er zo uit

################
# SCALAR TYPES #
################

# Ons hoofd object (Wat in het hele document gebruikt wordt) is een map,
# dit staat gelijk aan een dictionary, hash of object in andere talen.
sleutel: waarde
nog_een_sleutel: Een andere waarde
nummer_waarde: 100
wetenschappelijke_waarde: 1e+12
boolean_waarde: true
null_waarde: null
sleutel met spaties: waarde
# Merk op dat strings niet verplicht in quotes moeten, maar dit kan wel.
quote_waarde: "Een string in quotes"
"Ook sleutels kunnen in quotes": "Dit is bijvoorbeeld handig als je een dubbelepunt wilt gebruiken in je key"

# Tekst over meerdere lijnen kan je schrijven als een 'letterlijk blok' (met |)
# Of een 'gevouwen blok' (met >)
letterlijk_blok: |
    Dit hele blok met tekst is de waarde van de 'letterlijk_blok' sleutel,
    met nieuwe lijnen behouden.

    Het blok blijft door gaan tot het geeindigd wordt door korter te inspringen.

        Lijnen die groter zijn ingesprongen behouden dit.
gevouwen_stijl: >
    Dit blok met tekst zal de waarde zijn van 'gevouwen_stijl',
    maar deze keer zullen alle nieuwe lijnen worden vervangen met een spatie.

    Lege lijnen, zoals hierboven, zullen worden vertaald naar een nieuwe lijn.

        Meer ingesprongen lijnen zullen hun nieuwe lijnen ook behouden,
        deze tekst zal over 2 lijnen te zien zijn.

####################
# COLLECTION TYPES #
####################

# Nesten wordt bereikt met inspringen.
geneste_map:
    sleutel: waarde
    andere_sleutel: andere waarde
    andere_geneste_map:
        hallo: wereld

# In een map is een sleutel niet verplicht om een string te gebruiken
0.25: een float als sleutel

# Sleutels kunnen ook meerdere lijnen gebruiken met behulp van het vraagteken
? |
    Dit is een sleutel
    met meerdere lijnen
: en dit is de waarde

# YAML staat ook collection types toe in sleutels, maar veel programmeertalen
# zullen hierover klagen.

# Sequences (gelijk aan lijsten of arrays) zien er zo uit:
een_sequence:
    - Item 1
    - Item 2
    - 0.5 # sequences kunnen meerdere type waardes bevatten.
    - Item 4
    - sleutel: waarde
      andere_sleutel: andere waarde
    -
        - Dit is een sequence
        - in een andere sequence

# Doordat YAML een superset van JSON is kan je ook JSON-stijl mappen en
# sequences maken:
json_map: {"sleutel": "waarde"}
json_seq: [3, 2, 1, "takeoff"]

#######################
# EXTRA YAML FUNCTIES #
#######################

# YAML heeft ook een handige functie genaamd 'anchors' (ankers), deze laten je
# makkelijk de waarde van ergens anders in je document kopieëren. Beide sleutels
# krijgen dezelfde waarde:
geankert_content: &anker_naam Deze string zal verschijnen als waarde voor de twee sleutels
andere_anker: *anker_naam

# YAML heeft ook tags, deze gebruik je om een expliciet type te verklaren
expliciete_string: !!str 0.5
# Sommige parsers gebruiken taal specifieke tags, zoals deze voor Python's
# complexe nummer type:
python_complex_nummer: !!python/complex 1+2j

####################
# EXTRA YAML TYPES #
####################

# Strings en nummer zijn niet de enige types die YAML begrijpt.
# ISO opgemaakte datum en datumtijd notaties werken ook:
datumtijd: 2001-12-15T02:59:43.1Z
datumtijd_met_spaties: 2001-12-14 21:59:43.10 -5
datum: 2002-12-14

# De !!binary tag geeft aan dat de string een base64-gecodeerde
# binary blob is.
gif_bestand: !!binary |
    R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
    OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
    +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
    AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=

# YAML heeft ook een set type, dat ziet er zo uit:
set:
    ? item1
    ? item2
    ? item3

# Zoals in Python zijn sets gewoon mappen met null waardes;
# bovenstaand is gelijk aan:
set2:
    item1: null
    item2: null
    item3: null
```