Decker Details

Konfigurationseinstellungen

Sebastian Lukas Hauer

Lehrstuhl für Computergraphik, TU Dortmund

🚀 by Decker

Konfigurationen in decker

Sie können Konfigurationen an Ihrem Projekt und einzelnen Quelltextdateien vornehmen, in dem Sie Konfigurationsoptionen in der Sprache YAML angeben. Die Datei, die decker dazu nutzt, um einen Ordner auf Ihrem Rechner als Projektverzeichnis zu identifizieren heißt daher decker.yaml. In dieser Datei werden die Projektweiten Einstellungen angegeben. Jede einzelne -deck.md oder -page.md kann darüber hinaus auch eigene Konfigurationseinstellungen besitzen, die in dem sogenannten Frontmatter vor dem eigentlichen Inhalt der Datei notiert werden.

resource-pack: 'exe:tudo'
Minimaler Inhalt einer decker.yaml für ein Projekt im tudo-Stil.
---
title: 'Meine Präsentation'
---

# Meine erste Folie
Minimaler Inhalt einer -deck.md-Folie mit Konfiguration im durch --- markierten Frontmatter.

Konfigurationsdeklarationen

In YAML werden Konfigurationsoptionen als Schlüssel-Wert-Paar angegeben:

key: 'value'

Konfigurationen können verschachtelt werden. Dies ist als Kategorisierung zu verstehen und soll zusammenhängende Konfigurationsoptionen unter einem gemeinsamen Bezeichner vereinigen. Wichtig ist hier die einheitliche Einrückung der Unterschlüssel um die selbe Anzahl an Leerzeichen. Wir empfehlen zwei Leerzeichen pro Ebene:

category:
   key1: 'value'
   key2: 'value'

Manche Konfigurationen sind keine einzelnen Werte, sondern Listen von Werten:

key:
  - 'value1'
  - 'value2'
  - 'value3'

Komplexere Konfigurationseinstellungen

Eine Kategorie kann auch als ein Objekt verstanden werden, welches mehrere Attribute mit eigenen Eigenschaften besitzt. Möchten Sie Listen solcher Objekte angeben, wie es z.B. für die Angabe mehrerer Autor*innen für die Titelseite notwendig ist, sieht dies folgendermaßen aus:

key:
  - subkey1: 'value'
    subkey2: 'value'
  - subkey1: 'value'
    subkey2: 'value'

Konfigurationseinstellungen für die Titelseite

Die Titelseite besitzt je nach verwendetem Ressourcenpaket eine unterschiedliche Vielfalt an Konfigurationseinstellungen.

Es gibt zur Titelseitenkonfiguration des tudo-Ressourcenpaketes daher eine eigene Anleitung.

Konfigurationseinstellungen für decker publish

Der Befehl decker publish versucht Ihr public-Verzeichnis auf einem anderen Rechner zu publizieren, indem er das Programm rsync verwendet.

Sie können den Zielrechner, sowie weitere Optionen für rsync mithilfe der Konfigurationskategorie publish.rsync bestimmen:

publish:
  rsync:
    destination: username@remote.server.com:/path/to/html/directory
    options: 
      - --option
      - --option=value
      - [...]

Konfigurationseinstellungen für Reveal.js

Der Teil der Webseite, der für die Darstellung des Webseiteninhalts als Folienpräsentation verantwortlich ist, heißt Reveal.js. Konfigurationen für dieses System können direkt in der decker.yaml in der Kategorie reveal angegeben werden. Welche Bedeutung die einzelnen Elemente haben lesen Sie am besten in der Dokumentation von Reveal.js selbst nach.

Auf der folgenden Folie ist eine abkopierbare, vollständige Liste aller Einstellungen zu finden. Solche, die mit # auskommentiert sind, sollten nicht umkonfiguriert werden, da sie keinen besonderen Einfluss auf die Präsentation haben oder die grunlegenden Mechanismen, von denen decker Gebrauch macht, aushebeln.

