IOException.de

Icon

Ausgewählter Nerdkram von Informatikstudenten der Uni Ulm

Präsentieren mit HTML5-Foliensätzen

Kurzversion: HTML5 Foliensatz, basierend auf einem Google Template, das zusätzlich Notizen und einen Presenter Mode bietet: Demo / Code

Nicht nur die Frage, wie man richtig präsentiert (Stichwort Zen vs. Death by PowerPoint), sondern auch die Frage, mit welchen Anwendungen man präsentiert, ist oft umstritten. Ich persönlich konnte mich bisher mit Powerpoint und Konsorten eher wenig anfreunden – vor allem Typografie und Einschränkungen bei der Gestaltung waren problematisch. Als Alternative habe ich bisher oft LaTeX Beamer verwendet, was allerdings je nach visueller Komplexität auch oft relativ zeitaufwendig ist, sich aber zumindest bei Grafiken in Vektorformaten und mathematischen Inhalten auch schnell auszahlt.

HTML5-basierte Foliensätze

Mit dem Aufkommen von HTML5 entstand eine zusätzliche Möglichkeit. Dank der neuen Multimedia-Tags wie <audio> und <video> sowie mächtigeren CSS Stilen bietet HTML nun die Grundlagen für browser-basierte Präsentationen. Mittlerweile gibt es hierfür auch schon mehrere Templates:

Noch mehr Alternativen gibt es in dieser Auflistung. Ein weiteres sehr schönes Beispiel ist ein Foliensatz zu HTML5, der selbst quasi eine Technologiedemonstration enthält: http://slides.html5rocks.com

Der Vorteil von HTML-basierten Präsentationen ist die hohe Anzahl von Medien (u.a. auch SVG, Flash Videos oder ganze Webseiten als IFrames), die man einbetten kann. Ein einfaches, weitläufig bekanntes Markup ermöglicht das schnelle Erstellen von Folien, und mit einer Kombination aus HTML, CSS und JavaScript lassen sich dennoch auch komplexe Spezialfunktionen realisieren.

Mir persönlich hat das html5slides Template ganz gut gefallen, das Google entwickelt und für die Google I/O Slides eingesetzt hat. Da das Template unter einer Apache License veröffentlicht wurde, habe ich zunächst damit begonnen, es an das Uni Ulm Corporate Design anzupassen. Außerdem hatte ich ein paar kleine Änderungen am Code vorgenommen, um zum Beispiel eine Nummerierung der Folien zu ermöglichen.

Presenter Mode?

Prinzipiell war das Ergebnis schon mal akzeptabel, allerdings wurden die oft genannten Probleme bei solchen HTML-Foliensätzen schnell offensichtlich – fehlende Notizen für den Vortragenden und nur eine Ausgabe.

Eher durch Zufall bin ich auf ein anderes Konstrukt gestoßen, dass seit HTML5 Cross-Frame-Communication erlaubt, also den Austausch von Nachrichten zwischen zwei verschiedenen Frames (mit einigen Einschränkungen): window.postMessage()

Die Möglichkeit, zwischen Frames zu kommunizieren, ist natürlich auch ideal dafür, Daten zwischen Frames zu synchronisieren. Übertragen auf zwei verschiedene Präsenationsframes ermöglicht dies beim Weiterschalten der Folien in einem Frame, den zweiten Frame zu aktualisieren. Schematisch sieht das so aus:

(CC-BY-NC) Icons by picol.org / w3.org

Im Hauptfenster kann per Tastendruck ein zusätzliches Popup geöffnet werden (1). Das neue Popup öffnet die gleiche URI der Präsentation und wird auf dem Bildschirm des Vortragenden platziert. Schaltet der Vortragende nun im Hauptfenster weiter zu nächsten Folie, so erzeugt dies ein Nachricht an das zweite Frame (2), das dann ebenfalls weiterschaltet.

Eine weitere Ergänzung war die Unterstützung von Notizen als Overlay über die Folien. Kombiniert mit dem Dual-Screen-Ansatz ermöglicht dies, dem Publikum die Folien zu zeigen, dem Vortragenden auf einem zweiten Bildschirm die Folien plus den verfügbaren Notizen.

Ausführliche Beispiele mit Code gibt es in einer Beispielpräsentation, den kompletten Code auf github: https://github.com/berb/html5slides-uulm

Auf der Feature Wishlist steht noch ein alternativer CSS-Stylesheet für den Druckexport. Außerdem ein Tool, dass externe Daten wie Bilder per Base64 encoding als Data URI integriert und JavaScript sowie Stylesheets inline einbindet, sodass die Präsentation als einzelne HTML5 Datei ohne externe Abhängigkeiten abgespeichert werden kann.

Kategorie: web

Tags: , , , ,

Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Facebook

4 Kommentare

  1. Christian sagt:

    Ui, das sieht interessant aus. Auf die Idee, Präsentationen mit HTML zu machen, bin ich bisher noch nicht gekommen. Aber ich fürchte, ich bleib doch lieber bei meinem geliebten LaTeX Beamer. Dafür sind automatisches Syntax-Highlightung und ebenso automatische Erstellung von Gliederungsübersichten, etc. doch zu praktisch.

    Aber wer weiß, vielleicht gibt ja auch mal Gelegenheiten, wo weniger Code und mehr Einbettung von anderen Medien, Webseiten & Co. nötig ist. Ich werd das also auf jeden Fall mal im Hinterkopf behalten.

    Was mich nur etwas irritiert, ist dass die Notizen die eigentlichen Folien teilweise verdecken. Gefühlt fände ich es praktischer, wenn sich die Folie verkleinern würde und die Notizen daneben oder darunter angezeigt würden. Hast du Erfahrungen damit, ob das stört?

    mfg

    Christian

  2. Benjamin Erb sagt:

    @Christian: Bisher habe ich auch LaTeX Beamer verwendet, unter anderem aus den von dir genannten Gründen. Ein Syntaxhighlighting unterstützt das Template bereits (prettify), alternative Libs wie SHJS lassen sich ebenfalls einfügen. An einer Unterteilung des Inhalts und automatischen Gliederungsübersichten arbeite ich noch, das sollte aber kein großes Problem sein.

    Die Darstellung der Notizen ist sicherlich Geschmacksache. Ich habe mich für ein Overlay entschieden, da man so die Originalfolien noch im Blick hat, und trotzdem die Notizen sieht, ohne dass sich die Ansicht groß ändert. Man kann übrigens auch im Presenter Mode mit ‘n’ die Notizen ein- und ausblenden.

  3. Christian sagt:

    Dann könnte das ja tatsächlich zu ner echten Alternative werden…

  4. Stefan sagt:

    Auch hübsch: deck.js http://imakewebthings.github.com/deck.js/
    Vor allem der modulare Aufbau macht einen interessanten Eindruck…

Kommentar