summaryrefslogtreecommitdiffstats
path: root/howtos/website.html
blob: b039a2a36f0778cdca1fd92867048532c64ae999 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{% 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 <https://github.com/cholin/cyrax>`_ 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/<branchname>/`` 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 <http://git.spline.de/www>`_ 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 %}