Decker Workshop

Folienerstellung - Markdown

Sebastian Lukas Hauer

Lehrstuhl für Computergraphik, TU Dortmund

🚀 by Decker

Folien in Decker schreiben

Deckerfolien werden in Markdown geschrieben. Markdown ist eine sehr einfache Auszeichnungssprache, die ursprünglich von John Gruber und Aaron Swartz dazu entworfen wurde, um in HTML-Code übersetzt zu werden und damit das Schreiben von Webartikeln zu vereinfachen.

Der geschriebene Text im Editor des Autors soll nach der Markdown-Philosophie dem visuellen Inhalt des Artikels so ähnlich wie möglich sein. Layout, Positionierung und andere Gestaltungsdetails sollen dabei keine Rolle spielen. Der Autor soll sich vollständig um den Inhalt kümmern können.

Decker erweitert die grundlegende Syntax von Markdown um viele Details, die etwas mehr Kontrolle über die Eigenschaften des Ergebnisses bieten und versucht weiterhin so simpel wie möglich zu bleiben.

Folien im Browser darstellen

Die Folien von Decker werden mithilfe der Javascriptbibliothek Reveal.js im Browser dargestellt.

Reveal erlaubt es Folien nicht nur linear (horizontal, eine Folie nach der anderen) anzuordnen, sondern Folien auch vertikal (untereinander) anzuordnen, um z.B. Folien nach bestimmten Themen geordnet zu sortieren.

Teil 1: Markdowngrundlagen

Paragraphen und Textauszeichnungen

Ein Paragraph wird in Markdown notiert indem Sie den Text niederschreiben. Einzelne Textabschnitte können im Fließtext mit Sonderzeichen hervorgehoben werden. Ein Textbaustein, der von solchen Sonderzeichen umrandet oder vorangestellt wird erhält eine andere Auszeichnung. Ein Textbaustein, der von jeweils einem * (Asterisk) umgeben wird, wird z.B. betont während ein Textbaustein, der von jeweils zwei * umgeben wird fett gedruckt wird.

Trennungen durch Leerzeilen

Zwei Folienbausteine werden voneinander getrennt, indem sie durch eine leere Zeile im Quelltext voneinander getrennt werden. Vergessen Sie diese werden die beiden Bausteine unter Umständen als zusammenhängend aufgefasst.

Teil 2: Markdowngrundlagen

Überschriften: #

Eine Raute (#) am Anfgang einer Zeile zeichnet eine Überschrift aus. Die Anzahl an Rauten bestimmten die Überschriftenstufe.

Eine Überschrift der Stufe 1 leitet für Decker eine neue Folie ein.

Blockzitate: >

Ein Paragraph, der mit einer spitzen Klammer eingeleitet wird (>) wird als Blockzitat aufgefasst.

Code: `

Ein Textbaustein, der von einzelnen Abwärzakzenten (`) umgeben wird, wird als Codetext ausgezeichnet und als vorformatierter Text in einem Monospace-Font dargestellt.

Beispiel: Markdowngrundlagen

# Meine erste Folie

Dies ist meine erste **Beispielfolie**. Fließtext kann durch das *Umranden* mit Sonderzeichen ausgezeichnet werden.

## Einleitung

> "Bitte vergessen Sie alles, was Sie in der Schule gelernt haben. denn Sie haben es nicht gelernt." - Edmund Landau
Beispielquelltext, der eine neue Folie einleitet und mit einem Paragraphen Text füllt. Das Wort “Beispielfolie” wird fett, das Wort “Umranden” wird kursiv gedruckt. Hinter der Überschrift der Stufe 2 “Einleitung” kommt ein Blockzitat. Sie können das Ergebnis dieses Quellcodefragmentes als vertikale Unterfolie dieser Beispielfolie betrachten. (Pfeiltaste nach Unten drücken.)

Unterfolien

Sie können eine Folie als vertikale Unterfolie deklarieren, indem Sie hinter dem Titel der Folie die Überschrift mit {.sub} markieren.

