slippery 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/assets/deck.js/core/deck.core.css +60 -0
  4. data/assets/deck.js/core/deck.core.js +728 -0
  5. data/assets/deck.js/core/deck.core.scss +65 -0
  6. data/assets/deck.js/core/print.css +25 -0
  7. data/assets/deck.js/core/print.scss +14 -0
  8. data/assets/deck.js/css/common.css +216 -0
  9. data/assets/deck.js/css/common.scss +233 -0
  10. data/assets/deck.js/css/home.css +790 -0
  11. data/assets/deck.js/css/home.scss +892 -0
  12. data/assets/deck.js/extensions/goto/deck.goto.css +36 -0
  13. data/assets/deck.js/extensions/goto/deck.goto.html +7 -0
  14. data/assets/deck.js/extensions/goto/deck.goto.js +190 -0
  15. data/assets/deck.js/extensions/goto/deck.goto.scss +39 -0
  16. data/assets/deck.js/extensions/hash/deck.hash.css +13 -0
  17. data/assets/deck.js/extensions/hash/deck.hash.html +2 -0
  18. data/assets/deck.js/extensions/hash/deck.hash.js +145 -0
  19. data/assets/deck.js/extensions/hash/deck.hash.scss +13 -0
  20. data/assets/deck.js/extensions/menu/deck.menu.css +45 -0
  21. data/assets/deck.js/extensions/menu/deck.menu.js +225 -0
  22. data/assets/deck.js/extensions/menu/deck.menu.scss +55 -0
  23. data/assets/deck.js/extensions/navigation/deck.navigation.css +42 -0
  24. data/assets/deck.js/extensions/navigation/deck.navigation.html +5 -0
  25. data/assets/deck.js/extensions/navigation/deck.navigation.js +94 -0
  26. data/assets/deck.js/extensions/navigation/deck.navigation.scss +44 -0
  27. data/assets/deck.js/extensions/scale/deck.scale.css +20 -0
  28. data/assets/deck.js/extensions/scale/deck.scale.js +190 -0
  29. data/assets/deck.js/extensions/scale/deck.scale.scss +22 -0
  30. data/assets/deck.js/extensions/status/deck.status.css +18 -0
  31. data/assets/deck.js/extensions/status/deck.status.html +6 -0
  32. data/assets/deck.js/extensions/status/deck.status.js +108 -0
  33. data/assets/deck.js/extensions/status/deck.status.scss +18 -0
  34. data/assets/deck.js/modernizr.custom.js +4 -0
  35. data/assets/deck.js/themes/style/_reset.scss +300 -0
  36. data/assets/deck.js/themes/style/neon.css +421 -0
  37. data/assets/deck.js/themes/style/neon.scss +148 -0
  38. data/assets/deck.js/themes/style/swiss.css +389 -0
  39. data/assets/deck.js/themes/style/swiss.scss +109 -0
  40. data/assets/deck.js/themes/style/web-2.0.css +500 -0
  41. data/assets/deck.js/themes/style/web-2.0.scss +228 -0
  42. data/assets/deck.js/themes/transition/fade.css +35 -0
  43. data/assets/deck.js/themes/transition/fade.scss +59 -0
  44. data/assets/deck.js/themes/transition/horizontal-slide.css +53 -0
  45. data/assets/deck.js/themes/transition/horizontal-slide.scss +72 -0
  46. data/assets/deck.js/themes/transition/vertical-slide.css +67 -0
  47. data/assets/deck.js/themes/transition/vertical-slide.scss +92 -0
  48. data/assets/highlight.js/CHANGES.md +953 -0
  49. data/assets/highlight.js/LICENSE +24 -0
  50. data/assets/highlight.js/README.md +101 -0
  51. data/assets/highlight.js/README.ru.md +101 -0
  52. data/assets/highlight.js/highlight-0.8.default.min.css +1 -0
  53. data/assets/highlight.js/highlight-0.8.min.js +1 -0
  54. data/assets/highlight.js/highlight.pack.js +1 -0
  55. data/assets/highlight.js/styles/arta.css +141 -0
  56. data/assets/highlight.js/styles/ascetic.css +53 -0
  57. data/assets/highlight.js/styles/atelier-dune.dark.css +95 -0
  58. data/assets/highlight.js/styles/atelier-dune.light.css +95 -0
  59. data/assets/highlight.js/styles/atelier-forest.dark.css +95 -0
  60. data/assets/highlight.js/styles/atelier-forest.light.css +95 -0
  61. data/assets/highlight.js/styles/atelier-heath.dark.css +95 -0
  62. data/assets/highlight.js/styles/atelier-heath.light.css +95 -0
  63. data/assets/highlight.js/styles/atelier-lakeside.dark.css +95 -0
  64. data/assets/highlight.js/styles/atelier-lakeside.light.css +95 -0
  65. data/assets/highlight.js/styles/atelier-seaside.dark.css +95 -0
  66. data/assets/highlight.js/styles/atelier-seaside.light.css +95 -0
  67. data/assets/highlight.js/styles/brown_paper.css +105 -0
  68. data/assets/highlight.js/styles/brown_papersq.png +0 -0
  69. data/assets/highlight.js/styles/codepen-embed.css +108 -0
  70. data/assets/highlight.js/styles/color-brewer.css +169 -0
  71. data/assets/highlight.js/styles/dark.css +105 -0
  72. data/assets/highlight.js/styles/default.css +153 -0
  73. data/assets/highlight.js/styles/docco.css +136 -0
  74. data/assets/highlight.js/styles/far.css +112 -0
  75. data/assets/highlight.js/styles/foundation.css +136 -0
  76. data/assets/highlight.js/styles/github.css +127 -0
  77. data/assets/highlight.js/styles/googlecode.css +148 -0
  78. data/assets/highlight.js/styles/hybrid.css +171 -0
  79. data/assets/highlight.js/styles/idea.css +126 -0
  80. data/assets/highlight.js/styles/ir_black.css +110 -0
  81. data/assets/highlight.js/styles/kimbie.dark.css +96 -0
  82. data/assets/highlight.js/styles/kimbie.light.css +96 -0
  83. data/assets/highlight.js/styles/magula.css +122 -0
  84. data/assets/highlight.js/styles/mono-blue.css +70 -0
  85. data/assets/highlight.js/styles/monokai.css +127 -0
  86. data/assets/highlight.js/styles/monokai_sublime.css +148 -0
  87. data/assets/highlight.js/styles/obsidian.css +154 -0
  88. data/assets/highlight.js/styles/paraiso.dark.css +95 -0
  89. data/assets/highlight.js/styles/paraiso.light.css +95 -0
  90. data/assets/highlight.js/styles/pojoaque.css +108 -0
  91. data/assets/highlight.js/styles/pojoaque.jpg +0 -0
  92. data/assets/highlight.js/styles/railscasts.css +185 -0
  93. data/assets/highlight.js/styles/rainbow.css +109 -0
  94. data/assets/highlight.js/styles/school_book.css +113 -0
  95. data/assets/highlight.js/styles/school_book.png +0 -0
  96. data/assets/highlight.js/styles/solarized_dark.css +109 -0
  97. data/assets/highlight.js/styles/solarized_light.css +109 -0
  98. data/assets/highlight.js/styles/sunburst.css +165 -0
  99. data/assets/highlight.js/styles/tomorrow-night-blue.css +95 -0
  100. data/assets/highlight.js/styles/tomorrow-night-bright.css +94 -0
  101. data/assets/highlight.js/styles/tomorrow-night-eighties.css +94 -0
  102. data/assets/highlight.js/styles/tomorrow-night.css +95 -0
  103. data/assets/highlight.js/styles/tomorrow.css +92 -0
  104. data/assets/highlight.js/styles/vs.css +94 -0
  105. data/assets/highlight.js/styles/xcode.css +159 -0
  106. data/assets/highlight.js/styles/zenburn.css +119 -0
  107. data/assets/jquery/jquery-2.1.0.min.js +4 -0
  108. data/assets/reveal.js/css/print/paper.css +1 -1
  109. data/assets/reveal.js/css/print/pdf.css +2 -2
  110. data/assets/reveal.js/css/reveal.css +372 -108
  111. data/assets/reveal.js/css/reveal.min.css +2 -2
  112. data/assets/reveal.js/css/theme/README.md +3 -1
  113. data/assets/reveal.js/css/theme/beige.css +7 -1
  114. data/assets/reveal.js/css/theme/blood.css +175 -0
  115. data/assets/reveal.js/css/theme/default.css +7 -1
  116. data/assets/reveal.js/css/theme/moon.css +7 -1
  117. data/assets/reveal.js/css/theme/night.css +7 -1
  118. data/assets/reveal.js/css/theme/serif.css +7 -1
  119. data/assets/reveal.js/css/theme/simple.css +7 -1
  120. data/assets/reveal.js/css/theme/sky.css +7 -1
  121. data/assets/reveal.js/css/theme/solarized.css +7 -1
  122. data/assets/reveal.js/css/theme/source/blood.scss +91 -0
  123. data/assets/reveal.js/css/theme/template/settings.scss +1 -0
  124. data/assets/reveal.js/css/theme/template/theme.scss +9 -2
  125. data/assets/reveal.js/js/reveal.js +1238 -433
  126. data/assets/reveal.js/js/reveal.min.js +4 -3
  127. data/assets/reveal.js/lib/css/zenburn.css +16 -17
  128. data/assets/reveal.js/plugin/highlight/highlight.js +3 -2
  129. data/assets/reveal.js/plugin/leap/leap.js +3 -0
  130. data/assets/reveal.js/plugin/markdown/example.html +37 -5
  131. data/assets/reveal.js/plugin/markdown/example.md +2 -0
  132. data/assets/reveal.js/plugin/markdown/markdown.js +373 -171
  133. data/assets/reveal.js/plugin/math/math.js +64 -0
  134. data/assets/reveal.js/plugin/multiplex/master.js +2 -1
  135. data/assets/reveal.js/plugin/notes/notes.html +33 -19
  136. data/assets/reveal.js/plugin/notes/notes.js +25 -47
  137. data/assets/reveal.js/plugin/remotes/remotes.js +4 -4
  138. data/assets/reveal.js/plugin/zoom-js/zoom.js +3 -1
  139. data/assets/reveal.old/css/print/paper.css +176 -0
  140. data/assets/reveal.old/css/print/pdf.css +190 -0
  141. data/assets/reveal.old/css/reveal.css +1616 -0
  142. data/assets/reveal.old/css/reveal.min.css +7 -0
  143. data/assets/reveal.old/css/theme/README.md +23 -0
  144. data/assets/reveal.old/css/theme/beige.css +142 -0
  145. data/assets/reveal.old/css/theme/default.css +142 -0
  146. data/assets/reveal.old/css/theme/moon.css +142 -0
  147. data/assets/reveal.old/css/theme/night.css +130 -0
  148. data/assets/reveal.old/css/theme/serif.css +132 -0
  149. data/assets/reveal.old/css/theme/simple.css +132 -0
  150. data/assets/reveal.old/css/theme/sky.css +139 -0
  151. data/assets/reveal.old/css/theme/solarized.css +142 -0
  152. data/assets/reveal.old/css/theme/source/beige.scss +50 -0
  153. data/assets/reveal.old/css/theme/source/default.scss +42 -0
  154. data/assets/reveal.old/css/theme/source/moon.scss +68 -0
  155. data/assets/reveal.old/css/theme/source/night.scss +35 -0
  156. data/assets/reveal.old/css/theme/source/serif.scss +35 -0
  157. data/assets/reveal.old/css/theme/source/simple.scss +38 -0
  158. data/assets/reveal.old/css/theme/source/sky.scss +46 -0
  159. data/assets/reveal.old/css/theme/source/solarized.scss +74 -0
  160. data/assets/reveal.old/css/theme/template/mixins.scss +29 -0
  161. data/assets/reveal.old/css/theme/template/settings.scss +33 -0
  162. data/assets/reveal.old/css/theme/template/theme.scss +163 -0
  163. data/assets/{reveal.js → reveal.old}/js/head.min.js +0 -0
  164. data/assets/reveal.old/js/reveal.js +2577 -0
  165. data/assets/reveal.old/js/reveal.min.js +8 -0
  166. data/assets/reveal.old/lib/css/zenburn.css +115 -0
  167. data/assets/reveal.old/lib/font/league_gothic-webfont.eot +0 -0
  168. data/assets/reveal.old/lib/font/league_gothic-webfont.svg +230 -0
  169. data/assets/reveal.old/lib/font/league_gothic-webfont.ttf +0 -0
  170. data/assets/reveal.old/lib/font/league_gothic-webfont.woff +0 -0
  171. data/assets/reveal.old/lib/font/league_gothic_license +2 -0
  172. data/assets/reveal.old/lib/js/classList.js +2 -0
  173. data/assets/reveal.old/lib/js/head.min.js +8 -0
  174. data/assets/reveal.old/lib/js/html5shiv.js +7 -0
  175. data/assets/reveal.old/plugin/highlight/highlight.js +31 -0
  176. data/assets/reveal.old/plugin/leap/leap.js +154 -0
  177. data/assets/reveal.old/plugin/markdown/example.html +97 -0
  178. data/assets/reveal.old/plugin/markdown/example.md +29 -0
  179. data/assets/reveal.old/plugin/markdown/markdown.js +190 -0
  180. data/assets/reveal.old/plugin/markdown/marked.js +37 -0
  181. data/assets/reveal.old/plugin/multiplex/client.js +13 -0
  182. data/assets/reveal.old/plugin/multiplex/index.js +56 -0
  183. data/assets/reveal.old/plugin/multiplex/master.js +50 -0
  184. data/assets/reveal.old/plugin/notes-server/client.js +57 -0
  185. data/assets/reveal.old/plugin/notes-server/index.js +59 -0
  186. data/assets/reveal.old/plugin/notes-server/notes.html +142 -0
  187. data/assets/reveal.old/plugin/notes/notes.html +253 -0
  188. data/assets/reveal.old/plugin/notes/notes.js +100 -0
  189. data/assets/reveal.old/plugin/postmessage/example.html +39 -0
  190. data/assets/reveal.old/plugin/postmessage/postmessage.js +42 -0
  191. data/assets/reveal.old/plugin/print-pdf/print-pdf.js +44 -0
  192. data/assets/reveal.old/plugin/remotes/remotes.js +39 -0
  193. data/assets/reveal.old/plugin/search/search.js +196 -0
  194. data/assets/reveal.old/plugin/zoom-js/zoom.js +256 -0
  195. data/bin/slippery +1 -0
  196. data/code_of_conduct.md +32 -0
  197. data/lib/slippery.rb +5 -3
  198. data/lib/slippery/document.rb +2 -2
  199. data/lib/slippery/presentation.rb +10 -1
  200. data/lib/slippery/processor.rb +18 -0
  201. data/lib/slippery/processor_helpers.rb +16 -2
  202. data/lib/slippery/processors/add_highlight.rb +9 -2
  203. data/lib/slippery/processors/deck_js.rb +81 -0
  204. data/lib/slippery/processors/fathom_js.rb +31 -0
  205. data/lib/slippery/processors/impress_js/add_impress_js.rb +2 -2
  206. data/lib/slippery/processors/jquery.rb +12 -0
  207. data/lib/slippery/processors/reveal_js/add_reveal_js.rb +12 -9
  208. data/lib/slippery/rake_tasks.rb +59 -31
  209. data/lib/slippery/version.rb +1 -1
  210. data/slippery.gemspec +5 -4
  211. metadata +215 -33
  212. data/lib/slippery/converter.rb +0 -132
