Die Auflistung der Typen ist nicht abscließend. \\ Es gibt auch noch weitere und auch weitere Konstrukte
====== Allgemein =======
* Ebenen werden durch Einrücken definiert
* Eingerückte Elemente unterhalb eines Elements einer höheren Ebene sind Kindelemente dieses Elements
* Kindelemente müssen vom gleichen Typ sein
* man kann nicht Listen und Dictionaries in der gleichen Kindebene mischen
====== Syntax ======
===== Kommentare =====
* Alles nach einem # auf der gleichen Zeile ist ein Kommentar
===== Lists =====
* Listenelemente werden durch das definieren eines Listenelementes begonnen
* Listenelemente werden durch "-" markiert
* Zwischen "-" und Listenelement muss ein Leerzeichen sein
* Alles was Teil des Listenelementes ist muss eingerückt relative zum "-" sein welcher das Listenelement markiert
\\
Listen werden implizit definiert, in dem einfach ein Listenelement definiert wird:
- eins
- zwei
Ist eine einfache Liste mit 2 Elementen
\\ \\
Listen können Teil/Kinder von anderen Elementen sein:
Autos:
- Porsche
- Trabant
- Opel
Fahrer:
- Tanja
- Peter
- Sibile
2 Dictionaries: \\
* Autos mit den Listeneinträgen "Porsche", "Trabant" und "Opel"
* Fahrer mit den Listeneinträgen "Tanja","Peter","Sibile"
\\ \\
Listen können anderer Elemente als Kind beinhalten:
- Porsche: Tanja
Trabant: Peter
Opel: Sibile
- Kleinbus: Petra
LKW: Dieter
In diesem Fall ist das oberste Element eine Liste mit 2 Einträgen, die jeweils ein Dictionary enthalten - das erste hat 3 Einträge, das 2. 2.
\\ \\
Alternative Schreibweise:
-
Porsche: Tanja
Trabant: Peter
Opel: Sibile
-
Kleinbus: Petra
LKW: Dieter
In diesem Fall sind Listeneinträge und der Inhhalt des Listeneintrags voneinander abgesetzt, das Ergebnis ist aber das gleiche wie bei dem vorhergehenden Beispiel.
===== Dictionary =====
* Dictionaries werden eingeleitet, in dem einfach ein Key:Value-Pair definiert wird
* Zwischen dem "Key:" und dem Value muss ein Leerzeichen sein -> "Key: Value"
Vorname: Dieter
Nachname: Fischer
\\ \\
Sie können Teil anderer Elemente sein:
- Porsche: Tanja
Trabant: Peter
Opel: Sibile
- Kleinbus: Petra
LKW: Dieter
===== Scalare/Strings =====
* Unformatierter Text (auch in Elementen) kann einfach hintereinander geschrieben werden
* oder über mehrere Zeilen verteilt wenn jede Zeile auf dem gleichen Einzugslevel ist
* in diesem Fall erzeugt jeder Zeilenumbruch ein Leerzeichen
*
Hintereinanderweg:
Bla Blub Bla
Ergibt den String: "Bla Blub Bla"
\\ \\
Verteilt über mehrere Zeilen, alle mit dem gleichen Indention-Level:
freitext: Bla
Blubs
Trala
Ergibt den String: "Bla Blub Bla"
\\ \\
Mit Zeilenumbrüchen:
freitext: >
Bla
Blubber
Blubs
Trala
Ergibt: "freitext": "Bla Blubber\n Blubs\n Trala\n"
Der Unterschied ist das ">"-Zeichen.
Alles was das gleiche Intendion-Level hat wird durch Leerzeichen getrennt, alles andere (anderes Indention-Level) durch Zeilenumbruch + Leerzeichen.
\\ \\
Behalte die Formatierung bei:
freitext: |
Bla
Blubber
Blubs
Trala
Ergebnis: "Bla\nBlubber\nBlubs\n Trala\n" \\
Jede Zeile wird als Zeile behandelt (erzeugt einen Zeilenumbruch), jedes Einrücken wird als Einrücken behandelt. \\
Das Ergebnis ist also 1:1.
Man kann Scalare auch in " schreiben:
freitext: "Hallo du Mensch \x0d"
Ergibt: Hallo du Mensch r \\ \\
Escapte Zeichensequenzen werden bei der Nutzung von " aufgelöst. \\
Ist ein in " gefasster String über mehrere Zeilen verteilt, wirkt sich jeder Zeilenumbruch als Leerzeichen aus. \\
Innerhalb der "" muss die Indention nicht eingehalten werden (es kann also auch Text weiter links stehen als das Element zu dem er gehört).
\\ \\
Schreibweise in ':
freitext: 'Hallo du Mensch \x0d'
Ergibt: Hallo du Mensch \\x0d\\ \\
Escapte Zeichensequenzen werden bei der Nutzung von ' nicht aufgelöst - sonder ggf. das Steuerzeichen "\" ecsaped. \\
Ist ein in ' gefasster String über mehrere Zeilen verteilt, wirkt sich jeder Zeilenumbruch als Leerzeichen aus. \\
Innerhalb der '' muss die Indention nicht eingehalten werden (es kann also auch Text weiter links stehen als das Element zu dem er gehört).
===== Zahlen ======
* Werden im Prinzip einfach so geschrieben
Beispiel Ganzzahl:
1
\\
Beispiel Fließkommazahl:
1.3
====== Informationen ======
* Standard: http://yaml.org/spec/