Version 2 (modified by sven, 11 years ago) (diff)

Anmerkung zur Einfachheit von YAML

Das Was gibt es Neues?-System

Die Seite News listet Neuigkeiten in Blog-ähnlicher Form auf. Mit der neuen Homepage wurde entschieden, dass es sehr sinnvoll wäre, wenn diese Einträge auch in einem Aufklappmenü in der Header-Navigation direkt zugänglich wären.

Damit das funktioniert, müssen die Einträge in maschinenlesbarer Form vorliegen. Da die Benutzung einer gescheiten Blog-Software seitens Heribert abgelehnt wird, hab ich mich für eine Hybridlösung entschieden, in der die Menüeinträge, die direkt auf der News-Seite in einer sehr einfachen Syntax notiert sind, direkt aus dieser automatisch extrahiert werden (!!).

Syntax

Die Syntax nennt sich YAML. Ich habe dieses Auszeichnungssystem wegen seiner Einfachheit ausgewählt:

- titel: "Gamma10"
  text: "The Gamma10-Printer has arrived at the museum"
  link: "#November_2012"
	
- titel: "Gamma55"
  text: "A new new acquisition"
  link: "#July_2012"

- titel: "UNIVAC Software discovery"
  text: "A bunch of punch cards"
  link: "#April_2012"

Die Regeln sind einfach:

  1. Jeder Menüeintrag bekommt einen Bindestrich direkt am Zeilenanfang (erste Spalte) und besteht aus einem Triplet an Daten titel, text und link. Einrückungen sind das wichtigste. Nur Leerzeichen, keine Tabulatoren verwenden. Wenn die Form nicht mehr der obigen entspricht, wird es nicht funktionieren. Das Einfache an dem System ist, dass eben nur die Einrückung relevant ist.
  2. Diese werden jeweils vertikal bündig notiert. Hinter dem Doppelpunkt steht der jeweilige Wert, der in doppelte Anführungsstreichen eingeschlossen wird.
  3. Bedeutung von titel: Die Linkbeschriftung in Großbuchstaben, Bedeutung von text: Die kleine Beschriftung drunter als Fließtext, Bedeutung von link: Linkziel. Wenn das Linkziel mit einer Raute # anfängt, dann wird es als Überschriftsziel direkt in der News-Datei interpretiert.

Eine falsche Formatierung, die nicht den YAML-Regeln entspricht, sollte zu der Ausgabe einer Fehlerbox auf jeder Seite führen.

Äußere Syntax

Nur zum weiteren Verständnis: Der für das Menü relevante Text in der Neuigkeiten-Seite liest sich etwa so:

$neues_menu = <<< MENU

- hier die Anweisungen
- gemäß obiger Syntax


MENU;
// ende der menue-Eintraege

Wichtig ist, dass an dieser äußeren Form nichts verändert wird. Technisch handelt es sich um den PHP-Heredoc-Syntax, also einen Mehrzeilen-String, der durch die Kennung MENU wieder beendet wird. Das letztere MENU muss dabei in obiger Form als einzige Anweisung am Anfang der Zeile stehen, sonst gibt es auch Fehler.

© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License