Publii CMS

Publii ist ein junges CMS für die Erstellung von statischen Webseiten und insbesondere für statische Blogs. Anders als üblich ist Publii jedoch keine Web-Applikation, sondern das CMS wird als Desktop-Applikation auf Windows oder Mac installiert. Dort können Content Manager statische Web-Auftritte über eine normale Autorenoberfläche erstellen und per Knopfdruck mit dem Server synchronisieren.

Die Webseite von Publii

Ganz neu ist die Idee von Publii nicht, denn mit dem Zeta-Producer ist bereits seit 1999 ein ähnliches System auf dem Markt. Publii kann jedoch vom Aufstieg der Static Site Generatoren und der Wiederentdeckung statischer Webseiten profitieren. Denn während Static Site Generatoren größtenteils noch technische Hilfsmittel für Entwickler sind und keine Autoren-Oberfläche mitbringen, richtet sich Publii als vollwertiges CMS an den End-Anwender. Gegründet wurde Publii von Bob's Yang und Tomasz Dziuda, zwei Gründern und Entwicklern aus Polen.

#Publii für Content-Manager

Für Autoren ist Publii durch eine übersichtliche und modern gestaltete Oberflläche tatsächlich sehr leicht zu bedienen. Die App folgt im Aufbau vielfach einem klassischen CMS, bringt aber auch einige Besonderheiten mit.

Eine Besonderheit von Publii besteht zum Beispiel darin, dass man in der Applikation auch als normaler Autor beliebig viele statische Webauftritte erstellen und verwalten kann. Gleichzeitig kann man für jeden Webauftritt zwischen verschiedenen Themes auswählen und zahlreiche Theme-Eigenschaften wie Farben oder Schriften über eine einfache Oberfläche individualisieren. Auch moderne Optionen wie AMPs (Accelerated Mobile Pages) oder Open Graph lassen sich über die Settings sehr leicht einstellen.

Die größte Besonderheit liegt natürlich im Zugriff auf den Server. Der Webauftritt wird mit der App auf dem Desktop erstellt und muss anschließend im Web veröffentlicht werden. Dazu benötigt Publii entsprechende Verbindungsdaten. Zur Auswahl steht ein eigener Webspace mit verschiedenen FTP-Varianten, oder GitHub Pages, Netlify, Amazon S3 und Google Cloud.

Autorenoberfläche von Publii

Der eigentliche Content wird mit den Menüpunkten "Post", "Tags" und "Menus" erstellt:

  • Post: Über Post können neue Beiträge geschrieben werden. Dazu steht ein übersichtlicher Content-Editor zur Verfügung, der alle Features bietet: Vom normalen Text bis zu Bildern, Videos und Tabellen. Auf der rechten Seite können zahlreiche Details wie Tags, Meta-Daten oder SEO-Eigenschaften eingestellt werden.
  • Tags: Über das Tag-Menü können bestehende Tags verwaltet und neue Tags hinzugefügt werden. Je nach Einstellungen und Themen können hier auch Übersichtsseiten für Tags angelegt werden.
  • Menus: Hier können spezielle Menüs erstellt werden. Dabei wird jeder Menü-Eintrag mit einer Seite, einem Tag oder anderen Zielen verlinkt. Über eine Dropdown-Auswahl kann das Menü einem Platz zugeordnet werden, den das jeweilige Theme dafür vorsieht.

Damit ist die Webseite so gut wie fertig. Publii erweist sich als erstaunlich leicht zu bedienen und es verwandelt das Konzept statischer Website Generatoren sehr überzeugend in ein nutzerfreundlches Autorenwerkzeug.

Hier und da muss man sich allerdings auch mit Nachteilen des Konzepts anfreunden: Zum Beispiel ist man immer auf eine lokal installierte Software angewiesen, um seine Webseite zu bearbeiten. Schnell mal unterwegs mit dem Smartphone sind Änderungen dann eben nicht möglich. Hinzu kommt, dass die Webseite selber zwar absolut performant und sicher ist. Allerdings ist deren Generierung (inklusive Vorschau) recht langsam und schwerfällig. In meinem Test-Fall wurde die Generierung der Preview leider regelmäßig bei 20% abgebrochen. Das sind kleinere Kinderkrankheiten einer noch sehr jungen Software.

#Publii für Entwickler

Publii ist grundsätzlich Open Source (GNU GPL), es gibt bislang allerdings noch kein öffentliches Repository für die Software. Laut den Entwicklern wurde Publii mit dem Application-Framework Electronjs erstellt und basiert damit im Kern auf Chromium und Node.js.

