YAML Grundlagen

Ursprünglich stand YAML für „Yet Another Markup Language“ aber seit 2002 verbirgt sich dahinter das Akronym „YAML Ain‘t Markup Language“. Somit definiert sich YAML als eine Auszeichnungssprache, die keine ist. 

YAML ist designed um sehr leicht leserlich zu sein, dass sollten wir beim Programmieren beachten. Wir müssen mit Leerzeichen arbeiten und jeder Wert muss genau untereinander eingerückt sein, um in den gleichen Block übernommen zu werden. Mit — wird der Beginn eines neuen Abschnitts markiert und wie bei allen Programmiersprachen, kann und soll man auch mit YAML Kommentare schreiben, die nicht ausgeführt werden.

Datentypen

In YAML werden die Datentypen automatisch zugewiesen, sehen wir uns ein paar Beispiele von den wichtigsten Datentypen an.

Alphanumerische Daten Typen

Strings können mit einfachen, doppelten oder ganz ohne Anführungszeichen geschrieben werden.

String1: 'Edis Techlab'
String2: "Edis Techlab"
String3: Edis Techlab
Numerische Daten Typen
Integer: 25
Octal: 014
Hexadecimal: 0xC
Float: 3.1415
Exp: 12.302e+5
Boolean: true # true/false oder yes/no oder on/off
Date: 2020-10-16 17:43:21  #ISO 8601  JJJJ-MM-TT  hh:mm:ss
Daten Typen ändern

Die Automatisch zugewiesenen Datentypen können auch Manuel geändert werden. Dafür wird ein doppeltes Ausrufezeichen !! und der Datentyp vor dem Wert geschrieben.

Preis: !!float 25 # Ergibt 25.0
Nummer: !!str 22 # Wandelt Integer in einen String “22”
Aufbau von YAML Daten

Hier sehen wir Beispiele wie eine Datenstruktur in YAML aufgebaut werden kann. Es ist sehr wichtig, dass wenn ein Wert hinter dem Doppelpunkt geschrieben wird, ein Leerzeichen gemacht werden muss. Es empfiehlt sich, wenn man Daten untereinander schreibt, dass man zwei Leerzeichen einrückt.

YAML Datenaufbau

Bei einer Auflistung im Dictionary Format spiel die Reihenfolge der Werte keine Rolle, bei einem Array muss darauf geachtet werden. Frucht[1] = Banane und im zweiten Beispiel Birne.

YAML Array und Dictionary
Umgang mit Strings

YAML strings sind Unicode und benötigen in den meisten Fällen keine Anführungszeichen, wenn wir in unserem String Formatierungszeichen verwenden wie z. B. \n dann muss ein Anführungszeichen verwendet werden da sonst YAML einfach \n als zusätzlich Zeichen sieht und nicht als Zeilenumbruch.

Um die Lesbarkeit in YAML weiter zu erhöhen, ist es möglich den Text auf mehrere Zeilen umzubrechen und in dennoch als eine einzelne Zeile Text zu verwalten. Dazu wird das Zeichen Grösser als > verwendet. Wenn man die Formatierung, die man in YAML erstellt beibehalten möchte, kann man das mit dem | Zeichen lösen. 

Formatierung von Strings
Text: „Text der umgebrochen wird\n“  # in Anführungszeichen

Text: >
Das ist ein Text der hier zwar hier umgebrochen ist, 
aber als ein einzeiliger Text
verwaltet wird.

Text: #Ausgabe
Das ist ein Text der hier zwar hier umgebrochen ist, aber als ein einzeiliger Text verwaltet wird.

Text: |
Das ist ein Text der hier umgebrochen ist, und wir 
die Formatierung
beibehalten wollen.

Text: #Ausgabe
Das ist ein Text der hier umgebrochen ist, und wir 
die Formatierung
beibehalten wollen.

Setzen von Anker

Die Datensammlung von YAML kann mit der Zeit sehr Gross werden und da ergibt es Sinn, dass wir gewisse Variablen wieder verwenden können. Das können wir mit einem sogenannten Anker bewerkstelligen. Damit wir einen Anker definieren können, schreiben wir &Ankername und um ihn wieder auszulesen, verwenden wir *Ankername. Man kann einen Anker auch zu ganzen Objekten erstellen, zum Einfügen wird <<: *Ankername verwendet. Machen wir dazu ein kleines Beispiel.

Pi: &zahlPi 3.141592
WasistPi: *zahlPi
WasistPi: 3.141592    # Die Ausgabe

Autor: &author        # Eine ganzes Objekt
Name: Edi
Wo: Edis Techlab 

Mein Code:
Codezeilen: Hier ist mein schöner Code
<<: *author

Mein Code:            # Die Ausgabe

  Codezeilen: Hier ist mein schöner Code
Name: Edi
Wo: Edis Techlab 

Raspberry Pi:

* https://amzn.to/2J3w8j4Raspberry Pi 3 Starterset

* https://amzn.to/2Uo9tDuRaspberry Pi 3

* https://amzn.to/3djpovzRaspberry Pi 4 -1GB Kit

* https://amzn.to/2QDoiBc –  Raspberry Pi 4 -1GB

* https://amzn.to/2WAgkMORaspberry Pi 4 -2GB Kit

* https://amzn.to/2Up5EhjRaspberry Pi 4 – 2GB

* https://amzn.to/2wr0rxDRaspberry Pi 4 -4GB Kit

* https://amzn.to/2UobpfeRaspberry Pi 4 – 4GB

Micro SD Speicherkarten:

* https://amzn.to/399tX8cSanDisk Ultra 16GB

* https://amzn.to/2UrI5Ex SanDisk Ultra 32GB

* https://amzn.to/3dmbo40SanDisk Ultra 64GB

* https://amzn.to/2J7rFfvSanDisk Ultra 128GB

* https://amzn.to/2U68eKaSanDisk Ultra 256GB

* https://amzn.to/2U68fxISanDisk Ultra 512GB

Netzteile:

* https://amzn.to/3beWY3V – 2er-Pack USB Ladegerät 5V/2A

* https://amzn.to/398WzP9 – Raspberry Pi 4 Netzteil, USB-C, 5.1V, 3A

* https://amzn.to/2wsS8Bh  – HomeSpot Netzteil 3A/5V inkl. 1,5M Micro USB Kabel 

All links with "*" are Amazon affiliate links. I receive a small portion of the sales when you place an order, at no extra cost to you.

★☆★★ If you would like to support the channel via ★☆★★

or via

Twint Spenden Code