diff options
Diffstat (limited to 'howtos/cyrax.html')
-rw-r--r-- | howtos/cyrax.html | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/howtos/cyrax.html b/howtos/cyrax.html new file mode 100644 index 0000000..5ea4638 --- /dev/null +++ b/howtos/cyrax.html @@ -0,0 +1,100 @@ +{% meta %} + title: Cyrax - ein statischer Webseitengenerator + howto: True +{% endmeta %} + +{% block content %} +{% filter markdown %} +# Cyrax + +Cyrax ist ein statischer Webseitengenerator. Es hat sehr starke Ähnlichkeiten zu +Hyde oder Jekyll, ist aber im Gegensatz zu diesen ziemlich schlank und hat +deutlich weniger Abhängikeiten. Cyrax benutzt die Template-Engine Jinja2. Es +können aber unter anderem weitere Markup-Sprachen wie Markdown, Rst oder Textile +verwendet werden. + +Um in Cyrax ein Website zu generieren, müssen sogenannte Models angelegt werden. +Es gibt in Cyrax vier Models: Post, Tag, Page und NonHTML. Beim Generieren der +Website durchläuft Cyrax das Verzeichnis und versucht jede Datei einem Model +zuzuweisen. In jener Reihenfolge wird überprüft ob die Datei den +Modelanforderungen entspricht. Ausgenommen beim traversieren sind unsichtbare +Dateien, sowie Dateien die mit einem Unterstrich anfangen. + +1. Post + + Ein Post zeichnet sich dadurch aus, dass im Pfad ein Datum vorkommt. Dies kann + entweder in Form von Bindestrichen oder durch Ordnerhierachien geschehen. Der + genaue Regex hierfür ist der folgende: + + (.*?)(\d+)[/-](\d+)[/-](\d+)[/-](.*)$ + + Beispiele: + + * blog/2012/05/15/my-awesome-post.html + * 2012/05/15/my-awesome-post.html + * 2012/05-15-my-awesome-post.html + * 2012-05-15-my-awesome-post.html + + Die Besonderheit von Posts ist, dass es ein Datum anhand des Pfades hat und es + daran auch intern sortiert wird. Desweiteren können Posts mit Tags versehen + werden. + +2. Tag + +3. Page + + Pages sind normale statische Html-Seiten. Erkannt werden diese durch die + html-Dateiendung. + + +4. NonHTML + + NonHTML ist das Gegenstück zur Page. Eine Datei wird genau dann diesem Model + zugewiesen, wenn es nicht auf html im Namen endet. Sinnvoll zum Beispiel für + Atom-Feeds oder ähnliches. + +Auf alle Models kann über das Site-Object in Jinja2-Templates zugegriffen +werden. + +Beispiel für Pages + + {%raw%} + {% for page in site.pages %} + {{page.title}} + {% endfor %} + {%endraw%} + +Damit mit Cyrux eine statische Website generiert werden kann, müssen folgende +Dateien vorhanden sein: + +* *settings.cfg* - Konfigurationsdateibeispiel + + author: Spline + title: Spline + url: http://www.spline.de/ + +* *_base.html* - Basislayoutbeispiel + + {% raw %} + <!DOCTYPE html> + <html lang="en"> + <head> + <meta charset="utf-8" /> + <title>{{ site.title }}{% block title %}: {{ entry.title }}{% endblock %}</title> + </head> + <body> + <!-- Beispielmenüleite --> + <ol> + {% for page in site.pages%} + <li><a href="{{page.get_url()}}">{{page.title}}</a></li> + {% endfor %} + </ol> + + {% block content %}{% endblock %} + </div> + </body> + </html> + {% endraw %} + +{% endfilter %} +{% endblock %} |