Publii produziert als Ergebnis ausschließlich statische Webseiten und folgt damit dem modernen JAMstack-Trend (JavaScript, APIs und HTML-Markup). Da Publii keine Web-Anwendung, sondern eine Desktop-Applikation ist, müssen auf dem Server auch keine Datenbanken und keine Sprachen wie PHP installiert sein. Es reicht eine Domain, ein Webspace und ein Zugriff zum Beispiel per FTP. Weitere Optionen für die Publikation der Seiten sind Netlify, GitHub Pages, Amazon S3 oder Google Cloud. Die entsprechenden Einstellungen können in Publii vorgenommen werden.

Soweit ersichtlich bietet Publii derzeit noch keine Plugin-Entwicklung an. Es können jedoch eigene Themes erstellt werden. Bei der Theme-Entwicklung nutzt Publii Handlebars, eine semantische Template-Sprache für JavaScript.

Wer mit moderner Theme-Entwicklung vertraut ist, wird kaum Überraschungen finden. Es gibt eine Reihe an Standard-Dateien, die für ein Theme erforderlich sind. Dazu gehören:

  • config.json: Die Haupt-Konfigurations-Datei.
  • index.hbs: Das Template für die Startseite.
  • post.hbs: Das Template für eine Einzel-Seite.
  • tag.hbs: Das Template für einen einzelnen Tag.
  • author.hbs: Das Template für einen Autoren.
  • thumbnail.png: Vorschaubild für das Theme.
  • partials/: Der Ordner für Partials.
  • partials/footer.hbs: Dr Footer.
  • partials/header.hbs: Der Header.
  • assets/css/main.css: Das CSS.

Die Templates können dann mit den typischen Template-Tags, globalen Variablen und Template-Helpern erstellt werden. Ein verkürzter Ausschnitt aus dem Index.hbs-File des Simple-Themes sieht so aus:

{{#each posts}}
    <article>
        <header>
            <h2>
                <a href="{{url}}" class="inverse">
                    {{title}}
                </a>
            </h2>
        </header>
        {{#if excerpt}}
            <p>{{{excerpt}}}</p>
        {{/if}}
        {{#if @config.custom.frontReadMore}}
            <a href="{{url}}" class="u-readmore">
                {{ translate 'post.readMore' }}
             </a>
        {{/if}}
    </article>
{{/each}}

Fertige Themes können einfach in den Theme-Ordner von Publii gelegt werden. Den Speicherort von Publii findet man in den globalen Settings unter dem Burger-Menü rechts oben. Dort kann man alternativ auch einfach den neuen Theme-Ordner per Drag & Drop zu Theme-Galerie hinzufügen.

#Kosten

Publii ist komplett Open Source und kostenfrei. Auf der Publii-Webseite gibt es einen kleinen Market-Place für kostenfreie Themes. Denkbar, dass es in Zukunft auch mal kostenpflichtige Angebote gibt. Als Dienstleister wird auf der Webseite die Agentur Tidycustoms verlinkt, die zu einem der beiden Publii-Gründer gehört.

#Wann macht Publii Sinn?

Publii ist eine sehr attraktive und spannende Alternative für einfache Webseiten und schlichte Blogs. Publii hat alle Vorzüge von statischen Webseiten: Sie sind schnell, kostengünstig und absolut sicher. Gleichzeitig bietet Publii ein gutes und recht vollständiges Autoren-Interface, sodass Publii als richtiges CMS für Endnutzer in Frage kommt. Damit ist Publii bislang eine der ganz wenigen Alternativen zu klasssischen Static Site Generatoren für ein nicht-technisches Publikum.

Natürlich gibt es auch die üblichen Nachteile statischer Webseiten: Es gibt keine Plugins und die Einbindung dynamischer Elemente ist stark eingeschränkt bzw. muss vom Entwickler mit Hilfe der JAMstack-Technologien (Javascript und Api-Einbindungen) realisiert werden. Das schafft natürlich neue Abhängigkeiten von externen Diensten. Die Abhängigkeit von einer Desktop-Applikation ist auch nicht in jedem Fall gewünscht. Daher steht am Beginn des Auswahlprozesses immer die Grundsatz-Frage, ob eine statische Seite inklusive deren Beschränkungen die richtige Entscheidung ist, oder ob doch ein schlankes dynamisches CMS wie zum Beispiel Flat-File-Systeme zum Einsatz kommen soll.

So oder so sollte man beobachten, ob der Trend hin zu statischen Seiten mit dem noch sehr jungen Publii den Sprung zu nicht-technischen Anwender und damit in den Mainstream schafft.

© by Sebastian Schürmanns, 2017 - 2024. All Rights Reserved. Built with Typemill.