Übersicht über alle Reveal.js Einstellungen

reveal:
  controls: true | false
#  controlsTutorial: true | false
  controlsLayout: 'edges' | 'bottom-right'
  progress: true | false
  slideNumber: false | 'h.v' | 'h/v' | 'c' | 'c/t'
#  showSlideNumber: 'all' | 'print' | 'speaker'
#  hashOneBasedIndex: true | false
#  hash: true | false
#  respondToHashChanges: true | false
#  jumpToSlide: true | false
  history: true | false
  keyboard: true | false
#  keyboardCondition: null | 'focused' | false
#  disableLayout: true | false
  overview: true | false
  center: true | false
  touch: true | false
  loop: true | false
#  rtl: true | false
  navigationMode: 'default' | 'linear' | 'grid'
#  shuffle: true | false
  fragments: true | false
  fragmentInURL: true | false
#  embedded: true | false
  help: true | false
  pause: true | false
  showNotes: true | false
#  autoPlayMedia: null | true | false
#  preloadIframes: null | true | false
#  autoAnimate: true | false
#  autoAnimateMatcher: null | string
#  autoAnimateEasing: string
#  autoAnimateDuration: number
#  autoAnimateUnmatched: true | false
#  autoAnimateStyles:
#    - css-value-name
#    - css-value-name
#    - ...
#  autoSlide: number | false
#  autoSlideStoppable: true | false
#  autoSlideMethod: null | string
  defaultTiming: null | number
#  mouseWheel: true | false
  previewLinks: true | false
#  postMessage: true | false
#  postMessageEvents: true | false
#  focusBodyOnPageVisibilityChange: true | false
  transition: 'none' | 'slide' | 'fade' | 'convex' | 'concave' | 'zoom'
  transitionSpeed: 'default' | 'fast' | 'slow'
  backgroundTransition: 'none' | 'slide' | 'fade' | 'convex' | 'concave' | 'zoom'
#  pdfMaxPagesPerSlide: number
#  pdfSeparateFragments: true | false
#  pdfPageHeightOffset: number
#  viewDistance: number
#  mobileViewDistance: number
#  display: 'none' | 'block' | 'flex' | 'grid' | 'inline-block'
  hideInactiveCursor: true | false
  hideCursorTime: number

Konfigurationseinstellungen für MathJax

Sie können häufig genutzte Sequenzen von MathJax-Matheanweisungen als Makros definieren:

math:
  macros:
    macroname: 'mathjax evaluation'

Zum Beispiel:

math:
  macros:
    R: '{\texttip{\mathbb{R}}{reelle Zahlen}}'
    N: '{\texttip{\mathbb{N}}{natürliche Zahlen}}'
    Z: '{\texttip{\mathbb{Z}}{ganze Zahlen}}'
    Q: '{\texttip{\mathbb{Q}}{rationale Zahlen}}'
    C: '{\texttip{\mathbb{C}}{komplexe Zahlen}}'

Nun können Sie im Mathemodus das Makro , , , oder verwenden.

Konfigurationseinstellungen für die Videoaufnahme

Sie können Größe und Eigenschaften des Kamerafensters während einer Videoaufzeichnung konfigurieren, sowie die Dimensionen der erzeugten Videoaufnahme umstellen. All diese Einstellungen werden über die Kategorie explain vorgenommen:

explain:
  camWidth: number
  camHeight: number
  recWidth: number
  recHeight: number
  useGreenScreen: true | false
  greenScreenBackground: path
  greenScreenKey:
    b: number (0 to 255)
    g: number (0 to 255)
    r: number (0 to 255)
  greenScreenSimilarity: number (0.0 to 1.0)
  greenScreenSmoothness: number (0.0 to 1.0)

Konfigurationseinstellungen für das Feedback-System

