Willkommen bei Pico

Pico ist ein erstaunlich einfaches und schnelles Flat File CMS.

Anforderungen

Pico benötigt webspace mit PHP 5.2.4 oder höher. Außerdem muss mod_rewrite aktiviert sein. Eine Datenbank ist nicht erforderlich.

Installation

  1. Zunächst lädt man die aktuelle Version von Pico auf den Computer und entpackt das Download-Archiv.
  2. Dann lädt man die Dateien mit Hilfe eines FTP-Programmes (z.B. FileZilla) auf den Webserver.
  3. Eventuell muss die Datei .htaccess angepasst werden.

Inhalte erstellen

Wie bereits erwähnt ist Pico ein Flat File CMS. Das beudeutet in diesem Fall, dass es ein Verwaltungs Tool gibt und man sich auch nicht mit der Installation einer Datenbank befassen muss. Man erstellt einfach Dateien im .md -Format im Verzeichnis "content" - das sind dann schon die Inhaltsseiten. Diese Datei zum Beispiel trägt den Namen index.md und wird als Startseite des Systems angezeigt.

Wenn man im Verzeichnis content ein Unterverzeichnis erstellt (z.B. content/sub) und dort eine Datei index.md einfügt, dann kann man dieses Verzeichnis mit der URL http://yousite.com/sub erreichen. Wenn man innerhalb des Unterverzeichnisses sub eine weitere Seite haben will, dann erstellt man einfach eine Datei mit dem entsprechenden Namen (z.B. content/sub/page.md) und man kann mit http://yousite.com/sub/page auf diese Datei zugreifen. Hier folgen einige Beispiele zur Verortung von Inhaltsdateien und dazu die jeweiligen URL:

Physical LocationURL
content/index.md/
content/sub.md/sub
content/sub/index.md/sub (same as above)
content/sub/page.md/sub/page
content/a/very/long/url.md/a/very/long/url

Wenn eine Datei nicht gefunden wird, so zeigt das Pico system Die Seite content/404.md an.

Auszeichnungssprache für Textdateien

Die Textdateien werden im Markdown -Format erstellt. Man kann aber auch gewöhnlichen HTML-Code verwenden.

An den Anfang so einer Textdatei im Markdownformat kann man einen speziellen Block mit Kommnentaren und spezielen Seitenattributen einfügen, zum Beispiel:

/ *
Title: Willkommen
Description: Diese Beschreibung wird in den meta description Tag eingefügt
Author: Joe Bloggs
Date: 2013/01/01
Robots: noindex,nofollow
*/

Diese Werte werden dann an Stelle der {{ meta }} Variablen des Themes (siehe unten) eingefügt.

Es gibt außerdem bestimmte Variablen, die man in den Texdateien nutzen kann::

Themes

Man kann Themes im im Verzeichnis "themes" erstellen. Dort befindet sich bereits das Theme default, dass gut als Vorlage für eigene Themes geeigent ist. Pico als Templateengine Twig. Das verwendete Theme kann in der Datei config.php mit Hilfe der Variabelen $config['theme'] gesetzt werden.

Alle Themes müssen eine Datei index.html enthalten, mit der die HTML-Struktur des Themes definiert wird. Hier folgt eine Übersicht zu den Twig Variablen, die in der Templatedatei verfügbar sind:

Die Zusammenstellung (collection) Pages kann zum Beispiel so genutzt werden:

<ul class="nav">
    {% for page in pages %}
    <li><a href="{{ page.url }}">{{ page.title }}</a></li>
    {% endfor %}
</ul>

Plugins

Siehe hierzu http://pico.dev7studios.com/plugins

Konfiguration

Man kann die PICO Standardeinstellungen überschreiben (und eigene benutzerdefinierte Einstellungen hinzufügen), in dem man die Datei config.php bearbeitet. Die Datei config.php enthält bereits eine Auflsitung aller Standardwerte in Kommentarform. Um eine Einstellung zu überschreiben, entfernt man einfach die Kommentarmarkierung und setzt seinen eigenen Wert ein.

Dokumentation

Weitere Informationen zu Pico sind unter http://pico.dev7studios.com/docs verfügbar.

Blogging mit Pico

Um mit Pico einen Blog zu erstellen geht man am besten so vor:

{% if is_front_page %} <!-- Front page lists all blog posts -->

    <div id="posts">
    {% for page in pages %}
        {% if page.date %} <!-- Note we check for Date field (posts) here -->
        <div class="post">
            <h3><a href="{{ page.url }}">{{ page.title }}</a></h3>
            <p class="meta">{{ page.date_formatted }}</p>
            <p class="excerpt">{{ page.excerpt }}</p>
        </div>
        {% endif %}
    {% endfor %}
    </div>

{% else %} <!-- Single page shows individual blog post -->

    <div class="post">
        {% if meta.title %}<h2>{{ meta.title }}</h2>{% endif %}
        <p class="meta">{{ meta.date_formatted }}</p>
        {{ content }}
    </div>

{% endif %}