reveal-ck 0.1.3 → 0.1.4

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 (46) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +24 -129
  3. data/bin/reveal-ck +3 -2
  4. data/lib/reveal-ck.rb +1 -1
  5. data/lib/reveal-ck/presentation_builder.rb +5 -5
  6. data/lib/reveal-ck/template_processor.rb +29 -0
  7. data/lib/reveal-ck/version.rb +1 -1
  8. data/reveal.js/Gruntfile.js +6 -2
  9. data/reveal.js/README.md +139 -31
  10. data/reveal.js/css/print/paper.css +1 -1
  11. data/reveal.js/css/print/pdf.css +1 -1
  12. data/reveal.js/css/reveal.css +134 -88
  13. data/reveal.js/css/reveal.min.css +1 -1
  14. data/reveal.js/css/theme/template/settings.scss +1 -0
  15. data/reveal.js/css/theme/template/theme.scss +1 -1
  16. data/reveal.js/index.html +7 -6
  17. data/reveal.js/js/reveal.js +496 -299
  18. data/reveal.js/js/reveal.min.js +2 -2
  19. data/reveal.js/lib/css/zenburn.css +16 -17
  20. data/reveal.js/package.json +10 -9
  21. data/reveal.js/plugin/leap/leap.js +157 -0
  22. data/reveal.js/plugin/markdown/example.html +3 -2
  23. data/reveal.js/plugin/markdown/example.md +2 -0
  24. data/reveal.js/plugin/markdown/markdown.js +273 -143
  25. data/reveal.js/plugin/math/math.js +64 -0
  26. data/reveal.js/plugin/notes/notes.html +27 -17
  27. data/reveal.js/plugin/notes/notes.js +25 -47
  28. data/reveal.js/{examples → test/examples}/assets/image1.png +0 -0
  29. data/reveal.js/{examples → test/examples}/assets/image2.png +0 -0
  30. data/reveal.js/{examples → test/examples}/barebones.html +3 -3
  31. data/reveal.js/{examples → test/examples}/embedded-media.html +4 -4
  32. data/reveal.js/test/examples/math.html +185 -0
  33. data/reveal.js/{examples → test/examples}/slide-backgrounds.html +4 -4
  34. data/reveal.js/test/qunit-1.12.0.css +244 -0
  35. data/reveal.js/test/qunit-1.12.0.js +2212 -0
  36. data/reveal.js/test/test-markdown.html +52 -0
  37. data/reveal.js/test/test-markdown.js +15 -0
  38. data/reveal.js/test/test.html +62 -0
  39. data/reveal.js/test/test.js +353 -0
  40. data/spec/data/haml/basic.haml +2 -2
  41. data/spec/data/html/converted_basic_slim.html +10 -0
  42. data/spec/data/slim/basic.slim +5 -0
  43. data/spec/lib/reveal-ck/template_processor_spec.rb +29 -0
  44. metadata +50 -9
  45. data/lib/reveal-ck/haml_processor.rb +0 -26
  46. data/spec/lib/reveal-ck/haml_processor_spec.rb +0 -40
