From 2b5394336af769e6f25eaac079faf0953c343c03 Mon Sep 17 00:00:00 2001 From: Alex Myasoedov Date: Thu, 2 Mar 2017 22:16:37 -0500 Subject: [PATCH 1/2] Theme ctrl --- static/js/slides.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/static/js/slides.js b/static/js/slides.js index 06e1756..36e79d2 100644 --- a/static/js/slides.js +++ b/static/js/slides.js @@ -5,6 +5,7 @@ function isPreview() { function initializeReveal() { // Full list of configuration options available at: // https://github.com/hakimel/reveal.js#configuration + Reveal.initialize({ controls: true, progress: true, @@ -70,6 +71,8 @@ function initializeReveal() { } ] }); + + themesCtrl(); } function highlightAnyCodeBlocks() { @@ -112,6 +115,47 @@ function externalLinksInNewWindow() { insertMarkdownReference(); initializeReveal(); +function themesCtrl() { + var defaultTheme = "black.css", + currentTheme = localStorage.getItem('theme?') || + defaultTheme; + + function setTheme(theme) { + cssEl = $("#theme"); + cssEl.attr("href", "/static/reveal.js/css/theme/" + theme); + localStorage.setItem('theme?', theme); + } + setTheme(currentTheme); + + if (!isPreview()) { + return + } + var availableThemes = [ + "black.css", + "beige.css", + "blood.css", + "league.css", + "moon.css", + "night.css", + "serif.css", + "simple.css", + "sky.css", + "solarized.css", + "white.css", + ]; + themeEl = $("#themes"); + availableThemes.forEach(function(theme) { + elem = $(""); + themeEl.append(elem); + }) + themeEl.val(currentTheme); + themeEl.change(function() { + val = themeEl.val() + setTheme(val); + }); + themeEl.attr("hidden", false); +} + // Monkey patch Reveal so we can reload markdown through an // inter window message (using the reveal rpc api) // (yes, reveal has an rpc api!) From 7de98eeea6f75af1a3eb9a305589e0720c37339d Mon Sep 17 00:00:00 2001 From: Alex Myasoedov Date: Thu, 2 Mar 2017 22:16:49 -0500 Subject: [PATCH 2/2] Update templates --- static/js/index.js | 85 +++++++++++++++++++++---------------------- templates/slides.tmpl | 2 + 2 files changed, 43 insertions(+), 44 deletions(-) diff --git a/static/js/index.js b/static/js/index.js index 0518c2c..d9e0ef7 100644 --- a/static/js/index.js +++ b/static/js/index.js @@ -1,54 +1,51 @@ $(function() { - function slideSeparatorLines(text) { - var lines = text.split('\n'); + function slideSeparatorLines(text) { + var lines = text.split('\n'); - var separatorLineNumbers = []; + var separatorLineNumbers = []; - for (i = 0; i < lines.length; i++) { - var line = lines[i]; - if (line === '---') { - separatorLineNumbers.push(i); - } + for (i = 0; i < lines.length; i++) { + var line = lines[i]; + if (line === '---') { + separatorLineNumbers.push(i); + } + } + + return separatorLineNumbers; } - return separatorLineNumbers; - } + function currentCursorSlide(cursorLine) { + var text = ace.edit("editor").getValue(); + var separatorPositions = slideSeparatorLines(text); + var slideNumber = separatorPositions.length; + separatorPositions.every(function(pos, num) { + if (pos >= cursorLine) { + slideNumber = num; + return false; + } + return true; + }); + return slideNumber; + } - function currentCursorSlide(cursorLine) { - var text = ace.edit("editor").getValue(); - var separatorPositions = slideSeparatorLines(text); - var slideNumber = separatorPositions.length; - separatorPositions.every(function(pos, num) { - if (pos >= cursorLine) { - slideNumber = num; - return false; - } - return true; + + var editor = ace.edit("editor"); + editor.setTheme("ace/theme/chrome"); + editor.getSession().setMode("ace/mode/markdown"); + editor.getSession().setUseWrapMode(true); + editor.setShowPrintMargin(true); + + $.get('/slides.md', function(data) { + editor.setValue(data, -1); }); - return slideNumber; - } - - var editor = ace.edit("editor"); - editor.setTheme("ace/theme/chrome"); - editor.getSession().setMode("ace/mode/markdown"); - editor.getSession().setUseWrapMode(true); - editor.setShowPrintMargin(true); - - $.get('/slides.md', function(data) { - editor.setValue(data, -1); - }); - - ace.edit('editor').getSession().selection.on('changeCursor', function(e) { - var cursorRow = ace.edit('editor').getCursorPosition().row; - var currentSlide = currentCursorSlide(cursorRow); - $('#slides-frame')[0].contentWindow.postMessage(JSON.stringify({ - method: 'slide', - args: [currentSlide] - }), window.location.origin); - }); + ace.edit('editor').getSession().selection.on('changeCursor', function(e) { + var cursorRow = ace.edit('editor').getCursorPosition().row; + var currentSlide = currentCursorSlide(cursorRow); + $('#slides-frame')[0].contentWindow.postMessage(JSON.stringify({ + method: 'slide', + args: [currentSlide] + }), window.location.origin); + }); }); - - - diff --git a/templates/slides.tmpl b/templates/slides.tmpl index ac6b646..bf590c0 100644 --- a/templates/slides.tmpl +++ b/templates/slides.tmpl @@ -36,6 +36,8 @@ +