keydown 0.7.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/.gitignore +2 -0
  2. data/.travis.yml +3 -0
  3. data/LICENSE +1 -1
  4. data/README.md +16 -15
  5. data/VERSION +1 -1
  6. data/keydown.gemspec +9 -6
  7. data/lib/keydown.rb +9 -22
  8. data/lib/keydown/html_helpers.rb +12 -0
  9. data/lib/keydown/{lib/slide.rb → slide.rb} +16 -19
  10. data/lib/keydown/{lib/slidedeck.rb → slidedeck.rb} +20 -5
  11. data/lib/keydown/tasks.rb +5 -0
  12. data/lib/keydown/tasks/base.rb +15 -0
  13. data/lib/keydown/tasks/generate.rb +5 -1
  14. data/lib/keydown/tasks/slides.rb +1 -1
  15. data/lib/version.rb +1 -1
  16. data/spec/lib/html_helpers_spec.rb +26 -0
  17. data/spec/lib/slide_spec.rb +29 -17
  18. data/spec/lib/slidedeck_spec.rb +41 -13
  19. data/spec/spec_helper.rb +2 -6
  20. data/spec/tasks/generate_spec.rb +41 -20
  21. data/spec/tasks/slides_spec.rb +83 -44
  22. data/templates/deck.js/code.html.haml +1 -0
  23. data/templates/deck.js/index.html.haml +54 -0
  24. data/templates/deck.js/slide.html.haml +6 -0
  25. data/templates/generate/css/%presentation_name%.css +12 -1
  26. data/templates/generate/deck.js/core/deck.core.css +394 -0
  27. data/templates/generate/deck.js/core/deck.core.js +461 -0
  28. data/templates/generate/deck.js/core/deck.core.scss +432 -0
  29. data/templates/generate/deck.js/extensions/codemirror/CONTRIBUTORS.txt +2 -0
  30. data/templates/generate/deck.js/extensions/codemirror/MIT-LICENSE.txt +21 -0
  31. data/templates/generate/deck.js/extensions/codemirror/README.md +120 -0
  32. data/templates/generate/deck.js/extensions/codemirror/VERSION.txt +1 -0
  33. data/templates/generate/deck.js/extensions/codemirror/codemirror.js +21 -0
  34. data/templates/generate/deck.js/extensions/codemirror/deck.codemirror.css +89 -0
  35. data/templates/generate/deck.js/extensions/codemirror/deck.codemirror.js +213 -0
  36. data/templates/generate/deck.js/extensions/codemirror/deck.codemirror.scss +107 -0
  37. data/templates/generate/deck.js/extensions/codemirror/mode/clike/clike.js +247 -0
  38. data/templates/generate/deck.js/extensions/codemirror/mode/clike/index.html +102 -0
  39. data/templates/generate/deck.js/extensions/codemirror/mode/clojure/clojure.js +207 -0
  40. data/templates/generate/deck.js/extensions/codemirror/mode/clojure/index.html +85 -0
  41. data/templates/generate/deck.js/extensions/codemirror/mode/coffeescript/LICENSE +22 -0
  42. data/templates/generate/deck.js/extensions/codemirror/mode/coffeescript/coffeescript.js +325 -0
  43. data/templates/generate/deck.js/extensions/codemirror/mode/coffeescript/index.html +722 -0
  44. data/templates/generate/deck.js/extensions/codemirror/mode/css/css.js +124 -0
  45. data/templates/generate/deck.js/extensions/codemirror/mode/css/index.html +56 -0
  46. data/templates/generate/deck.js/extensions/codemirror/mode/diff/diff.css +3 -0
  47. data/templates/generate/deck.js/extensions/codemirror/mode/diff/diff.js +13 -0
  48. data/templates/generate/deck.js/extensions/codemirror/mode/diff/index.html +99 -0
  49. data/templates/generate/deck.js/extensions/codemirror/mode/haskell/haskell.js +242 -0
  50. data/templates/generate/deck.js/extensions/codemirror/mode/haskell/index.html +60 -0
  51. data/templates/generate/deck.js/extensions/codemirror/mode/htmlmixed/htmlmixed.js +79 -0
  52. data/templates/generate/deck.js/extensions/codemirror/mode/htmlmixed/index.html +52 -0
  53. data/templates/generate/deck.js/extensions/codemirror/mode/javascript/index.html +78 -0
  54. data/templates/generate/deck.js/extensions/codemirror/mode/javascript/javascript.js +348 -0
  55. data/templates/generate/deck.js/extensions/codemirror/mode/lua/index.html +72 -0
  56. data/templates/generate/deck.js/extensions/codemirror/mode/lua/lua.js +138 -0
  57. data/templates/generate/deck.js/extensions/codemirror/mode/php/index.html +49 -0
  58. data/templates/generate/deck.js/extensions/codemirror/mode/php/php.js +115 -0
  59. data/templates/generate/deck.js/extensions/codemirror/mode/plsql/index.html +63 -0
  60. data/templates/generate/deck.js/extensions/codemirror/mode/plsql/plsql.js +217 -0
  61. data/templates/generate/deck.js/extensions/codemirror/mode/python/LICENSE.txt +21 -0
  62. data/templates/generate/deck.js/extensions/codemirror/mode/python/index.html +123 -0
  63. data/templates/generate/deck.js/extensions/codemirror/mode/python/python.js +321 -0
  64. data/templates/generate/deck.js/extensions/codemirror/mode/r/LICENSE +24 -0
  65. data/templates/generate/deck.js/extensions/codemirror/mode/r/index.html +74 -0
  66. data/templates/generate/deck.js/extensions/codemirror/mode/r/r.js +141 -0
  67. data/templates/generate/deck.js/extensions/codemirror/mode/rst/index.html +526 -0
  68. data/templates/generate/deck.js/extensions/codemirror/mode/rst/rst.css +75 -0
  69. data/templates/generate/deck.js/extensions/codemirror/mode/rst/rst.js +333 -0
  70. data/templates/generate/deck.js/extensions/codemirror/mode/ruby/LICENSE +24 -0
  71. data/templates/generate/deck.js/extensions/codemirror/mode/ruby/index.html +172 -0
  72. data/templates/generate/deck.js/extensions/codemirror/mode/ruby/ruby.js +195 -0
  73. data/templates/generate/deck.js/extensions/codemirror/mode/scheme/index.html +65 -0
  74. data/templates/generate/deck.js/extensions/codemirror/mode/scheme/scheme.js +202 -0
  75. data/templates/generate/deck.js/extensions/codemirror/mode/smalltalk/index.html +56 -0
  76. data/templates/generate/deck.js/extensions/codemirror/mode/smalltalk/smalltalk.js +122 -0
  77. data/templates/generate/deck.js/extensions/codemirror/mode/sparql/index.html +41 -0
  78. data/templates/generate/deck.js/extensions/codemirror/mode/sparql/sparql.js +143 -0
  79. data/templates/generate/deck.js/extensions/codemirror/mode/stex/index.html +96 -0
  80. data/templates/generate/deck.js/extensions/codemirror/mode/stex/stex.js +167 -0
  81. data/templates/generate/deck.js/extensions/codemirror/mode/velocity/index.html +103 -0
  82. data/templates/generate/deck.js/extensions/codemirror/mode/velocity/velocity.js +146 -0
  83. data/templates/generate/deck.js/extensions/codemirror/mode/xml/index.html +42 -0
  84. data/templates/generate/deck.js/extensions/codemirror/mode/xml/xml.js +231 -0
  85. data/templates/generate/deck.js/extensions/codemirror/mode/xmlpure/index.html +60 -0
  86. data/templates/generate/deck.js/extensions/codemirror/mode/xmlpure/xmlpure.js +481 -0
  87. data/templates/generate/deck.js/extensions/codemirror/mode/yaml/index.html +68 -0
  88. data/templates/generate/deck.js/extensions/codemirror/mode/yaml/yaml.js +95 -0
  89. data/templates/generate/deck.js/extensions/codemirror/themes/cobalt.css +17 -0
  90. data/templates/generate/deck.js/extensions/codemirror/themes/default.css +19 -0
  91. data/templates/generate/deck.js/extensions/codemirror/themes/elegant.css +9 -0
  92. data/templates/generate/deck.js/extensions/codemirror/themes/neat.css +8 -0
  93. data/templates/generate/deck.js/extensions/codemirror/themes/night.css +20 -0
  94. data/templates/generate/deck.js/extensions/goto/deck.goto.css +41 -0
  95. data/templates/generate/deck.js/extensions/goto/deck.goto.html +6 -0
  96. data/templates/generate/deck.js/extensions/goto/deck.goto.js +118 -0
  97. data/templates/generate/deck.js/extensions/goto/deck.goto.scss +46 -0
  98. data/templates/generate/deck.js/extensions/hash/deck.hash.css +13 -0
  99. data/templates/generate/deck.js/extensions/hash/deck.hash.html +2 -0
  100. data/templates/generate/deck.js/extensions/hash/deck.hash.js +125 -0
  101. data/templates/generate/deck.js/extensions/hash/deck.hash.scss +15 -0
  102. data/templates/generate/deck.js/extensions/menu/deck.menu.css +24 -0
  103. data/templates/generate/deck.js/extensions/menu/deck.menu.js +127 -0
  104. data/templates/generate/deck.js/extensions/menu/deck.menu.scss +29 -0
  105. data/templates/generate/deck.js/extensions/navigation/deck.navigation.css +43 -0
  106. data/templates/generate/deck.js/extensions/navigation/deck.navigation.html +3 -0
  107. data/templates/generate/deck.js/extensions/navigation/deck.navigation.js +83 -0
  108. data/templates/generate/deck.js/extensions/navigation/deck.navigation.scss +56 -0
  109. data/templates/generate/deck.js/extensions/scale/deck.scale.css +16 -0
  110. data/templates/generate/deck.js/extensions/scale/deck.scale.js +155 -0
  111. data/templates/generate/deck.js/extensions/scale/deck.scale.scss +17 -0
  112. data/templates/generate/deck.js/extensions/status/deck.status.css +14 -0
  113. data/templates/generate/deck.js/extensions/status/deck.status.html +6 -0
  114. data/templates/generate/deck.js/extensions/status/deck.status.js +42 -0
  115. data/templates/generate/deck.js/extensions/status/deck.status.scss +16 -0
  116. data/templates/generate/deck.js/support/jquery.1.6.4.min.js +4 -0
  117. data/templates/generate/deck.js/support/modernizr.custom.js +4 -0
  118. data/templates/generate/deck.js/themes/style/neon.css +114 -0
  119. data/templates/generate/deck.js/themes/style/neon.scss +139 -0
  120. data/templates/generate/deck.js/themes/style/swiss.css +75 -0
  121. data/templates/generate/deck.js/themes/style/swiss.scss +91 -0
  122. data/templates/generate/deck.js/themes/style/web-2.0.css +187 -0
  123. data/templates/generate/deck.js/themes/style/web-2.0.scss +214 -0
  124. data/templates/generate/deck.js/themes/transition/fade.css +44 -0
  125. data/templates/generate/deck.js/themes/transition/fade.scss +70 -0
  126. data/templates/generate/deck.js/themes/transition/horizontal-slide.css +79 -0
  127. data/templates/generate/deck.js/themes/transition/horizontal-slide.scss +94 -0
  128. data/templates/generate/deck.js/themes/transition/vertical-slide.css +97 -0
  129. data/templates/generate/deck.js/themes/transition/vertical-slide.scss +116 -0
  130. data/templates/keydown.css.erb +27 -23
  131. metadata +171 -32
  132. data/Gemfile.lock +0 -41
  133. data/templates/generate/css/rocks.css +0 -392
  134. data/templates/generate/css/syntax_highlighting.css +0 -135
  135. data/templates/generate/js/rocks.js +0 -419
  136. data/templates/rocks/index.rhtml +0 -132
  137. data/templates/rocks/slide.rhtml +0 -10
