C3D2 Lightning Talks
2013-02-12
git clone http://www.c3d2.de/c3d2-web.git && cd c3d2-web && make -j3 && x-www-browser www/news.html
Dependencies: make, xsltproc, rsync
Wichtigste Frage:
Where's the content?
c3d2-web % ls content/ datenspuren/ events.xml navigation.xml news/ old-site/ pages/ static/
make
chaosupdates.xmlnews.xml und calendar-summary.xmlbuild/build/ und content/static/ nach www/<?xml version="1.0" encoding="UTF-8"?> <!-- When changing the position of these files in the navigation sidebar, please adjust the #navigation li:nth-child(...) rules in the CSS file. --> <navigation> <file title="News">news</file> <file>whois</file> <file>treff</file> <file>themenabende</file> <file>events</file> <file>schule</file> <file>kontakt</file> <file>mailingliste</file> <file>muc</file> <file>wiki</file> <file>radio</file> <file>podcast</file> <file>pentamusic</file> <file>shop</file> <file>warez</file> </navigation>
content/pages/*.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE page SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/html.xsl" ?> <page title="Whois" pagetitle="Whois c3d2?"> <p title="Wohin? Woher? Weshalb? c3d2?"> Der CCC Dresden (C3D2) ist eine Gruppe von Leuten, die Spaß am kreativen Umgang mit Informationstechnologie haben. </p> [...]
xsd/c3d2web.xsdDank XML ist auch XHTML erlaubt. Beispiel content/news/event-tpb-afk.xml:
<iframe xmlns="http://www.w3.org/1999/xhtml"
src="http://www.youtube-nocookie.com/embed/KCAGb7oSwDs"
width="640" height="360"
frameborder="0" allowfullscreen="allowfullscreen">
</iframe>
Spezielle Funktionalitäten in XSLT implementiert:
<news-list prefix="event-" details="event"/>
<news-list prefix="ta-" details="event"/>
<news-list prefix="pentaradio24-" details="resources-only"/>
<news-list prefix="pentacast-" details="resources-only"/>
file/@title in navigation.xml)news.xml wird aus allen news/*.xml durch scripts/gen_news.xml.sh generiert<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">
<?xml-stylesheet type="text/xsl" href="../../xsl/html.xsl" ?>
<item title="Screening: TPB AFK" date="2013-02-07T23:45:00" author="Astro">
<image title="TPB AFK">tpb-afk.jpg</image>
<event>
<start>2013-02-09T20:00:00</start>
<location>Informatikfakultät TU Dresden, Raum E023</location>
</event>
<p>
Sei es der Gründungsimpuls für Piratenparteien auf der ganzen
Welt, Vorreiter für freien Kulturaustausch, oder auch Indikator
für Zensurversuche in der westlichen Welt, die Piratenbucht ist
eine Website, die Geschichte schrieb und weiterhin schreibt.
</p>
[...]
<addendum>
[...]
<iframe xmlns="http://www.w3.org/1999/xhtml"
src="http://www.youtube-nocookie.com/embed/KCAGb7oSwDs"
width="640" height="360"
frameborder="0" allowfullscreen="allowfullscreen">
</iframe>
</addendum>
</item>
<resource title="pentaradio24 vom 22. Januar 2013"
size="92334332"
type="application/ogg"
url="http://ftp.c3d2.de/pentaradio/pentaradio-2013-01-22.ogg">
<alternative size="83985199"
type="audio/mpeg"
url="http://ftp.c3d2.de/pentaradio/pentaradio-2013-01-22.mp3"/>
<alternative size="63039464"
type="audio/opus"
url="http://ftp.c3d2.de/pentaradio/pentaradio-2013-01-22.opus"/>
</resource><resource title="Pentabug" size="173518847" type="video/mp4" url="http://ftp.c3d2.de/datenspuren/2012/5074_pentabug.mp4" preview="http://ftp.c3d2.de/datenspuren/2012/5074_pentabug.gif" poster="http://ftp.c3d2.de/datenspuren/2012/5074_pentabug.jpg" details-link="http://datenspuren.de/2012/fahrplan/events/5074.de.html" feedback-link="https://cccv.pentabarf.org/feedback/DS2012/event/5074.de.html"> <alternative size="103679070" type="video/webm" url="http://ftp.c3d2.de/datenspuren/2012/5074_pentabug.webm"/> </resource>
<audio>/<video>/Flash-Fallback
werden erst nach Klick auf ▶ Play erzeugt (JavaScript)XSLT kann nicht nur XML, sondern auch Text generieren
Beispiel Target ical.ics
Kalendereinträge kommen aus <event/> in:
content/news/*.xmlcontent/events.xmlxsl/calendar.xsl generiert Target calendar.htmlxsl/ddate.xslDynamische Inhalte:
git rm origin && git remote add origin git@git.c3d2.de:c3d2-web.git
git add ... && git commit
git push
post-receive auf webbuildd aktualisiert
Checkout und führt aus:
make export DESTDIR=/var/www
Ausserdem: Webhooks für Pentamedia.org und ⠞⠊⠛⠛⠑⠗
Mit Git-Hook ist Output für Client sichtbar