# Folientitel

Text

# Unterfolientitel {.sub}

Text

Meine erste Folie

Dies ist meine erste Beispielfolie. Fließtext kann durch das Umranden mit Sonderzeichen gestaltet werden.

Einleitung

“Bitte vergessen Sie alles, was Sie in der Schule gelernt haben. denn Sie haben es nicht gelernt.” - Edmund Landau

Übersicht: Textformatierung

Quelltext Resultat
# Überschrift Leitet neue Folie ein
## Überschrift Unterüberschrift
*Text* Kursiver Text
**Text** Fetter Text
***Text*** Kursiver und fetter Text
`Text` Code
~~Text~~ Durchgestrichener Text
> Text Blockzitat

Anmerkung: Text kann nicht unterstrichen werden, da er sonst mit einem Link verwechselt werden kann.

Ungeordnete Listen

Listen können als solche mit Bindestrichen vor jedem Listeneintrag im Quelltext notiert werden:

- First
- Second
- Third
  • First
  • Second
  • Third

Listen, die mit Bindestrichen ausgezeichnet werden sind nicht nummeriert.

Geordnete Listen

Wenn Sie Listenelemente nummerieren wollen können Sie die Listeneinträge mit einer Nummer, gefolgt von einem Punkt notieren:

3. Third
4. Fourth
5. Fifth
  1. Third
  2. Fourth
  3. Fifth

Erinnerung: Leerzeilen zwischen Folienbausteinen

Denken Sie auch weiterhin daran, dass Sie alle Elemente mit Leerzeilen voneinander trennen:

Eine Liste, die ohne Leerzeile auf einen Paragraphen folgt wird Teil des Paragraphen:
- Erstens
- Zweitens
Bemerken Sie die fehlende Leerzeile zwischen der Liste und dem Paragraphen

Eine Liste, die ohne Leerzeile auf einen Paragraphen folgt wird Teil des Paragraphen: - Erstens - Zweitens

Eine Liste, die ohne Leerzeile auf einen Paragraphen folgt wird Teil des Paragraphen:

- Erstens
- Zweitens
Korrekt wird die Liste so ausgezeichnet.

Codeblöcke

Sie können Fließtext als Quellcode durch Umranden mit einzelnen Abwärzakzenten (engl. auch “Backtick” genannt) markieren. Ganze Blöcke von vorformatiertem Quellcode können durch Umrandung mit drei Akzenten in eigenen Zeilen markiert werden. Hinter den “öffnenden” drei Akzenten können Sie in geschweiften Klammern angeben welche Programmiersprache Sie verwenden. Dadurch wird die Syntax des Quellcodes passend gehighlightet. Möchten Sie ein Quelltextfragment im Fließtext mit Syntaxhighlighting einer Programmiersprache versehen, so müssen Sie die Sprache als Klasse hinter dem schließenden Akzent in geschweiften Klammern angeben.

Quellcode

``` {.c}
printf("%s", var);
```
Quellcode im Fließtext: `int a = 42;`{.cpp}

Resultat

printf("%s", var);

Quellcode im Fließtext: int a = 42;

Teil 1: Tabellen

Der Quelltext für Tabellen soll dem Aussehen einer Tabelle selbst möglichst ähnlich sein.

In der ersten Zeile einer Tabelle definieren Sie die Kopfzeile der Tabellenspalten. Die Spaltenüberschriften werden dabei von vertikalen Strichen ( | ) umrandet und voneinander getrennt. Sie können sich die Striche als die Linien der Tabelle vorstellen. Die zweite Zeile der Tabelle soll die Ausrichtung der Tabelleninhalte repräsentieren und wird ebenso mit vertikalen Strichen (|) umrandet und getrennt:

  • :-- richtet die Spalte linksbündig aus,
  • :-: richtet die Spalte zentriert aus,
  • --: richtet die Spalte rechtsbündig aus.
  • --- richtet die Spalte nach Dokumentstandard, meist linksbündig, aus.