@@ -0,0 +1,52 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+
7
+ <title>reveal.js - Test Markdown</title>
8
+
9
+ <link rel="stylesheet" href="../css/reveal.min.css">
10
+ <link rel="stylesheet" href="qunit-1.12.0.css">
11
+ </head>
12
+
13
+ <body style="overflow: auto;">
14
+
15
+ <div id="qunit"></div>
16
+ <div id="qunit-fixture"></div>
17
+
18
+ <div class="reveal" style="display: none;">
19
+
20
+ <div class="slides">
21
+
22
+ <!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
23
+
24
+ <!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
25
+ <section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$">
26
+ <script type="text/template">
27
+ ## Slide 1.1
28
+
29
+ --
30
+
31
+ ## Slide 1.2
32
+
33
+ ---
34
+
35
+ ## Slide 2
36
+ </script>
37
+ </section>
38
+
39
+ </div>
40
+
41
+ </div>
42
+
43
+ <script src="../lib/js/head.min.js"></script>
44
+ <script src="../js/reveal.min.js"></script>
45
+ <script src="../plugin/markdown/marked.js"></script>
46
+ <script src="../plugin/markdown/markdown.js"></script>
47
+ <script src="qunit-1.12.0.js"></script>
48
+
49
+ <script src="test-markdown.js"></script>
50
+
51
+ </body>
52
+ </html>
@@ -0,0 +1,15 @@
1
+
2
+
3
+ Reveal.addEventListener( 'ready', function() {
4
+
5
+ QUnit.module( 'Markdown' );
6
+
7
+ test( 'Vertical separator', function() {
8
+ strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
9
+ });
10
+
11
+
12
+ } );
13
+
14
+ Reveal.initialize();
15
+
@@ -0,0 +1,62 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+
7
+ <title>reveal.js - Tests</title>
8
+
9
+ <link rel="stylesheet" href="../css/reveal.min.css">
10
+ <link rel="stylesheet" href="qunit-1.12.0.css">
11
+ </head>
12
+
13
+ <body style="overflow: auto;">
14
+
15
+ <div id="qunit"></div>
16
+ <div id="qunit-fixture"></div>
17
+
18
+ <div class="reveal" style="display: none;">
19
+
20
+ <div class="slides">
21
+
22
+ <section>
23
+ <h1>1</h1>
24
+ </section>
25
+
26
+ <section>
27
+ <section>
28
+ <h1>2.1</h1>
29
+ </section>
30
+ <section>
31
+ <h1>2.2</h1>
32
+ </section>
33
+ <section>
34
+ <h1>2.3</h1>
35
+ </section>
36
+ </section>
37
+
38
+ <section>
39
+ <h1>4</h1>
40
+ <ul>
41
+ <li class="fragment">4.1</li>
42
+ <li class="fragment">4.2</li>
43
+ <li class="fragment">4.3</li>
44
+ </ul>
45
+ </section>
46
+
47
+ <section>
48
+ <h1>4</h1>
49
+ </section>
50
+
51
+ </div>
52
+
53
+ </div>
54
+
55
+ <script src="../lib/js/head.min.js"></script>
56
+ <script src="../js/reveal.min.js"></script>
57
+ <script src="qunit-1.12.0.js"></script>
58
+
59
+ <script src="test.js"></script>
60
+
61
+ </body>
62
+ </html>
@@ -0,0 +1,353 @@
1
+
2
+ // These tests expect the DOM to contain a presentation
3
+ // with the following slide structure:
4
+ //
5
+ // 1
6
+ // 2 - Three sub-slides
7
+ // 3 - Three fragment elements
8
+ // 4
9
+
10
+
11
+ Reveal.addEventListener( 'ready', function() {
12
+
13
+
14
+ // ---------------------------------------------------------------
15
+ // API TESTS
16
+
17
+ QUnit.module( 'API' );
18
+
19
+ test( 'Reveal.isReady', function() {
20
+ strictEqual( Reveal.isReady(), true, 'returns true' );
21
+ });
22
+
23
+ test( 'Reveal.isOverview', function() {
24
+ strictEqual( Reveal.isOverview(), false, 'false by default' );
25
+
26
+ Reveal.toggleOverview();
27
+ strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
28
+
29
+ Reveal.toggleOverview();
30
+ strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
31
+ });
32
+
33
+ test( 'Reveal.isPaused', function() {
34
+ strictEqual( Reveal.isPaused(), false, 'false by default' );
35
+
36
+ Reveal.togglePause();
37
+ strictEqual( Reveal.isPaused(), true, 'true after pausing' );
38
+
39
+ Reveal.togglePause();
40
+ strictEqual( Reveal.isPaused(), false, 'false after resuming' );
41
+ });
42
+
43
+ test( 'Reveal.isFirstSlide', function() {
44
+ Reveal.slide( 0, 0 );
45
+ strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
46
+
47
+ Reveal.slide( 1, 0 );
48
+ strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
49
+
50
+ Reveal.slide( 0, 0 );
51
+ strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
52
+ });
53
+
54
+ test( 'Reveal.isLastSlide', function() {
55
+ Reveal.slide( 0, 0 );
56
+ strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
57
+
58
+ var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
59
+
60
+ Reveal.slide( lastSlideIndex, 0 );
61
+ strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
62
+
63
+ Reveal.slide( 0, 0 );
64
+ strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
65
+ });
66
+
67
+ test( 'Reveal.getIndices', function() {
68
+ var indices = Reveal.getIndices();
69
+
70
+ ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
71
+ ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
72
+ ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
73
+
74
+ Reveal.slide( 1, 0 );
75
+ ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
76
+
77
+ Reveal.slide( 1, 2 );
78
+ ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
79
+
80
+ Reveal.slide( 0, 0 );
81
+ });
82
+
83
+ test( 'Reveal.getSlide', function() {
84
+ var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
85
+
86
+ equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
87
+
88
+ strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
89
+ });
90
+
91
+ test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
92
+ Reveal.slide( 0, 0 );
93
+ Reveal.slide( 1, 0 );
94
+
95
+ var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
96
+ var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
97
+
98
+ equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
99
+ equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
100
+ });
101
+
102
+ test( 'Reveal.getScale', function() {
103
+ ok( typeof Reveal.getScale() === 'number', 'has scale' );
104
+ });
105
+
106
+ test( 'Reveal.getConfig', function() {
107
+ ok( typeof Reveal.getConfig() === 'object', 'has config' );
108
+ });
109
+
110
+ test( 'Reveal.configure', function() {
111
+ strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
112
+
113
+ Reveal.configure({ loop: true });
114
+ strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
115
+
116
+ Reveal.configure({ loop: false, customTestValue: 1 });
117
+ strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
118
+ });
119
+
120
+ test( 'Reveal.availableRoutes', function() {
121
+ Reveal.slide( 0, 0 );
122
+ deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
123
+
124
+ Reveal.slide( 1, 0 );
125
+ deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
126
+ });
127
+
128
+ test( 'Reveal.next', function() {
129
+ Reveal.slide( 0, 0 );
130
+
131
+ // Step through the vertical child slides
132
+ Reveal.next();
133
+ deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
134
+
135
+ Reveal.next();
136
+ deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
137
+
138
+ Reveal.next();
139
+ deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
140
+
141
+ // There's fragments on this slide
142
+ Reveal.next();
143
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
144
+
145
+ Reveal.next();
146
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
147
+
148
+ Reveal.next();
149
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
150
+
151
+ Reveal.next();
152
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 } );
153
+
154
+ Reveal.next();
155
+ deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
156
+
157
+ // We're at the end, this should have no effect
158
+ Reveal.next();
159
+ deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
160
+ });
161
+
162
+
163
+ // ---------------------------------------------------------------
164
+ // FRAGMENT TESTS
165
+
166
+ QUnit.module( 'Fragments' );
167
+
168
+ test( 'Sliding to fragments', function() {
169
+ Reveal.slide( 2, 0, 0 );
170
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
171
+
172
+ Reveal.slide( 2, 0, 2 );
173
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
174
+
175
+ Reveal.slide( 2, 0, 1 );
176
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
177
+ });
178
+
179
+ test( 'Stepping through fragments', function() {
180
+ Reveal.slide( 2, 0, 0 );
181
+
182
+ // forwards:
183
+
184
+ Reveal.next();
185
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'next() goes to next fragment' );
186
+
187
+ Reveal.right();
188
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'right() goes to next fragment' );
189
+
190
+ Reveal.down();
191
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 }, 'down() goes to next fragment' );
192
+
193
+ Reveal.down(); // moves to f #3
194
+
195
+ // backwards:
196
+
197
+ Reveal.prev();
198
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
199
+
200
+ Reveal.left();
201
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
202
+
203
+ Reveal.up();
204
+ deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'left() goes to prev fragment' );
205
+ });
206
+
207
+ asyncTest( 'fragmentshown event', function() {
208
+ expect( 2 );
209
+
210
+ var _onEvent = function( event ) {
211
+ ok( true, 'event fired' );
212
+ }
213
+
214
+ Reveal.addEventListener( 'fragmentshown', _onEvent );
215
+
216
+ Reveal.slide( 2, 0 );
217
+ Reveal.slide( 2, 0 ); // should do nothing
218
+ Reveal.slide( 2, 0, 0 ); // should do nothing
219
+ Reveal.next();
220
+ Reveal.next();
221
+ Reveal.prev(); // shouldn't fire fragmentshown
222
+
223
+ start();
224
+
225
+ Reveal.removeEventListener( 'fragmentshown', _onEvent );
226
+ });
227
+
228
+ asyncTest( 'fragmenthidden event', function() {
229
+ expect( 2 );
230
+
231
+ var _onEvent = function( event ) {
232
+ ok( true, 'event fired' );
233
+ }
234
+
235
+ Reveal.addEventListener( 'fragmenthidden', _onEvent );
236
+
237
+ Reveal.slide( 2, 0, 2 );
238
+ Reveal.slide( 2, 0, 2 ); // should do nothing
239
+ Reveal.prev();
240
+ Reveal.prev();
241
+ Reveal.next(); // shouldn't fire fragmenthidden
242
+
243
+ start();
244
+
245
+ Reveal.removeEventListener( 'fragmenthidden', _onEvent );
246
+ });
247
+
248
+
249
+ // ---------------------------------------------------------------
250
+ // CONFIGURATION VALUES
251
+
252
+ QUnit.module( 'Configuration' );
253
+
254
+ test( 'Controls', function() {
255
+ var controlsElement = document.querySelector( '.reveal>.controls' );
256
+
257
+ Reveal.configure({ controls: false });
258
+ equal( controlsElement.style.display, 'none', 'controls are hidden' );
259
+
260
+ Reveal.configure({ controls: true });
261
+ equal( controlsElement.style.display, 'block', 'controls are visible' );
262
+ });
263
+
264
+ test( 'Progress', function() {
265
+ var progressElement = document.querySelector( '.reveal>.progress' );
266
+
267
+ Reveal.configure({ progress: false });
268
+ equal( progressElement.style.display, 'none', 'progress are hidden' );
269
+
270
+ Reveal.configure({ progress: true });
271
+ equal( progressElement.style.display, 'block', 'progress are visible' );
272
+ });
273
+
274
+ test( 'Loop', function() {
275
+ Reveal.configure({ loop: true });
276
+
277
+ Reveal.slide( 0, 0 );
278
+
279
+ Reveal.left();
280
+ notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
281
+
282
+ Reveal.right();
283
+ equal( Reveal.getIndices().h, 0, 'looped from end to start' );
284
+
285
+ Reveal.configure({ loop: false });
286
+ });
287
+
288
+
289
+ // ---------------------------------------------------------------
290
+ // EVENT TESTS
291
+
292
+ QUnit.module( 'Events' );
293
+
294
+ asyncTest( 'slidechanged', function() {
295
+ expect( 3 );
296
+
297
+ var _onEvent = function( event ) {
298
+ ok( true, 'event fired' );
299
+ }
300
+
301
+ Reveal.addEventListener( 'slidechanged', _onEvent );
302
+
303
+ Reveal.slide( 1, 0 ); // should trigger
304
+ Reveal.slide( 1, 0 ); // should do nothing
305
+ Reveal.next(); // should trigger
306
+ Reveal.slide( 3, 0 ); // should trigger
307
+ Reveal.next(); // should do nothing
308
+
309
+ start();
310
+
311
+ Reveal.removeEventListener( 'slidechanged', _onEvent );
312
+
313
+ });
314
+
315
+ asyncTest( 'paused', function() {
316
+ expect( 1 );
317
+
318
+ var _onEvent = function( event ) {
319
+ ok( true, 'event fired' );
320
+ }
321
+
322
+ Reveal.addEventListener( 'paused', _onEvent );
323
+
324
+ Reveal.togglePause();
325
+ Reveal.togglePause();
326
+
327
+ start();
328
+
329
+ Reveal.removeEventListener( 'paused', _onEvent );
330
+ });
331
+
332
+ asyncTest( 'resumed', function() {
333
+ expect( 1 );
334
+
335
+ var _onEvent = function( event ) {
336
+ ok( true, 'event fired' );
337
+ }
338
+
339
+ Reveal.addEventListener( 'resumed', _onEvent );
340
+
341
+ Reveal.togglePause();
342
+ Reveal.togglePause();
343
+
344
+ start();
345
+
346
+ Reveal.removeEventListener( 'resumed', _onEvent );
347
+ });
348
+
349
+
350
+ } );
351
+
352
+ Reveal.initialize();
353
+