Update Configuration Options (YAML Meta Data) authored by Armin Bernstetter's avatar Armin Bernstetter
WIP/TODO: An alphabetically ordered list of all possible meta options with description and where the meta option comes from (Reveal, pandoc, decker itself) and if it needs 0/1, true/false, "true"/"false", a String, number etc This page provides an overview of the meta data options available in Decker.
In Decker you can configure various options via the [YAML](https://yaml.org/) format. These configurations are also called **Meta Data**.
- affiliation To see which of these originate directly from **Reveal.js** have a look here: [https://revealjs.com/config/](https://revealjs.com/config/)
- align-global
- author
- author-meta These meta data variables can be specified in different places. In order of increasing precedence these are:
- authors
- autoSlide * the `decker.yaml` file that is read from the project's root directory
- autoSlideStoppable * additional meta data files specified in the meta data variable `meta-data`
- background-image * the meta data sections of the slide source Markdown file
- backgroundTransition
- bibliography Meta data is hierarchical but most variables are defined at the top level. A notable exception are variables that are used to set *local path* values (see [Local paths](home#File-paths)) in the slide template. These path values are located in the `template` namespace. For example, the value for the optional title teaser image is provided in the variable `template.title-teaser`.
Inside a YAML file or a YAML section of a file meta variable values are defined as follows:
```
template:
title-teaser: /images/teaser.png
```
If defined at the top of a markdown file, the file will begin with e.g.
```
---
author: Decker Author
template:
title-teaser: /images/teaser.png
...
---
# First slide
...
```
## Table of Contents
<details>
<summary>Click to display</summary>
[[_TOC_]]
</details>
## A
### affiliation
<details>
Affiliation can be used to define the affiliation of the author(s). E.g. the university or company.
Example:
```
affiliation: "Julius-Maximilians-Universität Würzburg"
```
</details>
### align-global
<details>
default horizontal alignment for various slide elements (defaults to `left`)
```
align-global: "left" | "center" | "right"
```
</details>
### author
<details>
displays a set string eg. `Isaac Asimov` underneath the date on the title slide
```
author: "Isaac Asimov"
```
</details>
### autoSlide
<details>
Number of milliseconds between automatically proceeding to the next slide, disabled when set to 0, this value can be overwritten by using a data-autoslide attribute on your slides.
The following example would continue to the next slide after 5 seconds.
```
autoSlide: 5000
```
</details>
### autoSlideStoppable
<details>
Stop auto-sliding after user input
```
autoSlideStoppable: "true" | "false"
```
</details>
## B
### backgroundTransition
<details>
- Transition style for full page slide backgrounds (defaults no `none`)
```
backgroundTransition: none/fade/slide/convex/concave/zoom
```
</details>
### bibliography
<details>
Add a `.bib` file that can be referenced.
```
bibliography: bibliography.bib
```
</details>
### border-decoration-\*
- border-decoration-padding - border-decoration-padding
- border-decoration-style - border-decoration-style
- border-decoration-width - border-decoration-width
- center
- chalkboard <details>
- chart Define custom CSS properties for the border of h2 highlight blocks such as `.question`. ([see here](https://gitlab2.informatik.uni-wuerzburg.de/decker/decker/-/wikis/Text-Formatting#highlight-blocks))
- checkOverflow
- controls
- csl ```
- date border-decoration-width: 20px
- date-meta border-decoration-padding: 10px
- decker-engine.base-url border-decoration-style: solid
- decker-engine.deck-id ```
- defaultTiming </details>
- dictionary:
## C
### center
<details>
Move content vertically to the center of a slide
```
center: "true" | "false"
```
</details>
### chalkboard
<details>
Define the `.json` file where chalkboard notes will be saved to and loaded from.
```
chalkboard: "chalkboard-file.json"
```
</details>
### chart
<details>
Toggle if charts can be used.
```
chart: "true" | "false"
```
</details>
### checkOverflow
<details>
mark overflowing slides with a red border (defaults to `false`)
```
checkOverflow: "true" | "false"
```
</details>
**controls**
<details>
enable the navigation arrows in the bottom right
```
controls: "true" | "false"
```
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_controlsWarrow.png" width=60% height=60%>
</details>
### csl
<details>
Define a `.csl` (Citation Style Language) file that is used for citations.
</details>
## D
### date
<details>
Displays a set string eg. `2019-10-28` on the title slide. If provided with the string `"today"` it will display the date on which the HTML file was created.
```
date: "11.11.2020"
``` ```
</details>
### date-meta
<details>
HTML document header meta data. `date` alone does not add a date to the HTML document header. `date-meta` does not set a date on the title slide.
</details>
### decker-engine
<details>
For more details on this function see [Audience Questions](Audience-Questions)
The audience of a deck can annotate slides with questions. The questions
are aggregated on a server and are visible by all audience members and
the author.
The slide author can later choose to address the questions by changeing
or extending the information in the deck.
To enable this feature a deck must specify the URL of a Decker Engine
server in the meta data by setting the variable
`decker-engine.base-url`. For example:
```
decker-engine:
base-url: 'https://tramberend.beuth-hochschule.de/decker'
deck-id: 'https://tramberend.beuth-hochschule.de/public/decker/test/decks/engine-deck.html'
```
</details>
### defaultTiming
<details>
Present a timer in the speaker view with the set amount of seconds on every slide. (defaults to ``)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_timer.png" width=60% height=60%>
</details>
### dictionary
<details>
Allow a language dictionary to translate UI elements. This is a work in progress and will be extended. Language can be switched with the option `lang` (see below).
```yaml
de: de:
exam: exam:
solution: Lösung solution: Lösung
...@@ -60,22 +285,154 @@ WIP/TODO: An alphabetically ordered list of all possible meta options with descr ...@@ -60,22 +285,154 @@ WIP/TODO: An alphabetically ordered list of all possible meta options with descr
qmi-drag-hint: Drag items from here... qmi-drag-hint: Drag items from here...
qmi-drop-hint: ...and put them here into the correct category. qmi-drop-hint: ...and put them here into the correct category.
``` ```
- embedded </details>
- font-size-base
- fragmentInURL ## E
- fragments
- hash ### embedded
- header-includes <details>
- height Flags if the presentation is running in an embedded mode, i.e. contained within a limited portion of the screen.
- help
- hideAddressBar ```
- hideCursorTime embedded: "true" | "false"
- hideInactiveCursor ```
- highlighting-css </details>
- highlightjs
- include-after ### exclude-directories
- include-before
- jupyter <details>
Exclude directories that decker should not consider for watching and compiling.
```
exclude-directories:
- dirA
- dirB
# OR
exclude-directories: [dirA, dirB]
```
</details>
## F
### font-size-base
<details>
Set font size in the whole presentation. Relative font sizes (such as `.small` will be based upon this setting)
```
font-size-base: 30px
```
</details>
### fragmentInURL
<details>
```
fragmentInURL: "true" | "false"
```
Example of fragments in URLs
1. localhost:8888/example-deck.html#/1/0/**-1** - no fragment
2. localhost:8888/example-deck.html#/1/0/**0** - 1st fragment
3. localhost:8888/example-deck.html#/1/0/**1** - 2nd fragment
</details>
### fragments
<details>
Use .fragment to reveal slides incrementally (defaults to `"true"`). See [Slide-Layout#fragments](Slide-Layout#fragments)
</details>
## H
### hash
<details>
add the current slide number to the URL hash so that reloading the page or copying the URL will return you to the same slide. Defaults to `true`
```
hash: "true" | "false"
```
</details>
### height
<details>
Set the height of a slide deck
```
height: "1080"
```
</details>
### help
<details>
Display a help overlay on `?` press (defaults to `true`)
```
help: "true" | "false"
```
</details>
### hideAddressBar
<details>
hides the address bar on mobile devices
```
hideAddressBar: "true" | "false"
```
</details>
### hideCursorTime
<details>
Time until cursor will be hidden in a presentation (in ms)
```
hideCursorTime: 2000
```
</details>
### hideInactiveCursor
<details>
hide inactive cursor. To deactivate remove `hideCursorTime` and set to `false` (defaults to `true`)
</details>
### highlightjs
<details>
- The Meta-Option `highlightjs` controls which code highlighting is used
- If not set, `pandoc` highlighting will be used.
- If `highlightjs: style` is specified, decker will disable `pandoc` code
highlighting and instead use `highlighjs`, with the CSS style
file `style.css`
- The following styles are supported:
- `atom-one-dark` and `atom-one-light`
- `solarized-dark` and `solarized-light`
- `xcode`
- `zenburn`
```
highlightjs: "atom-one-light"
```
</details>
### history
<details>
add entries to the browser's history for every slide visited (defaults to `false`)
</details>
## I
## J
### jupyter
<details>
``` ```
jupyter: jupyter:
kernelspec: kernelspec:
...@@ -89,36 +446,235 @@ jupyter: ...@@ -89,36 +446,235 @@ jupyter:
nbformat: 4.0 nbformat: 4.0
nbformat_minor: 2. nbformat_minor: 2.
``` ```
- keyboard </details>
- keywords
- lang ## K
- loop
- margin ### keyboard
- margin-columns <details>
- mario allow the use of [keyboard shortcuts](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/wikis/Decker-Presentation-Manual#keyboard-shortcuts) to navigate the presentation (defaults to `"true"`)
- math </details>
- mathMacros
- maxScale ### keywords
- menu <details>
- minScale HTML document header meta data
- mouseWheel </details>
- navigationMode
- overview ## L
- parallaxBackground
### lang
<details>
changes the language of HTML content by setting to the corrosponding ISO Language Code (eg. `de`)
```
lang: "de"
```
</details>
### loop
<details>
begin anew after the last slide (defaults to `false`)
</details>
## M
### margin
<details>
Set the border margin (defaults to `0`)
</details>
### margin-columns
<details>
Column spacing, in same awkward unit as reveal's margin which is fraction of space. Beware, does strange things if set too large.
</details>
### mario
<details>
Use Mario Botsch's CSS for the slides (defaults to `false`) 🚧
</details>
### mathMacros
<details>
Define custom LaTeX macros. Beware: will disable the macros that are currently defined per default in the `deck.html` template. If these are required then you currently need to copy those.
Works only in `decker.yaml` and NOT in a single slide deck!
The `"|"` signifies the *YAML text block syntax*. This is needed for the `mathMacros` option
```
mathMacros: |
{
R: "{{\\mathrm{{I}\\kern-.15em{R}}}}",
laplace: "{\\Delta}",
sig: "{\\Sigma}"
}
```
</details>
### maxScale
<details>
Bounds for largest possible scale to apply to content.
```
maxScale: 0.5
```
</details>
### menu
<details>
allow users to display the menu (defaults to `true`)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_menuWarrow.png" width=60% height=60%>
</details>
### meta-data
<details>
Specify additional `yaml` meta data files either in `decker.yaml` or in a Markdown document header.
```yaml
meta-data:
- test.yaml
- test2.yaml
```
The priority for merging goes as follows:
* document level (i.e. in `*-deck.md files`) meta will overwrite global meta (in `decker.yaml`)
* meta files further down the `meta-data` list will overwrite meta that came before
</details>
<details>
Bounds for smallest possible scale to apply to content
</details>
### mouseWheel
<details>
Enable slide navigation via mouse wheel
</details>
## N
### navigationMode
<details>
See [the Reveal.js documentation](https://github.com/hakimel/reveal.js/#navigation-mode)
</details>
## O
### overview
<details>
present an overview of all slides (defaults to `true`)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_Overview.png" width=30% height=30%>
</details>
## P
### parallaxBackground
- parallaxBackgroundImage
- parallaxBackgroundHorizontal - parallaxBackgroundHorizontal
- parallaxBackgroundSize - parallaxBackgroundSize
- parallaxBackgroundVertical - parallaxBackgroundVertical
- previewLinks
- progress <details>
- provisioning
- quiz.style ```
- quizServer parallaxBackgroundImage: "image/image.png"
- quotes # Amount to move parallax background (horizontal and vertical) on slide change Number, e.g. 100
- rsync-destination parallaxBackgroundHorizontal: 100
- host parallaxBackgroundVertical: 100
- path parallaxBackgroundSize: "2100px 900px"
- rtl ```
- short-links
</details>
### previewLinks
<details>
open links in an iframe preview overlay (defaults to `false`)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_progressWarrow.png" width=50% height=50%>
</details>
### progress
<details>
display a progress bar at the bottom of the presentation (defaults to `"true"`)
</details>
## Q
### quiz.style
<details>
Define the style for quizzes
```
quiz:
style: plain
```
</details>
### quizServer
<details>
Mario's multiple-choice quiz
</details>
## R
### rsync-destination
<details>
Decker can use a locally installed [Rsync](https://rsync.samba.org) to
publish the entire project to a remote location with the command
``` {.sh}
> decker publish
```
The remote location is specified in the meta data variable
`publish.rsync.destination:` using the URL formats that Rsync
understands. For example, to publish the entire project directly into
the document directory of a remote webserver the `decker.yaml` file
would contain:
``` {.yaml}
publish:
rsync:
destination: author@public.server.com:/var/www/html/cg-lectures
```
To more precisely control the behaviour of Rsync, a list of options can
be specified in the variable `publish.rsync.options`. For example, to
*mirror* (as opposed to *copy* ) the public directory to the destination
the setting would be:
``` {.yaml}
publish:
rsync:
destination: author@public.server.com:/var/www/html/cg-lectures
options:
- --delete
```
</details>
### rtl
<details>
flip the progress bar and the controls, so that the UI has a left to right layout (defaults to `false`)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/decker_rtl_ui.png" width=60% height=60%>
</details>
## S
### short-links
<details>
``` ```
short-links: short-links:
beuth: 'https://www.beuth-hochschule.de/@@' beuth: 'https://www.beuth-hochschule.de/@@'
...@@ -128,22 +684,143 @@ short-links: ...@@ -128,22 +684,143 @@ short-links:
binder: 'https://mybinder.org/v2/gh/monofon/plc-java/master?filepath=@@@' binder: 'https://mybinder.org/v2/gh/monofon/plc-java/master?filepath=@@@'
local: 'http://localhost:8192/@@?token=plc' local: 'http://localhost:8192/@@?token=plc'
``` ```
- showNotes </details>
- shuffle
- slideNumber ### showNotes
- spacing-vertical-base <details>
- stretch-media Flags if speaker notes should be visible to all viewers
- style
- subtitle ```
- template.base-css showNotes: "true" | "false"
- template.css ```
- template.favicon </details>
- template.include-js
- template.teaser ### shuffle
- template.title-page.affiliation-logo
- template.title-page.banner <details>
- template.title-page.teaser-img randomize the slide order (defaults to `false`)
- thebelab </details>
### slideNumber
<details>
display the current slide number
```
slideNumber: "true" | "false"
```
</details>
### spacing-vertical-base
<details>
defines the basic vertical spacing between elements as a number
</details>
### static-resource-dirs
<details>
Define additional directories that will be copied to `public` even if no file is included in/required by the slide-deck
```
static-resource-dirs:
- dirA
- dirB
```
</details>
### stretch-media
<details>
Whether to include the `stretch-media.css` file.
```
```
</details>
### style
<details>
a list of CSS styles that are inserted into the HTML header (defaults to `[]`)
For example, to set the background color of a all H2 header elements
to red specify:
``` {.yaml}
style:
- 'h2 { backgroundColor: #f00; }'
```
</details>
### subtitle
<details>
displays a set string eg. `a comprehensive guide` underneath the title on the title slide
</details>
## T
### template
- base-css
- css
- favicon TODO: Need working example
- include-js
- title-page
- teaser-img
- banner
- affiliation-logo
<details>
Template subsumes several different options that live under its namespace. All of them can be defined under one `template` definition.
Example: (more detailed examples under each specific option)
```
template:
favicon:
# the first CSS file that is loaded by the template (defaults to `''`)
base-css: basefile.css
#
css:
- file1.css
- file2.css
# a list of Javascript files that are included in the slide deck before Reveal.js is initialized (defaults to `[]`)
include-js:
- file1.js
- file2.js
title-page:
# an image that is placed below the title line on the title slide (defaults to `''`)
teaser-img: include/teaser.png
# a header image on the title slide (defaults to `''`)
banner: include/banner.png
# an image that is placed above the affiliation information on the title slide (defaults to `''`)
affiliation-logo: include/affiliation.png
```
</details>
### thebelab
<details>
A Javascript client library for Jupyter servers that uses the Jupyter
API
- [minrk/thebelab](https://github.com/minrk/thebelab)
- [ThebeLab - ThebeLab
documentation](https://thebelab.readthedocs.io/en/latest/)
**Binder**
ThebeLab uses Binder to run the Jupyter server with the IHaskell kernel
from a custom Docker image on GitHub.
- [The Binder Project](https://mybinder.org)
- [gibiansky/IHaskell](https://github.com/gibiansky/IHaskell)
- [monofon/plc-notebooks](https://github.com/monofon/plc-notebooks)
``` ```
thebelab: thebelab:
baseUrl: 'http://localhost:8192/' baseUrl: 'http://localhost:8192/'
...@@ -156,22 +833,124 @@ thebelab: ...@@ -156,22 +833,124 @@ thebelab:
repoProvider: github repoProvider: github
token: pl token: pl
``` ```
- thebelab.enable </details>
- thebelab.local
- title ### title
- title-prefix
- toc <details>
- totalTime displays a set string eg. `The Decker Experience` on a added a title slide at the start of a presentation
- touch </details>
- transition
- transitionSpeed </details>
- vertical-slides
- viewDistance ### totalTime
<details>
Divide the set amount of time by the slide count and present a timer in the speaker view with the average duration to spend on each slide (defaults to ``)
</details>
### touch
<details>
Use swipe gestures to navigate slides (defaults no `"true"`). Must be defined in the corresponding .yaml file.
</details>
### transition
<details>
change the slide transitions (defaults no `none`)
| Transitions | Video Example |
| ------ | ------ |
| `none`: Switch backgrounds instantly | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_none.mp4) |
| `fade`: Cross fade | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_fade.mp4) |
| `slide`: Slide between backgrounds | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_slide.mp4) |
| `convex`: Slide at a convex angle | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_convex.mp4) |
| `concave`: Slide at a concave angle | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_concave.mp4) |
| `zoom`: Scale the incoming slide up so it grows in from the center of the screen | ![](https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/decker_transition_zoom.mp4) |
</details>
### transitionSpeed
<details>
change the speed of a slide transition (defaults to `default`). Can be set to `slow`, `fast` or `default`
</details>
## V
### vertical-slides
<details>
allow vertical slides (defaults to `true`)
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/Videos/VerticalSlides.gif">
<img src="https://gitlab2.informatik.uni-wuerzburg.de/s334445/decker-struktur-wiki/-/raw/master/Decker%20Wiki%20Images/Yaml/VerticalSlide.PNG" width=60% height=60%>
</details>
### viewDistance
<details>
Number of slides away from the current that are visible
```
viewDistance: 3
```
</details>
## W
### whiteboard
Define CSS for the whiteboard
- whiteboard-active-color - whiteboard-active-color
- whiteboard-background-color - whiteboard-background-color
- whiteboard-icon-size - whiteboard-icon-size
- whiteboard-inactive-color - whiteboard-inactive-color
- width
<details>
</details>
### width
<details>
Define a width for the slide deck
```
width: 1920
```
</details>
### write-back
<details>
The `write-back` option enables auto-formatting of markdown source files. This works via pandoc writing back a formatted markdown document to the source file.
```yaml
write-back:
enable: true | false
line-columns: 80
line-wrap: auto|none|preserve
```
</details>
# WIP: List of deprecated/outdated options
The options here need clarification!
This section will be removed once all deprecated or outdated options in the above sections have been found.
- author-meta
- authors
- background-image
- date-meta vs date
- dir: has been deprecated/not supported in HTML5
- header-includes
- highlighting-css
- include-before
- include-after
- quotes
- title-prefix
- toc
- write-back - write-back
- enable
- write-notebook - write-notebook
\ No newline at end of file