CMS

Pico: Freies, dateibasiertes Content Management System für PHP-Entwickler

2. Juli 2013
von

Pico ist der Name eines recht neuen CMS, welches komplett ohne Datenbank daherkommt. Der Entwickler Gilbert Pellegrom bezeichnet es zwar als “stupidly simple”. Das gilt aber nur für die Zielgruppe der Entwickler. Wer also mit PHP keine Probleme hat und seine Texte gern mit Markdown schreibt, der sollte sich Pico in jedem Fall mal ansehen.

filebased-folder

Pico: keine Datenbank, Seiten als einzelne Dateien

Pico ist ein CMS, das wie kaum ein anderes für Personen geeignet ist, für die hierarchische Ordnerstrukturen die beste Ordnungsform darstellen, sich mit PHP gut auskennen und Markdown für die beste Form der Textauszeichnung überhaupt halten. Alle anderen, insbesondere der durchschnittliche Kleinseitenbetreiber, sollte eher auf eine der etablierteren Plattformen, allen voran WordPress setzen.

pico-website

Dabei ist Pico keine schlechte Idee; nicht, dass das so rüberkommt. Pico setzt PHP 5.2.4 und einen Apache-Server mit mod_rewrite voraus. Das Anlegen einer Website mit Pico ist in der Tat sehr simpel. Installiert werden muss gar nichts. Lediglich der Download des CMS mit nachfolgendem Entpacken und Uploaden der entstandenen Ordnerstrukturen auf den eigenen Webserver ist erforderlich. Das System ist bereit.

Die eigenen Inhalte werden nun als Markdown-Dateien mit der Endung .md in den dafür vorgesehenen Ordner namens content abgelegt. Eine Datei mit der Bezeichnung index.md funktioniert wie das entsprechende HTML-Pendant und bietet den Standardeinsprungpunkt, wenn die Website mit dem Browser aufgerufen wird. Ebenso lassen sich Unterordner mit entsprechenden Index-Dateien ausstatten, um die URL, etwa www.testseite.de/content/unterordner/index.md als www.testseite.de/unterordner/ aufrufen zu können.

Wie in Markdown üblich, können die entsprechenden Dateien auch HTML-Befehle enthalten. Diese werden beim Parsing so übernommen und entsprechend als solche angezeigt. Eine kleine Besonderheit ist die als Option empfohlene, aber im Grunde zwingend sinnvolle Erweiterung des Kopfes einer jeden Markdown-Datei um Meta-Informationen, die man später im Theme wieder auslesen kann. Das sieht beispielsweise so aus:

1
2
3
4
5
6
7
/*
Title: Welcome
Description: This description will go in the meta description tag
Author: Joe Bloggs
Date: 2013/01/01
Robots: noindex,nofollow
*/

Hat man seine Website nun aus einzelnen MD-Dateien und eventuellen Unterverzeichnissen per FTP-Upload verfügbar gemacht, stehen sämtliche Seiten per Einzelaufruf der entsprechenden URL zur Ansicht bereit. Vernetzungen untereinander oder gar eine Navigation beinhalten sie indes nur, wenn man das in jeder einzelnen Datei manuell so vorgesehen hat. An dieser Stelle kommt Picos Theming ins Spiel.

Pico: Themes auf Basis der Twig-Engine

Theming-Engines für PHP gibt es etliche. Der Pico-Entwickler entschied sich für den recht frischen Ansatz aus der Feder von Fabien Potencier, seines Zeichens Entwickler des Symfony-Frameworks, mit dem interessanten Namen Twig. Symfony setzt seit Version 2 ebenfalls auf Twig.

twig

Twig wird in ähnlicher Weise an den Start gebracht wie Pico selbst: Download, Entpacken, Upload. Im Falle von Twig kommt noch die Einbindung hinzu. Themes auf Twig-Basis können in Dateien mit HTML-Endung geschrieben werden, auch XML ist gut. Grundsätzlich ist ein Twig-Template eine reine Textdatei.

WordPress-Theme-Anpassern wird Twig nicht völlig unbekannt vorkommen. Ähnlich wie in Automattics Marktführer werden auch in Twig innerhalb des eigentlichen HTML-Codes Funktionslogik untergebracht. Twig kennt Variablen, Expressions und Tags. Ein minimaler Ansatz für ein Twig-Theme wäre folgender:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
    <head>
        <title>My Webpage</title>
    </head>
    <body>
        <ul id="navigation">
        {% for item in navigation %}
            <li><a href="{{ item.href }}">{{ item.caption }}</a></li>
        {% endfor %}
        </ul>
 
        <h1>My Webpage</h1>
        {{ a_variable }}
    </body>
</html>

Verschiedene beliebte IDEs, etwa Sublime Text, Notepad++, Coda, Eclipse und etliche mehr unterstützen das Syntax-Highlighting und die Autovervollständigung der Twig-Syntax. Theming mit Twig wird PHP-Kenner nicht vor Probleme stellen, ist aber für Otto Durchschnittsseitenbetreiber keine schmerzfreie Alternative.

Sowohl Pico, wie auch Twig sind kostenfrei verwendbar. Pico steht unter MIT-, Twig unter BSD-Lizenz

Fazit: Ist das Templating erledigt, kann Pico auch von weniger erfahrenen Usern verwendet werden, sofern diese Markdown schreiben und einen FTP-Client bedienen können. Das wird allerdings eher eine Minderheit ansprechen. Richtig gut geeignet ist Pico für die Dokumentation von Projekten. Überall da, wo ohnehin mit Markdown gearbeitet wird, ist Pico eine valide Option, diese Dateien strukturiert per Web zugänglich zu machen. Insofern würde ich den Einsatzzweck eher von dieser Seite her betrachten. Haben Sie einen Sack voll Markdown, den Sie per Website präsentieren wollen, dann schauen Sie Pico näher an. Ansonsten müsste man schon expliziter Fan sein…

Übrigens: Pico ist nicht zu verwechseln mit picoCMS.

Links zum Beitrag

ist seit 1994 im Netz unterwegs, aber bereits seit fast 30 Jahren in der IT daheim. Seit 2008 schreibt er für Dr. Web, seit 2012 ist er Chefredakteur des Magazins. Man findet ihn auch auf Twitter und Facebook, aktiver ist er allerdings auf Google+.

Tags: , , , , ,

Ein Kommentar? Schön!

Wir freuen uns immer über Leser, die durch nützliche und konstruktive Beiträge zum Thema eine Diskussion anstoßen oder den Artikel mit weiteren Informationen anreichern. Alle Kommentare werden in diesem Sinne moderiert. Zum Kommentar-Fairplay gehört für uns auch der Einsatz von rel="nofollow". Bitte verwenden Sie zudem als Namen weder eine Domain noch ein spamverdächtiges Wort. Vielen Dank!