@@ -0,0 +1,64 @@
1
+ /**
2
+ * A plugin which enables rendering of math equations inside
3
+ * of reveal.js slides. Essentially a thin wrapper for MathJax.
4
+ *
5
+ * @author Hakim El Hattab
6
+ */
7
+ var RevealMath = window.RevealMath || (function(){
8
+
9
+ var options = Reveal.getConfig().math || {};
10
+ options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
11
+ options.config = options.config || 'TeX-AMS_HTML-full';
12
+
13
+ loadScript( options.mathjax + '?config=' + options.config, function() {
14
+
15
+ MathJax.Hub.Config({
16
+ messageStyle: 'none',
17
+ tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
18
+ skipStartupTypeset: true
19
+ });
20
+
21
+ // Typeset followed by an immediate reveal.js layout since
22
+ // the typesetting process could affect slide height
23
+ MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
24
+ MathJax.Hub.Queue( Reveal.layout );
25
+
26
+ // Reprocess equations in slides when they turn visible
27
+ Reveal.addEventListener( 'slidechanged', function( event ) {
28
+
29
+ MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
30
+
31
+ } );
32
+
33
+ } );
34
+
35
+ function loadScript( url, callback ) {
36
+
37
+ var head = document.querySelector( 'head' );
38
+ var script = document.createElement( 'script' );
39
+ script.type = 'text/javascript';
40
+ script.src = url;
41
+
42
+ // Wrapper for callback to make sure it only fires once
43
+ var finish = function() {
44
+ if( typeof callback === 'function' ) {
45
+ callback.call();
46
+ callback = null;
47
+ }
48
+ }
49
+
50
+ script.onload = finish;
51
+
52
+ // IE
53
+ script.onreadystatechange = function() {
54
+ if ( this.readyState === 'loaded' ) {
55
+ finish();
56
+ }
57
+ }
58
+
59
+ // Normal browsers
60
+ head.appendChild( script );
61
+
62
+ }
63
+
64
+ })();
@@ -1,6 +1,7 @@
1
1
  (function() {
2
- // don't emit events from inside the previews themselves
2
+ // Don't emit events from inside of notes windows
3
3
  if ( window.location.search.match( /receiver/gi ) ) { return; }
4
+
4
5
  var multiplex = Reveal.getConfig().multiplex;
5
6
 
6
7
  var socket = io.connect(multiplex.url);
@@ -138,12 +138,20 @@
138
138
 
139
139
  <body>
140
140
 
141
+ <script>
142
+ function getNotesURL( controls ) {
143
+ return window.opener.location.protocol + '//' + window.opener.location.host + window.opener.location.pathname + '?receiver&controls='+ ( controls || 'false' ) +'&progress=false&overview=false' + window.opener.location.hash;
144
+ }
145
+ var notesCurrentSlideURL = getNotesURL( true );
146
+ var notesNextSlideURL = getNotesURL( false );
147
+ </script>
148
+
141
149
  <div id="wrap-current-slide" class="slides">
142
- <script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
150
+ <script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ notesCurrentSlideURL +'"></iframe>' );</script>
143
151
  </div>
144
152
 
145
153
  <div id="wrap-next-slide" class="slides">
146
- <script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ window.opener.location.href +'"></iframe>' );</script>
154
+ <script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ notesNextSlideURL +'"></iframe>' );</script>
147
155
  <span>UPCOMING:</span>
