C3D2-Web
Über C3D2-Web
C3D2-Web ist die neue Website für http://www.c3d2.de/
Bevor zu viele Leute enttäuscht werden, soll diese erstmal testweise ausgerollt werden, damit an der Seite interessierte Leute damit rumexperimentieren können.
Wo?
SVN
Subversion bietet uns praktisch Wiki-Funktionalität:
- Jeder darf bearbeiten
- Änderungen sind verfolgbar
Um mitzumachen kann man sich das ganze Paket mit folgendem Befehl holen:
svn co svn://pulsar.digital.udk-berlin.de/c3d2-web
Danach hat man ein Verzeichnis c3d2-web/ auf Platte, mit dem man herumexperimentieren kann. Um es auf den neuesten Stand zu bringen, reicht es in diesem Verzeichnis den folgenden Befehl auszuführen:
svn up
Für die aktive Beteiligung braucht man natürlich einen Account mit Schreibrechten. Für einen solchen muss man nur Sven benachrichtigen. Nach diesem Account wird beim nächsten svn ci gefragt.
Web
Bald gibt es auf irgendeinem Webserver eine laufende Version, die von einem Cronjob stündlich neu gebaut wird...
Bearbeiten
Während das hier alles nach viel aussieht, gibt es den entscheidenden Vorteil: XML ist selbsterklärend!
Grundlegendes zum Umgang
Verzeichnis | Bedeutung |
---|---|
www/ | Hier hinein kommen die HTML-Dateien. Daneben gibt es bereits CSS- und Bildchen-Dateien. |
xsl/ | Hier residieren die Definitionen, aus dem XML-Inhalt XHTML-Webseiten und RSS-Feeds zu bauen. |
content/ | XML-Dateien mit Inhalten |
Den gewöhnlichen Autor interessieren eigentlich nur die Dateien in content/. Dort kann er die XML-Dateien nach unten genannten Schemata bearbeiten. Damit immer gültiges XML rauskommt, sei das Programm xmllint (oft in libxml2 paketiert) empfohlen.
Zeichensätze
Die sind wichtig. Alle XML-Dateien werden als UTF-8 kodiert. Für vim-Benutzer mit ISO8859-Terminal:
:set termencoding=latin1 :set fileencoding=utf8
Build
Um zu schauen, wie sich die eigenen Änderungen machen, gibt man im c3d2-web/-Verzeichnis make (unter *BSD: gmake) ein. Dann werden mithilfe xsltproc (oft in libxslt paketiert) in Windeseile in www/ die html- und rss-Dateien gebaut.
Beim Build-Prozess wird http://www.ccc.de/updates/chaosupdates.rdf für die Seitenleiste gesaugt. Das passiert aber nur einmal, bis man make clean ausführt.
News schreiben
News befinden sich in der Datei c3d2-web/content/news.xml. Hier fügt man im <news/>-Element ganz oben ein neues <item/> ein.
Das sieht dann so aus:
<?xml version="1.0" encoding="UTF-8"?> <page title="News"> <news> <item title="Atom-Powered Robots Run Amok" date="Tue, 23 May 2038 23:05:23 CEST" nicedate="Dienstag, 23. Mai" author="Fnordic walker" category="Allgemein"> <p> <image class="left" title="Robots running amok">http://www.cnn.com/breaking_news/20380523_23.png</image> Asimov's First Law horribly violated! </p> </item> [alte news-items] </news> </page>
<item/>-Attribute
Attribut | Beschreibung |
---|---|
title | News-Titel |
date | News-Datum in standardisierter Form, z.B. für RSS-Feeds und automatisierte Verarbeitung |
nicedate | News-Datum, wie es auf der Website angezeigt werden soll |
author | Wer hats geschrieben? |
category | Eine Kategorie (sowas hatte die alte Seite auch) |
Inhalt
Den sollte man in ein <p/> einschliessen. Bilder kann man mit class="left" für linksbündige oder class="right" für rechtsbündige Bilder versehen. Für weitere, erlaubte Elemente, siehe Seiten bearbeiten.
Neue Seite erstellen
Zuerst erstellt man eine neue XML-Datei in content/ nach folgendem Schemata:
<?xml version="1.0" encoding="UTF-8"?> <page title="Warum wir leete Haxxorz sind" pagetitle="Warum?"> <p> Wir sind einfach cool! </p> </page>
Natürlich sind mehrere <p/>-Elemente möglich.
<page/>-Attribute
Attribut | Beschreibung |
---|---|
title | Seitentitel |
pagetitle | Seitentitel für die Navigationsleiste |
Makefile bearbeiten
In der Makefile fügt man seinen Dateinamen ohne Pfad und Erweiterung an die Zeile mit CONTENT= an. Weiterhin kopiert man eine Regel für eine andere Seite für seine, zum Beispiel die für www/wiki.html.
Dazu bearbeitet man content/navigation.xml. Dort erstellt man ein neues <file/>-Element mit dem Dateinamen der Seite ohne Pfad und Erweiterung. Als Linktitel wird das pagetitle-Attribut der entsprechenden Seite verwendet.
Seiten bearbeiten
In <page/> dürfen folgende Elemente auftauchen:
<pre/>
Hier werden Inhalte wie eingegeben formatiert. Geeignet für Skripte, Konsolenausgaben, ...
<pre>% uname -sr FreeBSD 6.0-STABLE</pre>
<p/>
<p>Ein Absatz. Mindestens einer wird empfohlen.</p>
<image/>
<image class="right" title="Linux-Unfug-Tag">http://www.linux-unfug-tag.de/logo.png</image>
Attribut | Beschreibung |
---|---|
class | Art der Darstellung, entweder left oder right |
title | Hinweis, wird in title und alt gesteckt |
<link/>
<link>http://www.ccc.de/</link> <link href="http://www.ccc.de/">CCC</link>
Attribut | Beschreibung |
---|---|
href | Linkziel, falls ausgelassen wird der Inhalt verwendet |