slippery 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ }