Grav CMS

WordPress ist das beherrschende CMS im Internet. Daneben gibt es aber natürlich noch viele andere System, wie z.B. Typo3 oder Contenido. Diese sind aber noch umfangreicher als WordPress und deshalb nicht unbedingt für jedes Projekt geeignet.

Ich möchte hier ein System vorstellen, dass mit wenigen Voraussetzungen auskommt (lediglich PHP 5.5.9 muss vorhanden sein), allerdings in der Grundversion nur wenige Features mitbringt. Wie bei CMSen üblich, kann man aber vieles nachinstallieren.
Grav enthält wesentlich mehr Möglichkeiten, als ich hier in einem Blogartikel vorstellen kann. Mehr vielleicht in späteren Artikeln.

Die Installation

Die Installation von grav ist sehr einfach. Man lädt sich das “Grav Core” zip-Paket auf einen Rechner, packt es aus und lädt die Dateien auf einen Server. Fertig:

Benutzeroberfläche

Für die Arbeit mit grav benötigt man keine Benutzeröberfläche, alle Einstellungen und Inhalte können mit einem einfachen Texteditor erstellt werden.
Es existiert ein Admin-Plugin, das die Verwaltung vereinfacht. Im Zuge dieser Einführung ist es allerdings sinnvoller, selber Hand an die Verzeichnisse und Dateien zu legen, um die Zusammenhänge zu verstehen.

Seiten hinzufügen

Wie kommen jetzt die Inhalte auf die Webseite? Wie bereits erwähnt enthält der Kern (Grav Core) keinen Editor oder eine andere Benutzeroberfläche. Stattdessen werden direkt auf dem Server Textdateien erstellt und bearbeitet — daher der Name “Flat-File-System”. Grob zusammengefasst funktioniert es so:

Im Verzeichnis …/user/pages/ wird für jede Seite (“Page”) ein Verzeichnis angelegt und in diesem Verzeichnis mindestens die Datei default.md mit dem Inhalt der Datei:

Die Dateien default.md müssen noch keinen Inhalt haben. Bereits jetzt kann man die Seiten im Menü vorfinden:

Inhalte hinzufügen

Das Wichtigste an eine Webseite sind natürlich die Inhalte. Diese werden wie oben erwähnt direkt in Dateien gespeichert. Das genutzte Format ist “Markdown”, eine relativ einfach zu merkende Auszeichnungssprache:

= Heading 1
== Heading 2
=== Heading 3
==== Heading 4
===== Heading 5
====== Heading 6
** Fett **
_Kursiv_
![Alternativtext](Bild-URL "Bildtitel hier")

Das sind nur einige Beispiele, eine vollständige Übersicht gibt es bei Wikipedia. Als kleines (wenn auch nicht schönes) Beispiel, die Kontaktseite mit dem Standard-Theme:

## Kontakt

#### Post
Beispielstraße 1
12345 Beispielort

####Email
beispiel@beispiel.de

Die tatsächliche Darstellung hängt vom installierten Theme ab.

Seitenlayouts

Grafiken

Themes

Plugins

Community