148
156
  </div>
149
157
 
@@ -169,10 +177,12 @@
169
177
 
170
178
  var notes = document.getElementById( 'notes' ),
171
179
  currentSlide = document.getElementById( 'current-slide' ),
172
- nextSlide = document.getElementById( 'next-slide' );
180
+ nextSlide = document.getElementById( 'next-slide' ),
181
+ silenced = false;
173
182
 
174
183
  window.addEventListener( 'message', function( event ) {
175
184
  var data = JSON.parse( event.data );
185
+
176
186
  // No need for updating the notes in case of fragment changes
177
187
  if ( data.notes !== undefined) {
178
188
  if( data.markdown ) {
@@ -183,18 +193,13 @@
183
193
  }
184
194
  }
185
195
 
186
- // Showing and hiding fragments
187
- if( data.fragment === 'next' ) {
188
- currentSlide.contentWindow.Reveal.nextFragment();
189
- }
190
- else if( data.fragment === 'prev' ) {
191
- currentSlide.contentWindow.Reveal.prevFragment();
192
- }
193
- else {
194
- // Update the note slides
195
- currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv );
196
- nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
197
- }
196
+ silenced = true;
197
+
198
+ // Update the note slides
199
+ currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf );
200
+ nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
201
+
202
+ silenced = false;
198
203
 
