{% meta %} title: Spline.de-HowTo {% endmeta %} {% block content %} {% filter rst %} Allgemein ========= Die Spline-Website wird mittels dem statischen Webseiten-Generator Cyrax erstellt. Dieser ist in Python geschrieben und könnte theoretisch auch via ``pip`` installiert werden. Leider haben wir diesen ein wenig erweitert. Unsere Änderungen sind aber noch nicht in die Mainline zurückgeflossen und so muss Cyrax entweder über das `Git-Repo `_ selber installiert werden oder die Generierung den Spline-Server überlassen. Cyrax lokal installieren ------------------------ .. sourcecode:: text $ git clone https://github.com/cholin/cyrax $ cd cyrax $ python2 setup.py install $ cd .. $ git clone git://git.spline.de/www/www $ cd www $ cyrax -w Die generierte Website kann nun via Browser auf http://localhost:8000 betrachtet werden. Wer einen tieferen Einblick in Cyrax bekommen will, kann sich folgendes HowTo angucken: `Cyrax - ein statischer Webseitengenerator <{{url_for('howtos/cyrax')}}>`_ externe Generierung ------------------- .. sourcecode:: text $ git clone ssh://git@git.spline.de/www/www $ cd www $ git checkout -b new $ git push origin new Der eigene Branch kann nun auf den Spline Server unter ``http://spline.de/_branch//`` bestaunt werden. Hinterher kann (und sollte) der Branch mit ``git push origin --delete new`` gelöscht werden. Blogpost erstellen ================== Blogposts können wie alle anderen Models in Cyrax in verschiedenen Markup-Sprachen verfasst werden. Zur Auswahl stehen zur Zeit: rst, markdown, textile und rfc3339. Um einen neuen Blogpost nun zu erstellen, muss das `Git-Repository `_ gecloned werden und in das Verzeichnis *blog* gewechselt werden. Die Verzeichnisstruktur ist hier datumbasierend. Das heißt Cyrax erkennt an den Ordnernamen das Datum des Blogposts. Die Datei ``01-01-sample.html`` im Ordner ``blog/2012`` würde somit für das Datum ``01.01.2012`` mit der Url ``blog/2012/01-01-sample.html`` versehen werden. Die Blogposts selbst sind immer nach folgendem Schema aufgebaut. Zuerst erfolgt gibt es Meta-Ebene. Hier können Variablen wie der Titel oder Tags gesetzt werden. Danach folgt der eigentliche Blogposts. Mittels filtern können verschiedene Markupsprachen ausgewählt werden. Beispiel -------- {% raw %} .. sourcecode:: text {% meta %} title: lorem ipsum tags: [lorem, ipsum] {% endmeta %} {% mark body %} {% filter markdown %} Lorem Ipsum Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. {% endfilter %} {% endmark %} {% endraw %} Service erstellen ================= Um einen neuen Service auf der Website hinzuzufügen, muss eine neue *Page* (Model) im ``services``-Ordner erstellt werden. Diese hat ähnlich wie bei Blog-Posts einen Meta und einen Block-Abschnitt. Erforderliche Meta-Informationen sind der Titel und die Beschreibung. Soll der Service nur in der Startliste angezeigt werden, so kann der Block-Abschnitt ignoriert werden, da dieser nur für eine eigene Unterseite innerhalb der Website gebraucht wird. Zwingend ist dann aber der Direktlink als ``link``-Variable. Für die Ipsum-Service würde es folgedermaßen aussschauen: {% raw %} .. sourcecode:: text {% meta %} title: ipsum description: lorem ipsum service description link: http://ipsum.spline.de {% endmeta %} {% block content %} {% endblock } {% endraw %} {% endfilter %} {% endblock %}