summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTilman Vatteroth2021-02-02 13:27:37 +0100
committerTilman Vatteroth2021-02-02 13:27:37 +0100
commit9f59a73049655608cd0cb05be7db5231ece27aef (patch)
treed749461ab53bd7203cde75b03dbd8db8302c3794
parent78a732abe691b496fa3692aa2add37f7344db1fa (diff)
Fix wrong acces to slide options
If the slide options in the frontmatter are empty or not present, then slideOptions object in the parsed JSON is undefined. This triggers an exception when the sanitized slide options object is built. Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
-rw-r--r--public/js/slide.js99
1 files changed, 50 insertions, 49 deletions
diff --git a/public/js/slide.js b/public/js/slide.js
index e0e831ca..b8374cbb 100644
--- a/public/js/slide.js
+++ b/public/js/slide.js
@@ -72,56 +72,57 @@ const defaultOptions = {
// options from yaml meta
const meta = JSON.parse($('#meta').text())
+const metaSlideOptions = !!meta && !!meta.slideOptions ? meta.slideOptions : {}
var options = {
- autoPlayMedia: meta.slideOptions.autoPlayMedia,
- autoSlide: meta.slideOptions.autoSlide,
- autoSlideStoppable: meta.slideOptions.autoSlideStoppable,
- backgroundTransition: meta.slideOptions.backgroundTransition,
- center: meta.slideOptions.center,
- controls: meta.slideOptions.controls,
- controlsBackArrows: meta.slideOptions.controlsBackArrows,
- controlsLayout: meta.slideOptions.controlsLayout,
- controlsTutorial: meta.slideOptions.controlsTutorial,
- defaultTiming: meta.slideOptions.defaultTiming,
- display: meta.slideOptions.display,
- embedded: meta.slideOptions.embedded,
- fragmentInURL: meta.slideOptions.fragmentInURL,
- fragments: meta.slideOptions.fragments,
- hash: meta.slideOptions.hash,
- height: meta.slideOptions.height,
- help: meta.slideOptions.help,
- hideAddressBar: meta.slideOptions.hideAddressBar,
- hideCursorTime: meta.slideOptions.hideCursorTime,
- hideInactiveCursor: meta.slideOptions.hideInactiveCursor,
- history: meta.slideOptions.history,
- keyboard: meta.slideOptions.keyboard,
- loop: meta.slideOptions.loop,
- margin: meta.slideOptions.margin,
- maxScale: meta.slideOptions.maxScale,
- minScale: meta.slideOptions.minScale,
- minimumTimePerSlide: meta.slideOptions.minimumTimePerSlide,
- mobileViewDistance: meta.slideOptions.mobileViewDistance,
- mouseWheel: meta.slideOptions.mouseWheel,
- navigationMode: meta.slideOptions.navigationMode,
- overview: meta.slideOptions.overview,
- parallaxBackgroundHorizontal: meta.slideOptions.parallaxBackgroundHorizontal,
- parallaxBackgroundImage: meta.slideOptions.parallaxBackgroundImage,
- parallaxBackgroundSize: meta.slideOptions.parallaxBackgroundSize,
- parallaxBackgroundVertical: meta.slideOptions.parallaxBackgroundVertical,
- preloadIframes: meta.slideOptions.preloadIframes,
- previewLinks: meta.slideOptions.previewLinks,
- progress: meta.slideOptions.progress,
- rtl: meta.slideOptions.rtl,
- showNotes: meta.slideOptions.showNotes,
- shuffle: meta.slideOptions.shuffle,
- slideNumber: meta.slideOptions.slideNumber,
- theme: meta.slideOptions.theme,
- totalTime: meta.slideOptions.totalTime,
- touch: meta.slideOptions.touch,
- transition: meta.slideOptions.transition,
- transitionSpeed: meta.slideOptions.transitionSpeed,
- viewDistance: meta.slideOptions.viewDistance,
- width: meta.slideOptions.width
+ autoPlayMedia: metaSlideOptions.autoPlayMedia,
+ autoSlide: metaSlideOptions.autoSlide,
+ autoSlideStoppable: metaSlideOptions.autoSlideStoppable,
+ backgroundTransition: metaSlideOptions.backgroundTransition,
+ center: metaSlideOptions.center,
+ controls: metaSlideOptions.controls,
+ controlsBackArrows: metaSlideOptions.controlsBackArrows,
+ controlsLayout: metaSlideOptions.controlsLayout,
+ controlsTutorial: metaSlideOptions.controlsTutorial,
+ defaultTiming: metaSlideOptions.defaultTiming,
+ display: metaSlideOptions.display,
+ embedded: metaSlideOptions.embedded,
+ fragmentInURL: metaSlideOptions.fragmentInURL,
+ fragments: metaSlideOptions.fragments,
+ hash: metaSlideOptions.hash,
+ height: metaSlideOptions.height,
+ help: metaSlideOptions.help,
+ hideAddressBar: metaSlideOptions.hideAddressBar,
+ hideCursorTime: metaSlideOptions.hideCursorTime,
+ hideInactiveCursor: metaSlideOptions.hideInactiveCursor,
+ history: metaSlideOptions.history,
+ keyboard: metaSlideOptions.keyboard,
+ loop: metaSlideOptions.loop,
+ margin: metaSlideOptions.margin,
+ maxScale: metaSlideOptions.maxScale,
+ minScale: metaSlideOptions.minScale,
+ minimumTimePerSlide: metaSlideOptions.minimumTimePerSlide,
+ mobileViewDistance: metaSlideOptions.mobileViewDistance,
+ mouseWheel: metaSlideOptions.mouseWheel,
+ navigationMode: metaSlideOptions.navigationMode,
+ overview: metaSlideOptions.overview,
+ parallaxBackgroundHorizontal: metaSlideOptions.parallaxBackgroundHorizontal,
+ parallaxBackgroundImage: metaSlideOptions.parallaxBackgroundImage,
+ parallaxBackgroundSize: metaSlideOptions.parallaxBackgroundSize,
+ parallaxBackgroundVertical: metaSlideOptions.parallaxBackgroundVertical,
+ preloadIframes: metaSlideOptions.preloadIframes,
+ previewLinks: metaSlideOptions.previewLinks,
+ progress: metaSlideOptions.progress,
+ rtl: metaSlideOptions.rtl,
+ showNotes: metaSlideOptions.showNotes,
+ shuffle: metaSlideOptions.shuffle,
+ slideNumber: metaSlideOptions.slideNumber,
+ theme: metaSlideOptions.theme,
+ totalTime: metaSlideOptions.totalTime,
+ touch: metaSlideOptions.touch,
+ transition: metaSlideOptions.transition,
+ transitionSpeed: metaSlideOptions.transitionSpeed,
+ viewDistance: metaSlideOptions.viewDistance,
+ width: metaSlideOptions.width
} || {}
for (const key in options) {