199
204
  }, false );
200
205
 
@@ -226,12 +231,21 @@
226
231
 
227
232
  }, 1000 );
228
233
 
229
- // Navigate the main window when the notes slide changes
230
- currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', function( event ) {
234
+ // Broadcasts the state of the notes window to synchronize
235
+ // the main window
236
+ function synchronizeMainWindow() {
231
237
 
232
- window.opener.Reveal.slide( event.indexh, event.indexv );
238
+ if( !silenced ) {
239
+ var indices = currentSlide.contentWindow.Reveal.getIndices();
240
+ window.opener.Reveal.slide( indices.h, indices.v, indices.f );
241
+ }
242
+
243
+ }
233
244
 
234
- } );
245
+ // Navigate the main window when the notes slide changes
246
+ currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', synchronizeMainWindow );
247
+ currentSlide.contentWindow.Reveal.addEventListener( 'fragmentshown', synchronizeMainWindow );
248
+ currentSlide.contentWindow.Reveal.addEventListener( 'fragmenthidden', synchronizeMainWindow );
235
249
 
236
250
  }
237
251
  else {
@@ -10,72 +10,50 @@ var RevealNotes = (function() {
10
10
  var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
11
11
 
12
12
  // Fires when slide is changed
13
- Reveal.addEventListener( 'slidechanged', function( event ) {
14
- post('slidechanged');
15
- } );
13
+ Reveal.addEventListener( 'slidechanged', post );
16
14
 
17
15
  // Fires when a fragment is shown
18
- Reveal.addEventListener( 'fragmentshown', function( event ) {
19
- post('fragmentshown');
20
- } );
16
+ Reveal.addEventListener( 'fragmentshown', post );
21
17
 
22
18
  // Fires when a fragment is hidden
23
- Reveal.addEventListener( 'fragmenthidden', function( event ) {
24
- post('fragmenthidden');
25
- } );
19
+ Reveal.addEventListener( 'fragmenthidden', post );
26
20
 
27
21
  /**
28
22
  * Posts the current slide data to the notes window
29
- *
30
- * @param {String} eventType Expecting 'slidechanged', 'fragmentshown'
31
- * or 'fragmenthidden' set in the events above to define the needed
32
- * slideDate.
33
23
  */
34
- function post( eventType ) {
24
+ function post() {
35
25
  var slideElement = Reveal.getCurrentSlide(),
26
+ slideIndices = Reveal.getIndices(),
36
27
  messageData;
37
28
 
38
- if( eventType === 'slidechanged' ) {
39
- var notes = slideElement.querySelector( 'aside.notes' ),
40
- indexh = Reveal.getIndices().h,
41
- indexv = Reveal.getIndices().v,
42
- nextindexh,
43
- nextindexv;
29
+ var notes = slideElement.querySelector( 'aside.notes' ),
30
+ nextindexh,
31
+ nextindexv;
44
32
 
45
- if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
46
- nextindexh = indexh;
47
- nextindexv = indexv + 1;
48
- } else {
49
- nextindexh = indexh + 1;
50
- nextindexv = 0;
51
- }
52
-
53
- messageData = {
54
- notes : notes ? notes.innerHTML : '',
55
- indexh : indexh,
56
- indexv : indexv,
57
- nextindexh : nextindexh,
58
- nextindexv : nextindexv,
59
- markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
60
- };
61
- }
62
- else if( eventType === 'fragmentshown' ) {
63
- messageData = {
64
- fragment : 'next'
65
- };
66
- }
67
- else if( eventType === 'fragmenthidden' ) {
68
- messageData = {
69
- fragment : 'prev'
70
- };
33
+ if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
34
+ nextindexh = slideIndices.h;
35
+ nextindexv = slideIndices.v + 1;
36
+ } else {
37
+ nextindexh = slideIndices.h + 1;
38
+ nextindexv = 0;
71
39
  }
72
40
 
41
+ messageData = {
42
+ notes : notes ? notes.innerHTML : '',
43
+ indexh : slideIndices.h,
44
+ indexv : slideIndices.v,
45
+ indexf : slideIndices.f,
46
+ nextindexh : nextindexh,
47
+ nextindexv : nextindexv,
48
+ markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
49
+ };
50
+
73
51
  notesPopup.postMessage( JSON.stringify( messageData ), '*' );
74
52
  }
75
53
 
76
54
  // Navigate to the current slide when the notes are loaded
77
55
  notesPopup.addEventListener( 'load', function( event ) {
78
- post('slidechanged');
56
+ post();
79
57
  }, false );
80
58
  }
81
59
 
@@ -17,11 +17,11 @@
17
17
  * Detects if notes are enable and the current page is opened inside an /iframe
18
18
  * this prevents loading Remotes.io several times
19
19
  */
20
- var remotesAndIsNotes = (function(){
21
- return !(window.RevealNotes && self == top);
20
+ var isNotesAndIframe = (function(){
21
+ return window.RevealNotes && !(self == top);
22
22
  })();
23
23
 
24
- if(!hasTouch && !remotesAndIsNotes){
24
+ if(!hasTouch && !isNotesAndIframe){
25
25
  head.ready( 'remotes.ne.min.js', function() {
26
26
  new Remotes("preview")
27
27
  .on("swipe-left", function(e){ Reveal.right(); })
@@ -34,6 +34,6 @@
34
34
  ;
35
35
  } );
36
36
 
37
- head.js('https://raw.github.com/Remotes/Remotes/master/dist/remotes.ne.min.js');
37
+ head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
38
38
  }
39
39
  })(window);
@@ -3,7 +3,9 @@
3
3
  var isEnabled = true;
4
4
 
5
5
  document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
6
- if( event.altKey && isEnabled ) {
6
+ var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
7
+
8
+ if( event[ modifier ] && isEnabled ) {
7
9
  event.preventDefault();
8
10
  zoom.to({ element: event.target, pan: false });
9
11
  }
@@ -0,0 +1,176 @@
1
+ /* Default Print Stylesheet Template
2
+ by Rob Glazebrook of CSSnewbie.com
3
+ Last Updated: June 4, 2008
4
+
5
+ Feel free (nay, compelled) to edit, append, and
6
+ manipulate this file as you see fit. */
7
+
8
+
9
+ /* SECTION 1: Set default width, margin, float, and
10
+ background. This prevents elements from extending
11
+ beyond the edge of the printed page, and prevents
12
+ unnecessary background images from printing */
13
+ body {
14
+ background: #fff;
15
+ font-size: 13pt;
16
+ width: auto;
17
+ height: auto;
18
+ border: 0;
19
+ margin: 0 5%;
20
+ padding: 0;
21
+ float: none !important;
22
+ overflow: visible;
23
+ }
24
+ html {
25
+ background: #fff;
26
+ width: auto;
27
+ height: auto;
28
+ overflow: visible;
29
+ }
30
+
31
+ /* SECTION 2: Remove any elements not needed in print.
32
+ This would include navigation, ads, sidebars, etc. */
33
+ .nestedarrow,
34
+ .controls,
35
+ .reveal .progress,
36
+ .reveal.overview,
37
+ .fork-reveal,
38
+ .share-reveal,
39
+ .state-background {
40
+ display: none !important;
41
+ }
42
+
43
+ /* SECTION 3: Set body font face, size, and color.
44
+ Consider using a serif font for readability. */
45
+ body, p, td, li, div, a {
46
+ font-size: 16pt!important;
47
+ font-family: Georgia, "Times New Roman", Times, serif !important;
48
+ color: #000;
49
+ }
50
+
51
+ /* SECTION 4: Set heading font face, sizes, and color.
52
+ Diffrentiate your headings from your body text.
53
+ Perhaps use a large sans-serif for distinction. */
54
+ h1,h2,h3,h4,h5,h6 {
55
+ color: #000!important;
56
+ height: auto;
57
+ line-height: normal;
58
+ font-family: Georgia, "Times New Roman", Times, serif !important;
59
+ text-shadow: 0 0 0 #000 !important;
60
+ text-align: left;
61
+ letter-spacing: normal;
62
+ }
63
+ /* Need to reduce the size of the fonts for printing */
64
+ h1 { font-size: 26pt !important; }
65
+ h2 { font-size: 22pt !important; }
66
+ h3 { font-size: 20pt !important; }
67
+ h4 { font-size: 20pt !important; font-variant: small-caps; }
68
+ h5 { font-size: 19pt !important; }
69
+ h6 { font-size: 18pt !important; font-style: italic; }
70
+
71
+ /* SECTION 5: Make hyperlinks more usable.
72
+ Ensure links are underlined, and consider appending
73
+ the URL to the end of the link for usability. */
74
+ a:link,
75
+ a:visited {
76
+ color: #000 !important;
77
+ font-weight: bold;
78
+ text-decoration: underline;
79
+ }
80
+ /*
81
+ .reveal a:link:after,
82
+ .reveal a:visited:after {
83
+ content: " (" attr(href) ") ";
84
+ color: #222 !important;
85
+ font-size: 90%;
86
+ }
87
+ */
88
+
89
+
90
+ /* SECTION 6: more reveal.js specific additions by @skypanther */
91
+ ul, ol, div, p {
92
+ visibility: visible;
93
+ position: static;
94
+ width: auto;
95
+ height: auto;
96
+ display: block;
97
+ overflow: visible;
98
+ margin: auto;
99
+ text-align: left !important;
100
+ }
101
+ .reveal .slides {
102
+ position: static;
103
+ width: auto;
104
+ height: auto;
105
+
106
+ left: auto;
107
+ top: auto;
108
+ margin-left: auto;
109
+ margin-top: auto;
110
+ padding: auto;
111
+
112
+ overflow: visible;
113
+ display: block;
114
+
115
+ text-align: center;
116
+ -webkit-perspective: none;
117
+ -moz-perspective: none;
118
+ -ms-perspective: none;
119
+ perspective: none;
120
+
121
+ -webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
122
+ -moz-perspective-origin: 50% 50%;
123
+ -ms-perspective-origin: 50% 50%;
124
+ perspective-origin: 50% 50%;
125
+ }
126
+ .reveal .slides>section,
127
+ .reveal .slides>section>section {
128
+
129
+ visibility: visible !important;
130
+ position: static !important;
131
+ width: 90% !important;
132
+ height: auto !important;
133
+ display: block !important;
134
+ overflow: visible !important;
135
+
136
+ left: 0% !important;
137
+ top: 0% !important;
138
+ margin-left: 0px !important;
139
+ margin-top: 0px !important;
140
+ padding: 20px 0px !important;
141
+
142
+ opacity: 1 !important;
143
+
144
+ -webkit-transform-style: flat !important;
145
+ -moz-transform-style: flat !important;
146
+ -ms-transform-style: flat !important;
147
+ transform-style: flat !important;
148
+
149
+ -webkit-transform: none !important;
150
+ -moz-transform: none !important;
151
+ -ms-transform: none !important;
152
+ transform: none !important;
153
+ }
154
+ .reveal section {
155
+ page-break-after: always !important;
156
+ display: block !important;
157
+ }
158
+ .reveal section .fragment {
159
+ opacity: 1 !important;
160
+ visibility: visible !important;
161
+
162
+ -webkit-transform: none !important;
163
+ -moz-transform: none !important;
164
+ -ms-transform: none !important;
165
+ transform: none !important;
166
+ }
167
+ .reveal section:last-of-type {
168
+ page-break-after: avoid !important;
169
+ }
170
+ .reveal section img {
171
+ display: block;
172
+ margin: 15px 0px;
173
+ background: rgba(255,255,255,1);
174
+ border: 1px solid #666;
175
+ box-shadow: none;
176
+ }