Die Anzahl der überschüssigen Bindestriche ist nicht relevant und soll nur beim Lesen der Tabelle im Quellcode helfen.

Den Tabelleninhalt können Sie anschließend unter die Ausrichtungszeile wie die Überschriften mit vertikalen Strichen (|) voneinander getrennt notieren:

| Überschrift | Überschrift | Überschrift |
| ----------: | :---------: | ----------- |
| Inhalt      | Inhalt      | Inhalt      |
| Inhalt      | Inhalt      | Inhalt      |
Quellcodebeispiel für eine Tabelle

Resultat

Überschrift Überschrift Überschrift
Inhalt Inhalt Inhalt
Inhalt Inhalt Inhalt

Bilder

Bilder werden in Markdown ähnlich wie Links ausgezeichnet: Sie werden mit einem Ausrufezeichen (!) eingeleitet, gefolgt von der Bildunterschrift in eckigen Klammern ([ ]) und der URL zum Bild in den runden Klammern (( )):

![Bildunterschrift](Link oder Pfad zum Bild)
../data/bluebird.jpg
Bild eines blauen Vogels. Quelle: https://en.wikipedia.org/wiki/Bluebird CC BY-SA 2.5 Elaine R. Wilson

Bilder skalieren

Bilder versuchen auf einer Folie so viel Platz wie möglich einzunehmen. Die Folien von Decker gehen standardmäßig von einer Zeichenfläche von 1280x720 Pixeln aus, daher sind höherauflösende Bilder häufig zu groß.

Hinter den runden Klammern können Sie in geschweiften Klammern zusätzliche Eigenschaften des Bildes definieren. Breite und Höhe können mit den Attributen width="" und height="" spezifiziert werden. Werte können in allen gültigen CSS-Einheiten angegeben werden.

![Bildunterschrift](URL){width="256px" height="128px"}
../data/bluebird.jpg
Blauer Vogel

Bilder organisieren

Es lohnt sich Bilder in einem Ordner im Projektverzeichnis zu sammeln und zu sortieren.

Damit alle Dateien von Decker in den Webseitenordner public kopiert werden kann man in der decker.yaml-Konfigurationsdatei die Konfigurationsoption static-resource-dirs erweitern und dort den Ordner auflisten.

static-resource-dirs:
    - 'bilder'
decker.yaml

Weiteres zu Bildern

Bilder können zudem noch weiter konfiguriert werden - insbesondere um Eigenschaften der Barrierefreiheit anzupassen. Die Syntax für das Einbetten von Bildern in den Folien wird zudem auch für das Einbetten vieler anderer Medienelemente verwendet. Die dazugehörige Anleitung finden Sie hier.

MathJax

Matheformeln werden im Browser mithilfe der Bibliothek MathJax aus LaTeX-ähnlicher Syntax in barrierearme HTML-Elemente umgewandelt. Der Formelquelltext wird dabei wie in LaTeX mithilfe von einzelnen oder doppelten Dollar-Symbolen umgeben und kann sowohl als alleinstehende Formel oder im Fließtext eingebettet werden.

Display LaTeX

$$\mathcal{A} = \mathbb{B}$$

\[\mathcal{A} = \mathbb{B}\]

Inline Mathemodus

So sei $x \in \mathbb{N}$ und $y \in \mathbb{R} ...$ 

So sei \(x \in \mathbb{N}\) und \(y \in \mathbb{R}\)

Sonderzeichen im Fließtext

Möchten Sie die Sonderzeichen, die Markdown zum Auszeichnen von Text verwendet als solche im Fließtext darstellen, so müssen Sie die Sonderzeichen mit einem Gegenschrägstrich (engl. backslash) notieren. Dieses Verfahren nennt man auch escapen. Das Dollar-Symbol für Matheformeln muss doppelt escaped werden:

Diese Sonderzeichen sind Teil des Textes: \* \\$ \` \` \\$ \*

Diese Sonderzeichen sind Teil des Textes: * \$ ` ` \$ *