Damit Sie Ihrem Publikum das Stellen von Fragen zu einzelnen Folien erlauben können, müssen Sie einen Backend-Server angeben, über den die Fragen verwaltet werden. Dies sollten Sie in Ihrer Projektweiten decker.yaml-Konfiguration über den Eintrag feedback.base-url erledigen:

feedback:
  base-url: 'https://url.zur/api/'

In den einzelnen Foliensätzen sollten Sie anschließend mit der Konfiguration feedback.deck-id dem Foliensatz einen eindeutigen Identifikator zuwesein. Der Präfix des Identifikators wird vom aktuell verwendeten Backend-Server dazu genutzt, um die Besitzer der Foliensätze und damit verbunden die Möglichkeit zum Login als Administrator des Foliensatzes zu verwalten.

Näheres zum Feedback-System finden Sie in der dazugehörigen Anleitung.

Konfigurationseinstellungen für die Farbpalette

Decker verwendet ein Farbpalettensystem, um den Inhalten ein einheitliches Aussehen zu geben. Die Farbpaletten bestehen aus 16 Farben von denen die ersten 8 die Vorder- und Hintergrundfarben beschreiben und die letzten 8 die Akzentfarben beschreiben. Die Akzentfarben sind für gewöhnlich in den Farbtönen des Regenbogens angeordnet:

Rot, Orange, Gelb, Grün, Türkis, Blau, Violett und Braun.

Zusätzlich besitzt die Farbpalette einen Kontrastwert, der zwischen \(0\) und \(1\) liegen sollte und angibt, wie sehr die helleren und dunkleren Versionen der Akzentfarben in die jeweilige Vorder- bzw. Hintergrundfarbe verschoben werden. Ein Wert von über 0.5 macht z.B. die zweifach helleren Farben unsichtbar, da sie gänzlich Weiß sind (Faktor \(\geq\) 1).

Zudem können Sie unterschiedliche Farben für den hellen und dunklen Betrachtungsmodus der Folien angeben.

Konfigurationsvorlage für die Farbpalette

Farbwerte sollten als CSS-RGB-Hexadezimalwert angegeben werden: z.B. #FF0000

palette:
  contrast: number (0.0 to 1.0)
  colors:
    light:
      - shade0
      - shade1
      - shade2
      - shade3
      - shade4
      - shade5
      - shade6
      - shade7
      - accent0
      - accent1
      - accent2
      - accent3
      - accent4
      - accent5
      - accent6
      - accent7
    dark:
      - shade0
      - shade1
      - shade2
      - shade3
      - shade4
      - shade5
      - shade6
      - shade7
      - accent0
      - accent1
      - accent2
      - accent3
      - accent4
      - accent5
      - accent6
      - accent7

Konfigurationseinstellungen für eigene Stildateien

Sie können eigene .css Stildateien in Ihre Folien einbinden, um häufig genutzte Stilvariationen einfacher anwenden zu können.

Eine Erklärung zu diesem Mechanismus finden Sie in der dazugehörigen Anleitung.

Konfigurationseinstellungen für LaTeX

Sie können die Bibliographiefunktionen von LaTeX nutzen, um Bibliographiedateien einzubinden und automatisch Literaturverzeichnisse ihrer zitierten Quellen erstellen lassen. Diese werden als letzte Folie an den Foliensatz angehangen.

Die notwendigen Konfigurationseinstellungen sind bibliography für die Bibliographiedatei und csl für die gewünschte Zitationsstildatei:

bibliography: bibliography.bib
csl: acm-sig-proceedings.csl

Konfigurationseinstellungen für Quizzes

Damit Sie während einer Präsentation mit dem Publikum Umfragen durchführen können müssen Sie einen Backend-Server für die Umfragen konfigurieren. Dies geschieht mit der Konfigurationsoption polling.server. Wichtig ist hier, dass das aktuelle Umfragesystem einen Websocket (wss://) und keinen HTTP/S (https://) - Endpunkt erwartet:

polling:
  server: 'wss://...'