Termin

Aus C3D2
Zur Navigation springen Zur Suche springen

Auf der Website c3d2.de (schlicht C3D2-Web genannt) können Ankündigungen oder Events in Form von News und kürzeren Kalendereinträgen (Kalender) erfolgen.

Außerdem können dauerhafte Termine aus einem externen Kalender im iCalendar-Format eingebunden werden, was aber zuvor abgesprochen werden sollte.

Die notwendigen Informationen sind:

  • Name des Events
  • Datum Beginn
  • Ort

Optional sind:

  • Uhrzeit Beginn
  • Datum Ende
  • Uhrzeit Ende
  • Link für weitere Informationen
  • Link für Ortsinformationen oder Anfahrt/Karte
  • Kommentare

News können noch folgende Informationen beinhalten:

  • Veröffentlichungszeitpunk
  • Veranstalter oder Verantwortliche Person für die Eintragung des Events
  • Weiterer Beschreibungstext

Benötigte Programme

Es werden neben Standard UNIX Tools wie gnumake, textutils, auch noch git und xsltproc benötigt.

Wir empfehlen einfach die im Git-Repository hinterlegte shell.nix mit nix-shell zu nutzen.

Publikation

Im Makefile eingetragene iCal-Feeds (das 1. Beispiel war `https://nix-meetup.c3d2.de/feed/ics`) werden automatisch aktualisiert.

Das Einreichen von Events und News kann per Formular via E-Mail erfolgen, aber sollte im Regelfall selbständig, besonders bei häufigeren Eintragungen oder per Pull Request passieren. Selbstständige Eintragungen sollten immer vorher Lokal getestet werden, um extra Arbeit bei anderen zu vermeiden und Mehrfachänderungen zu vermeiden.

Die Publikation erfolgt durch berechtigte Nutzer und automatisiert etwa alle 3 Stunden. Dies erlaubt es News Einträge mit ungefährer Genauigkeit in der Zukunft zu veröffentlichen und externe ICS Feeds zu aktualisieren.

XML Schema

Einfaches Event

Als Abschnitt innerhalb der Datei content/events.xml des Repo c3d2-web .

  <event title="Howto: Termine"> <!-- Title as event dscription -->
    <start>2015-10-09</start> <!-- Date-Time-Group as ISO YYYY-MM-DD["T"hh:mm:ss] -->
    <end></end> <!-- optional Date-Time-Group as ISO YYYY-MM-DD["T"hh:mm:ss] -->
    <location><link href="http://www.c3d2.de/space.html">HQ im Zentralwerk</link>, Riesaer Str. 32, 01127 Dresden</location> <!-- Place/Address Information, link-Element optional -->
    <link>https://wiki.c3d2.de/w/index.php?title=Diskussion:Termin</link> <!-- (offsite) Information Link -->
  </event>

News/Ankündigung

Eine dedizierte Datei in contente/news/. Der Name sollte dem Schema eventtype-YYYYMMDD-gruppenbezeichnung-einzelbezeichnung.xml folgen, s.a. vorhandene News im Verzeichnis.

event-20151007-opendata.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE item SYSTEM "http://www.c3d2.de/dtd/c3d2web.dtd">

<item date="2015-10-07T13:24:00" title="Open-Data Treffen" author="tranquillo"> <!-- Publikations Datum und Uhrzeit public title, Autor) -->
  <image title="OpenDataDresden/OKLab-DD">opendata4x.png</image> <!-- optional Bild, kann entfernt werden -->
  <event> <!-- Kopie des Event Objekts -->
    <start>2015-10-07T19:00:00</start> <!-- Event Datum and optionale Startzeit -->
    <location><link href="http://www.c3d2.de/space.html">HQ im Zentralwerk</link>, Riesaer Str. 32, 01127 Dresden</location> <!-- Event Location/Ort/Addresse und optional Link -->
  </event>
  <p><!-- Beschreibung in XML, erlaubte Tags sind: p(Absatz), blockquote, pre, ul, li, div, link(href) -->
    Das nächste reguläre Treffen des
    <link href="http://codefor.de/dresden/">hiesigen Open Knowledge Labs</link>.
  </p>
  <ul>Weitere Links: 
    <li><link href="http://pad.okfn.org/p/oklab-dresden">das Einstiegspad</link></li>
    <li><link href="http://www.meetup.com/de/OK-Lab-Dresden">Meetup</link></li>
  </ul>
</item>

Hinweise zu XML Entities

xsltproc kennt nur: &lt; &gt; &amp; &apos; &quot;, andere Entities sind entweder HTML und müssten erst definiert werden, oder – was wir hier gerne tun – werden direkt mit Codepunkten gemäß Unicode-Tabelle angegeben. Prominentes Beispiel: &nbsp; würde nicht geparst werden, deshalb schreiben wir &#160;. Andere beliebte Beispiele wären &#8239; statt &thinsp; und anstatt &shy; eben &#173;.

<pre/>

Mit <pre/> werden Inhalte so formatiert, wie sie einzugeben sind. Dies ist geeignet für Skripte, Konsolenausgaben, ….

<pre>% uname -sr
Linux 6.18.31</pre>
Hinweis
Laut XHTML darf <pre/> nicht in <p/> vorkommen!

<p/>

<p>Ein Absatz. Mindestens einer wird empfohlen.</p>

<image/>

<image title="Linux-Unfug-Tag">http://www.linux-unfug-tag.de/logo.png</image>
Attribut Beschreibung
title Hinweis, wird in title und alt gesteckt
Bild hochladen
cp /home/hacker/bild.png content/static/images/bild_vom_hacker.png
git add www/images/bild_vom_hacker.png
git commit -m "Bild vom Hacker hinzugefügt"
git push

<link/>

<link>https://www.ccc.de/</link>
<link href="https://www.ccc.de/">CCC</link>
Attribut Beschreibung
href Linkziel, falls ausgelassen wird der Inhalt verwendet

<item/>-Attribute

Attribut Beschreibung
title News-Titel
date News-Datum in standardisierter Form, z.B. für RSS-Feeds und automatisierte Verarbeitung. (Ausgabe von date +%FT%T.)
Daten in der Zukunft werden nicht im Newslisting geführt, sind also pre-published.
author Wer hat's geschrieben?

Inhalt

Muss in ein <p/> 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 Seiten bearbeiten.

Erweiterter Inhalt

Für News Text, der in der News selbst, 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.

<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.

Attribut "url" 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.
Child "alternative" Alternative Dateien (z.B. statt Ogg in MP3), besitzt auch url, size und type

Icons

Die Icons im Kalender werden nur für den Kalender auf der Website eingebaut. Sie priorisieren Orte und Räume im HQ und Zentralwerk.