@@ -1,419 +0,0 @@
1
- (function() {
2
- var doc = document;
3
- var disableBuilds = true;
4
-
5
- var ctr = 0;
6
- var spaces = /\s+/, a1 = [''];
7
-
8
- var toArray = function(list) {
9
- return Array.prototype.slice.call(list || [], 0);
10
- };
11
-
12
- var byId = function(id) {
13
- if (typeof id == 'string') {
14
- return doc.getElementById(id);
15
- }
16
- return id;
17
- };
18
-
19
- var query = function(query, root) {
20
- if (!query) {
21
- return [];
22
- }
23
- if (typeof query != 'string') {
24
- return toArray(query);
25
- }
26
- if (typeof root == 'string') {
27
- root = byId(root);
28
- if (!root) {
29
- return [];
30
- }
31
- }
32
-
33
- root = root || document;
34
- var rootIsDoc = (root.nodeType == 9);
35
- var doc = rootIsDoc ? root : (root.ownerDocument || document);
36
-
37
- // rewrite the query to be ID rooted
38
- if (!rootIsDoc || ('>~+'.indexOf(query.charAt(0)) >= 0)) {
39
- root.id = root.id || ('qUnique' + (ctr++));
40
- query = '#' + root.id + ' ' + query;
41
- }
42
- // don't choke on something like ".yada.yada >"
43
- if ('>~+'.indexOf(query.slice(-1)) >= 0) {
44
- query += ' *';
45
- }
46
-
47
- return toArray(doc.querySelectorAll(query));
48
- };
49
-
50
- var strToArray = function(s) {
51
- if (typeof s == 'string' || s instanceof String) {
52
- if (s.indexOf(' ') < 0) {
53
- a1[0] = s;
54
- return a1;
55
- } else {
56
- return s.split(spaces);
57
- }
58
- }
59
- return s;
60
- };
61
-
62
- var addClass = function(node, classStr) {
63
- classStr = strToArray(classStr);
64
- var cls = ' ' + node.className + ' ';
65
- for (var i = 0, len = classStr.length, c; i < len; ++i) {
66
- c = classStr[i];
67
- if (c && cls.indexOf(' ' + c + ' ') < 0) {
68
- cls += c + ' ';
69
- }
70
- }
71
- node.className = cls.trim();
72
- };
73
-
74
- var removeClass = function(node, classStr) {
75
- var cls;
76
- if (classStr !== undefined) {
77
- classStr = strToArray(classStr);
78
- cls = ' ' + node.className + ' ';
79
- for (var i = 0, len = classStr.length; i < len; ++i) {
80
- cls = cls.replace(' ' + classStr[i] + ' ', ' ');
81
- }
82
- cls = cls.trim();
83
- } else {
84
- cls = '';
85
- }
86
- if (node.className != cls) {
87
- node.className = cls;
88
- }
89
- };
90
-
91
- var toggleClass = function(node, classStr) {
92
- var cls = ' ' + node.className + ' ';
93
- if (cls.indexOf(' ' + classStr.trim() + ' ') >= 0) {
94
- removeClass(node, classStr);
95
- } else {
96
- addClass(node, classStr);
97
- }
98
- };
99
-
100
- var ua = navigator.userAgent;
101
- var isFF = parseFloat(ua.split('Firefox/')[1]) || undefined;
102
- var isWK = parseFloat(ua.split('WebKit/')[1]) || undefined;
103
- var isOpera = parseFloat(ua.split('Opera/')[1]) || undefined;
104
-
105
- var canTransition = (function() {
106
- var ver = parseFloat(ua.split('Version/')[1]) || undefined;
107
- // test to determine if this browser can handle CSS transitions.
108
- var cachedCanTransition =
109
- (isWK || (isFF && isFF > 3.6 ) || (isOpera && ver >= 10.5));
110
- return function() {
111
- return cachedCanTransition;
112
- }
113
- })();
114
-
115
- //
116
- // Slide class
117
- //
118
- var Slide = function(node, idx) {
119
- this._node = node;
120
- if (idx >= 0) {
121
- this._count = idx + 1;
122
- }
123
- if (this._node) {
124
- addClass(this._node, 'slide distant-slide');
125
- }
126
- this._makeCounter();
127
- this._makeBuildList();
128
- };
129
-
130
- Slide.prototype = {
131
- _node: null,
132
- _count: 0,
133
- _buildList: [],
134
- _visited: false,
135
- _currentState: '',
136
- _states: [ 'distant-slide', 'far-past',
137
- 'past', 'current', 'future',
138
- 'far-future', 'distant-slide' ],
139
- setState: function(state) {
140
- if (typeof state != 'string') {
141
- state = this._states[state];
142
- }
143
- if (state == 'current' && !this._visited) {
144
- this._visited = true;
145
- this._makeBuildList();
146
- }
147
- removeClass(this._node, this._states);
148
- addClass(this._node, state);
149
- this._currentState = state;
150
-
151
- // delay first auto run. Really wish this were in CSS.
152
- /*
153
- this._runAutos();
154
- */
155
- var _t = this;
156
- setTimeout(function() {
157
- _t._runAutos();
158
- }, 400);
159
- },
160
- _makeCounter: function() {
161
- if (!this._count || !this._node) {
162
- return;
163
- }
164
- var c = doc.createElement('span');
165
- c.innerHTML = this._count;
166
- c.className = 'counter';
167
- this._node.appendChild(c);
168
- },
169
- _makeBuildList: function() {
170
- this._buildList = [];
171
- if (disableBuilds) {
172
- return;
173
- }
174
- if (this._node) {
175
- this._buildList = query('[data-build] > *', this._node);
176
- }
177
- this._buildList.forEach(function(el) {
178
- addClass(el, 'to-build');
179
- });
180
- },
181
- _runAutos: function() {
182
- if (this._currentState != 'current') {
183
- return;
184
- }
185
- // find the next auto, slice it out of the list, and run it
186
- var idx = -1;
187
- this._buildList.some(function(n, i) {
188
- if (n.hasAttribute('data-auto')) {
189
- idx = i;
190
- return true;
191
- }
192
- return false;
193
- });
194
- if (idx >= 0) {
195
- var elem = this._buildList.splice(idx, 1)[0];
196
- var transitionEnd = isWK ? 'webkitTransitionEnd' : (isFF ? 'mozTransitionEnd' : 'oTransitionEnd');
197
- var _t = this;
198
- if (canTransition()) {
199
- var l = function(evt) {
200
- elem.parentNode.removeEventListener(transitionEnd, l, false);
201
- _t._runAutos();
202
- };
203
- elem.parentNode.addEventListener(transitionEnd, l, false);
204
- removeClass(elem, 'to-build');
205
- } else {
206
- setTimeout(function() {
207
- removeClass(elem, 'to-build');
208
- _t._runAutos();
209
- }, 400);
210
- }
211
- }
212
- },
213
- buildNext: function() {
214
- if (!this._buildList.length) {
215
- return false;
216
- }
217
- removeClass(this._buildList.shift(), 'to-build');
218
- return true;
219
- }
220
- };
221
-
222
- //
223
- // SlideShow class
224
- //
225
- var SlideShow = function(slides) {
226
- this._slides = (slides || []).map(function(el, idx) {
227
- return new Slide(el, idx);
228
- });
229
-
230
- this.init();
231
- var _t = this;
232
- doc.addEventListener('keydown',
233
- function(e) {
234
- _t.handleKeys(e);
235
- }, false);
236
- doc.addEventListener('mousewheel',
237
- function(e) {
238
- _t.handleWheel(e);
239
- }, false);
240
- doc.addEventListener('DOMMouseScroll',
241
- function(e) {
242
- _t.handleWheel(e);
243
- }, false);
244
- doc.addEventListener('touchstart',
245
- function(e) {
246
- _t.handleTouchStart(e);
247
- }, false);
248
- doc.addEventListener('touchend',
249
- function(e) {
250
- _t.handleTouchEnd(e);
251
- }, false);
252
- window.addEventListener('popstate',
253
- function(e) {
254
- if (e.state === null) {
255
- _t.init();
256
- } else {
257
- _t.current = e.state;
258
- }
259
- _t.go();
260
- }, false);
261
- this._update();
262
- };
263
-
264
- SlideShow.prototype = {
265
- _slides: [],
266
- _update: function(dontPush) {
267
- document.querySelector('#presentation-counter').innerText = this.current;
268
- if (history.pushState) {
269
- if (!dontPush) {
270
- history.pushState(this.current, 'Slide ' + this.current, '#slide' + this.current);
271
- }
272
- } else {
273
- window.location.hash = 'slide' + this.current;
274
- }
275
- for (var x = this.current - 1; x < this.current + 7; x++) {
276
- if (this._slides[x - 4]) {
277
- this._slides[x - 4].setState(Math.max(0, x - this.current));
278
- }
279
- }
280
- },
281
-
282
- current: 0,
283
- init: function() {
284
- var h = window.location.hash;
285
- try {
286
- this.current = parseInt(h.split('#slide')[1], 10);
287
- } catch (e) { /* squeltch */
288
- }
289
- this.current = current = isNaN(this.current) ? 1 : this.current;
290
- },
291
- next: function() {
292
- if (!this._slides[this.current - 1].buildNext()) {
293
- this.current = Math.min(this.current + 1, this._slides.length);
294
- this._update();
295
- }
296
- },
297
- prev: function() {
298
- this.current = Math.max(this.current - 1, 1);
299
- this._update();
300
- },
301
- go: function() {
302
- this._update(true);
303
- },
304
-
305
- _notesOn: false,
306
- showNotes: function() {
307
- var isOn = this._notesOn = !this._notesOn;
308
- query('.notes').forEach(function(el) {
309
- el.style.display = (notesOn) ? 'block' : 'none';
310
- });
311
- },
312
- switch3D: function() {
313
- toggleClass(document.body, 'three-d');
314
- },
315
- handleWheel: function(e) {
316
- var delta = 0;
317
- if (e.wheelDelta) {
318
- delta = e.wheelDelta / 120;
319
- if (isOpera) {
320
- delta = -delta;
321
- }
322
- } else if (e.detail) {
323
- delta = -e.detail / 3;
324
- }
325
-
326
- if (delta > 0) {
327
- this.prev();
328
- return;
329
- }
330
- if (delta < 0) {
331
- this.next();
332
- return;
333
- }
334
- },
335
- handleKeys: function(e) {
336
-
337
- if (/^(input|textarea)$/i.test(e.target.nodeName)) return;
338
-
339
- switch (e.keyCode) {
340
- case 37: // left arrow
341
- this.prev(); break;
342
- case 39: // right arrow
343
- case 32: // space
344
- this.next(); break;
345
- case 33: // pageup
346
- this.prev(); break;
347
- case 34: // pagedown
348
- this.next(); break;
349
- case 50: // 2
350
- this.showNotes(); break;
351
- case 51: // 3
352
- this.switch3D(); break;
353
- }
354
- },
355
- _touchStartX: 0,
356
- handleTouchStart: function(e) {
357
- this._touchStartX = e.touches[0].pageX;
358
- },
359
- handleTouchEnd: function(e) {
360
- var delta = this._touchStartX - e.changedTouches[0].pageX;
361
- var SWIPE_SIZE = 150;
362
- if (delta > SWIPE_SIZE) {
363
- this.next();
364
- } else if (delta < -SWIPE_SIZE) {
365
- this.prev();
366
- }
367
- }
368
- };
369
-
370
- // Initialize
371
- var slideshow = new SlideShow(query('.slide'));
372
-
373
- document.querySelector('#toggle-counter').addEventListener('click', toggleCounter, false);
374
- document.querySelector('#toggle-size').addEventListener('click', toggleSize, false);
375
- document.querySelector('#toggle-transitions').addEventListener('click', toggleTransitions, false);
376
- document.querySelector('#toggle-gradients').addEventListener('click', toggleGradients, false);
377
-
378
- var counters = document.querySelectorAll('.counter');
379
- var slides = document.querySelectorAll('.slide');
380
-
381
- function toggleCounter() {
382
- toArray(counters).forEach(function(el) {
383
- el.style.display = (el.offsetHeight) ? 'none' : 'block';
384
- });
385
- }
386
-
387
- function toggleSize() {
388
- toArray(slides).forEach(function(el) {
389
- if (!/reduced/.test(el.className)) {
390
- addClass(el, 'reduced');
391
- }
392
- else {
393
- removeClass(el, 'reduced');
394
- }
395
- });
396
- }
397
-
398
- function toggleTransitions() {
399
- toArray(slides).forEach(function(el) {
400
- if (!/no-transitions/.test(el.className)) {
401
- addClass(el, 'no-transitions');
402
- }
403
- else {
404
- removeClass(el, 'no-transitions');
405
- }
406
- });
407
- }
408
-
409
- function toggleGradients() {
410
- toArray(slides).forEach(function(el) {
411
- if (!/no-gradients/.test(el.className)) {
412
- addClass(el, 'no-gradients');
413
- }
414
- else {
415
- removeClass(el, 'no-gradients');
416
- }
417
- });
418
- }
419
- })();
@@ -1,132 +0,0 @@
1
- <!DOCTYPE html>
2
- <!--
3
- Original Project, HTML5 Rocks 'Slides Template' Copyright 2010 Google Inc.
4
-
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
16
-
17
- Original slides: Marcin Wichary (mwichary@google.com)
18
- Modifications: Ernest Delgado (ernestd@google.com)
19
- Alex Russell (slightlyoff@chromium.org)
20
- Brad Neuberg
21
-
22
- Keydown generates an HTML5 Rocks-style presentation from a Markdown file, adding
23
- the ability to full screen backgrounds, CSS overrides, and additional JavaScript.
24
-
25
- Keydown (http://infews.github.com/keydown), Copyright 2010 Infews LLC
26
- -->
27
- <html manifest="cache.manifest">
28
- <head>
29
- <!--[if gte IE 9]>
30
- <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
31
- <![endif]-->
32
-
33
- <!--[if lt IE 9]>
34
- <meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1"/>
35
- <![endif]-->
36
-
37
- <meta charset="utf-8"/>
38
- <title><%= title %></title>
39
- <link href="http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Permanent+Marker|Lobster|Ruslan+Display" rel="stylesheet" type="text/css"/>
40
-
41
- <!--
42
- Original HTML5 Rocks CSS extracted for readability
43
- -->
44
- <link href="css/rocks.css" rel="stylesheet" type="text/css"/>
45
-
46
- <!--
47
- Keydown provided CSS & your custom CSS
48
- -->
49
- <% css_files.each do |css_file| %>
50
- <link href="<%= css_file %>" rel="stylesheet" type="text/css"/>
51
- <% end %>
52
-
53
- </head>
54
- <body>
55
- <div class="presentation">
56
- <div id="presentation-counter"></div>
57
- <div class="slides">
58
- <!--
59
- First slide has Title, Instructions & options. Remove (or display:none) this slide if you like
60
- -->
61
- <div class="slide">
62
- <section class="middle">
63
- <h1><%= title %></h1>
64
-
65
- <p>
66
- Press <span class="key"><b>&rarr;</b></span>, scroll, or swipe to advance
67
- </p>
68
-
69
- <h3>
70
- Options
71
- </h3>
72
- <ul>
73
- <li>
74
- <input type="checkbox" id="toggle-size"/>
75
- <label for="toggle-size">
76
- <span>Grow</span>
77
- </label>
78
- </li>
79
- <li>
80
- <input type="checkbox" id="toggle-transitions" checked/>
81
- <label for="toggle-transitions">
82
- <span>Transitions</span>
83
- </label>
84
- </li>
85
- <li>
86
- <input type="checkbox" id="toggle-gradients" checked/>
87
- <label for="toggle-gradients">
88
- <span>Gradients</span>
89
- </label>
90
- </li>
91
- <li>
92
- <input type="checkbox" id="toggle-counter" checked/>
93
- <label for="toggle-counter">
94
- <span>Slide numbers</span>
95
- </label>
96
- </li>
97
- </ul>
98
- <p>
99
- Made with <a href="http://infews.github.com/keydown"><b>Keydown</b></a>
100
- </p>
101
- <p>
102
- <a href="http://www.w3.org/html/logo/">
103
- <img src="http://www.w3.org/html/logo/badge/html5-badge-h-css3-graphics-semantics.png" width="197" height="64" alt="HTML5 Powered with CSS3 / Styling, Graphics, 3D &amp; Effects, and Semantics" title="HTML5 Powered with CSS3 / Styling, Graphics, 3D &amp; Effects, and Semantics">
104
- </a>
105
- </p>
106
- </section>
107
- </div>
108
- <% slides.each do |slide| %>
109
- <%= slide.to_html %>
110
- <% end %>
111
- </div>
112
- </div>
113
-
114
- <!--
115
- Original HTML5 Rocks JavaScript extracted for readability
116
- -->
117
- <script src="js/rocks.js" type="text/javascript"></script>
118
-
119
- <!--[if lt IE 9]>
120
- <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
121
- <script>CFInstall.check({ mode: "overlay" });</script>
122
- <![endif]-->
123
-
124
- <!--
125
- Keydown puts your custom JS here
126
- -->
127
- <% js_files.each do |js_file| %>
128
- <script src="<%= js_file %>" type="text/javascript"></script>
129
- <% end %>
130
-
131
- </body>
132
- </html>