c3d2-wiki/C3D2-Web.mw

243 lines
10 KiB
Plaintext
Raw Normal View History

2005-12-10 14:36:36 +01:00
=Ü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.
2005-12-10 16:40:29 +01:00
==Propaganda==
2006-01-21 20:53:37 +01:00
[[Bild:XML Sit-Ups.png|right|XML Sit-Ups sind gar nicht schwer]]
2005-12-10 16:40:29 +01:00
Wir verlassen uns hier nicht auf irgendein CMS, sondern verwenden standardisierte, etablierte Techniken. Für XSLT gibt es mehr als eine Implementation. Des weiteren ist es bereits so, dass das System schon von mehr als einer Person kapiert wird.
Als Side-effect sollte noch gesagt werden, dass sämtliche Seiten statisch sind. Wir sind also gegen XSS und xyz-Injection gefeit. Passwortabfragen können wir immernoch mit ''.htaccess'' lösen.
2005-12-10 14:36:36 +01:00
=Wo?=
==SVN==
2005-12-10 15:21:43 +01:00
[http://subversion.tigris.org/ Subversion] bietet uns praktisch Wiki-Funktionalität:
*Jeder darf bearbeiten
*Änderungen sind verfolgbar
2005-12-10 14:36:36 +01:00
Um mitzumachen kann man sich das ganze Paket mit folgendem Befehl holen:
2005-12-19 12:03:13 +01:00
svn co svn://svn.cccv.de/c3d2-web/trunk c3d2-web
2005-12-10 14:36:36 +01:00
2005-12-19 12:03:13 +01:00
Danach hat man ein Verzeichnis [http://trac.cccv.de/c3d2-web/browser/trunk c3d2-web/] auf Platte, mit dem man herumexperimentieren kann.
2005-12-10 14:36:36 +01:00
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 [[Benutzer:Sven|Sven]] benachrichtigen. Nach diesem Account wird beim nächsten '''svn ci''' gefragt.
==Web==
2005-12-10 22:03:18 +01:00
Stündlich gebaut: http://ωωω.c3d2.de/ (bzw. http://newwww.c3d2.de/)
2005-12-10 14:42:45 +01:00
2005-12-19 19:15:46 +01:00
Wenn zudem etwas in das SVN eingecheckt wird, dann werden Commit-Messages per Jabber empfangen. Ein spezieller Triggerbot empfängt diese ebenfalls, wird dann die Homepage sofort neubauen und publizieren.
2006-01-22 14:16:21 +01:00
Zu diesem Bot kann man sich auch subscriben, einfach [xmpp:c3d2-web-trigger@pentabarf.org c3d2-web-trigger@pentabarf.org] zum Roster hinzufügen. Einzige Funktion ist die Anzeige der letzten Neubauzeit.
2005-12-10 14:42:45 +01:00
=Bearbeiten=
2005-12-10 15:12:29 +01:00
Während das hier alles nach ''viel'' aussieht, gibt es den entscheidenden Vorteil: '''XML ist selbsterklärend!'''
2005-12-10 14:42:45 +01:00
==Grundlegendes zum Umgang==
2005-12-10 14:50:53 +01:00
{|
!Verzeichnis
!Bedeutung
|-
2006-06-01 09:01:28 +02:00
|''build''
|temporäres Verzeichnis, in dem alle erstellten html-Dateien landen
2005-12-10 14:50:53 +01:00
|-
2006-06-01 09:01:28 +02:00
|''content/datenspuren''
|Datenspuren-Seiten.
|-
|''content/pages''
|XML-Dateien mit einzelnen Seiten (Wiki, SILC, Mailingliste etc.)
|-
|''content/static''
|Statische Inhalte (Bilder, Styles etc.), mit Struktur, wie sie später unter www/ landen sollen. (Datenspuren-Sachen sind auch hier!)
|-
|''dtd''
|Dokumenttypdefinitionen aufgrund derer einen xmllint anmeckern wird, wenn man Tags falsch benutzt.
2005-12-10 14:50:53 +01:00
|-
2006-06-01 09:01:28 +02:00
|''scripts''
|Hilfsskripte zum Bauen
|-
|''xslfo''
|XSL:FO-Geraffel für den imaginären DS-Guide, für welchen kein Inhalt zustande kam
2006-06-01 09:01:28 +02:00
|-
|''www''
|Das ist nach dem Bauen das fertige Verzeichnis, in dem die Site liegt, wie sie ins htdocs exportiert werden kann.
|-
|''xsl''
|Hier residieren die Definitionen, aus dem XML-Inhalt XHTML-Webseiten und RSS-Feeds zu bauen.
2005-12-10 14:50:53 +01:00
|}
2006-06-01 09:01:28 +02:00
Den gewöhnlichen Autor interessieren eigentlich nur die Dateien in ''content/''. Dort kann er die XML-Dateien nach unten genannten Schemata bearbeiten. Wenn kein gültiges XML eingefüttert wird, spuckt '''xmllint''' (bzw. '''xsltproc''') schon erklärende Fehlermeldungen.
2005-12-10 14:42:45 +01:00
===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
2005-12-10 14:54:49 +01:00
===Build===
2006-06-01 09:01:28 +02:00
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 ''build/'' die html- und rss-Dateien gebaut. Wenn alles fertig ist kopiert rsync alles zusammen mit dem Inhalt von content/static nach www/, das ist ganz nützlich um zu sehen, welche Dateien sich tatsächlich verändert haben.
2005-12-10 14:54:49 +01:00
2005-12-10 16:03:30 +01:00
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.
2005-12-10 14:42:45 +01:00
==News schreiben==
2006-06-01 09:42:28 +02:00
#Irgendeine vorhandene News-Seite in c3d2-web/content/news auf '''c3d2-web/content/news/<dateiname>.xml''' kopieren.
#Der Dateiname sollte irgendetwas sinnvolles und noch nicht vorhanden sein.
#Inhalt eingeben und Attribute für <item/> setzen.
2005-12-10 21:06:36 +01:00
#'''make''' und im Browser anschauen
#'''svn commit'''
2006-06-01 09:42:28 +02:00
Das sieht dann z.B. so aus:
<pre><nowiki>
2005-12-10 15:06:50 +01:00
<?xml version="1.0" encoding="UTF-8"?>
2006-06-01 09:42:28 +02:00
<!DOCTYPE item SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<item title="TA: Ruby &amp; Ruby on Rails" date="2006-03-19T19:00:00" author="Astro" category="Themenabend">
<image title="Ruby">http://www.rubygarden.com/ruby.jpg</image>
<p>
<dl>
<dt>Termin</dt>
<dd>10. März 2006, 19:00 Uhr</dd>
<dt>Ort</dt>
<dd>Berufsakademie Dresden, Raum G3, Heideparkstr. 8, 01099 Dresden</dd>
<dt>Themen</dt>
<dd>Einführung in Ruby</dd>
<dd>Ruby-MediaWiki</dd>
<dd>Einführung in Ruby on Rails</dd>
<dd>Erstellen eines Wiki mit Rails</dd>
<dd>Jabber-Library XMPP4R</dd>
</dl>
</p>
2006-07-03 23:34:23 +02:00
<resource title="Vortragsfolien" size="234223" type="application/pdf">http://example.com/slides.pdf</resource>
2006-06-01 09:42:28 +02:00
</item>
</nowiki></pre>
2005-12-10 14:42:45 +01:00
2005-12-10 15:11:42 +01:00
===<item/>-Attribute===
{|
!Attribut
!Beschreibung
|-
|''title'' || News-Titel
|-
2006-06-01 09:42:28 +02:00
|''date'' || News-Datum in standardisierter Form, z.B. für RSS-Feeds und automatisierte Verarbeitung. (Ausgabe von '''date +%FT%T'''.)
2005-12-10 15:11:42 +01:00
|-
2006-06-01 09:42:28 +02:00
|''author'' || Wer hat's geschrieben?
2005-12-10 15:11:42 +01:00
|-
2006-06-01 09:42:28 +02:00
|''category'' || Eine Kategorie (sowas hatte die alte Seite auch). Danach soll eventuell mal ein Bild eingefügt werden, wenn man kein's per Hand vergibt.
2005-12-10 15:11:42 +01:00
|}
===Inhalt===
2006-06-01 09:42:28 +02:00
Muss in ein ''<nowiki><p/></nowiki>'' einschlossen werden. Vorher darf noch ein einzelnes <image/> stehen, dieses wird dann automatisch linksbündig oder rechtsbündig angeordnet (aktuell deaktiviert). Für weitere, erlaubte Elemente, siehe [[C3D2-Web#Seiten bearbeiten|Seiten bearbeiten]].
2005-12-10 15:11:42 +01:00
2006-05-24 13:25:38 +02:00
===Erweiterter Inhalt===
2006-06-01 09:43:17 +02:00
Seit r324 wird für jede News noch eine Extraseite angelegt. Für Text, der dort erscheinen, aber nicht in der Übersicht stehen soll, darf in <item/> noch zusätzlich ein <addendum/> geschrieben werden. Dort kann alles rein, was auch in eine normale Seite kann.
2006-05-24 13:25:38 +02:00
2006-07-03 23:34:23 +02:00
===<resource/>===
Damit Downloads als enclosures in RSS und ATOM auftauchen (ein Podcast!11), gibt man sie als <resource/> an. Nebenbei erscheinen sie auch im HTML, schliesslich sollen alle Daten verwurstet werden.
2006-07-03 23:37:20 +02:00
{|
|''Inhalt'' || URL zum Download
|-
|''Attribut "title" || Ein Kurztitel nur fürs HTML, Fallback auf Inhalt
|-
|''Attribut "size"'' || Contentgröße in Bytes
|-
|''Attribut "type"'' || MIME-Type
|-
|''Attribute "hide"'' || Wenn "yes", so wird diese Ressource nicht auf der Nachrichtenübersichtsseite angezeigt. Das ist sinnvoll, wenn es eine Menge Dateien (wie bei DS-Mitschnitten) gibt, die man als Podcast anbieten möchte, jedoch in ihrem vollen Umfang auf der Übersichtsseite stören würden.
|}
2006-07-03 23:34:23 +02:00
2006-07-04 00:04:48 +02:00
'''TODO:''' [http://trac.cccv.de/c3d2-web/ticket/13 iTunes-Extensions]
2006-07-03 23:34:23 +02:00
2005-12-10 14:42:45 +01:00
==Neue Seite erstellen==
Siehe auch: [[C3D2-Web/Seite_anlegen|Schritt-für-Schritt-Anleitung]]
2006-06-01 09:49:57 +02:00
Zuerst erstellt man eine neue XML-Datei in ''content/pages'' nach folgendem Schema (oder man kopiert eine bereits vorhandene):
<pre><nowiki>
<page title="Kontakt" pagetitle="E-Mail">
<p>
Anfragen an den Chaostreff Dresden bitte an <link href="mailto:mail@c3d2.de">mail@c3d2.de</link>.
</p>
<p>
Diese Adresse geht moderiert an unsere Mailingliste, d. h. an alle dort eingetragenen E-Mailadressen.
</p>
</page>
</nowiki></pre>
2005-12-10 14:42:45 +01:00
2005-12-10 15:25:26 +01:00
Natürlich sind mehrere <nowiki><p/></nowiki>-Elemente möglich.
2005-12-10 17:20:22 +01:00
Diese Datei muss dann mit '''svn add''' dem Repository hinzugefügt werden, womit sie beim nächsten '''svn commit''' hochgeladen wird.
2005-12-10 15:25:26 +01:00
===<page/>-Attribute===
{|
!Attribut
!Beschreibung
|-
|''title'' || Allgemeiner Seitentitel
2005-12-10 15:25:26 +01:00
|-
|''pagetitle'' || Optionaler langer Seitentitel
2005-12-10 15:25:26 +01:00
|}
===Seite in Navigationsleiste aufnehmen===
2006-06-01 09:49:57 +02:00
Dazu bearbeitet man ''content/navigation.xml''. Dort erstellt man ein neues <file/>-Element mit dem Pfad zur Datei unter content aber ohne Erweiterung, z.B. <file>content/kontakt</file>. Als Linktitel wird automatisch das ''pagetitle''-Attribut der entsprechenden Seite verwendet.
2005-12-10 14:42:45 +01:00
==Seiten bearbeiten==
2005-12-10 21:08:17 +01:00
#'''c3d2-web/content/wasichbearbeitenwill.xml''' öffnen
#Gewünschte Änderungen vornehmen
#'''make''' und im Browser testen
#'''svn commit'''
2005-12-10 15:30:59 +01:00
In ''<page/>'' dürfen folgende Elemente auftauchen:
2005-12-10 15:33:10 +01:00
===<nowiki><pre/></nowiki>===
2005-12-10 15:30:59 +01:00
Hier werden Inhalte wie eingegeben formatiert. Geeignet für Skripte, Konsolenausgaben, ...
<nowiki><pre>% uname -sr
FreeBSD 6.0-STABLE</pre></nowiki>
2005-12-10 23:51:20 +01:00
'''Hinweis:''' Laut XHTML darf <''pre''/> '''nicht''' in <''p''/> vorkommen!
2005-12-10 15:33:10 +01:00
===<nowiki><p/></nowiki>===
2005-12-10 15:54:34 +01:00
<'''p'''>Ein Absatz. Mindestens einer wird empfohlen.</'''p'''>
2005-12-10 15:30:59 +01:00
===<image/>===
2005-12-10 15:55:30 +01:00
<'''image''' class="right" title="Linux-Unfug-Tag"><nowiki>http://www.linux-unfug-tag.de/logo.png</nowiki></'''image'''>
2005-12-10 15:33:10 +01:00
{|
!Attribut
!Beschreibung
|-
|''class'' || Art der Darstellung, entweder ''left'' oder ''right''
|-
|''title'' || Hinweis, wird in ''title'' und ''alt'' gesteckt
|}
2005-12-10 15:54:34 +01:00
2005-12-10 17:19:06 +01:00
====Bild hochladen====
cp /home/hacker/bild.png www/images/bild_vom_hacker.png
svn add www/images/bild_vom_hacker.png
svn ci # Braucht Account mit Schreibrechten
2005-12-10 17:13:06 +01:00
2005-12-10 15:54:34 +01:00
===<link/>===
<'''link'''><nowiki>http://www.ccc.de/</nowiki></'''link'''>
<'''link''' href="<nowiki>http://www.ccc.de/</nowiki>">CCC</'''link'''>
{|
!Attribut
!Beschreibung
|-
|''href'' || Linkziel, falls ausgelassen wird der Inhalt verwendet
|}
2005-12-21 20:37:09 +01:00
=Entwicklung=
Es gibt verschiedene Branches, in denen Testversuche ausgeführt werden. Diese werden dann in den Hauptentwicklungszweig ''trunk'' zurückgeführt.
Die Planung erfolgt unter http://trac.cccv.de/c3d2-web
2005-12-21 20:49:30 +01:00
Dort existiert auch ein [http://trac.cccv.de/c3d2-web Trac], wo man sich die aktuellen Bugreports per RSS zukommen lassen kann: http://trac.cccv.de/c3d2-web/report/1?format=rss
2006-05-07 22:39:26 +02:00
=Datenspuren-Schedule=
''content/datenspuren/schedule.xml'' kommt von https://pentabarf.cccv.de/~sven/schedule/DS2006/days