deckrb 0.1.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 (80) hide show
  1. data/README.md +63 -0
  2. data/bin/deck +59 -0
  3. data/deck/GPL-license.txt +278 -0
  4. data/deck/MIT-license.txt +21 -0
  5. data/deck/README.md +57 -0
  6. data/deck/core/deck.core.css +404 -0
  7. data/deck/core/deck.core.html +39 -0
  8. data/deck/core/deck.core.js +498 -0
  9. data/deck/core/deck.core.scss +447 -0
  10. data/deck/extensions/goto/deck.goto.css +41 -0
  11. data/deck/extensions/goto/deck.goto.html +7 -0
  12. data/deck/extensions/goto/deck.goto.js +134 -0
  13. data/deck/extensions/goto/deck.goto.scss +46 -0
  14. data/deck/extensions/hash/deck.hash.css +13 -0
  15. data/deck/extensions/hash/deck.hash.html +2 -0
  16. data/deck/extensions/hash/deck.hash.js +129 -0
  17. data/deck/extensions/hash/deck.hash.scss +15 -0
  18. data/deck/extensions/menu/deck.menu.css +47 -0
  19. data/deck/extensions/menu/deck.menu.js +187 -0
  20. data/deck/extensions/menu/deck.menu.scss +58 -0
  21. data/deck/extensions/navigation/deck.navigation.css +43 -0
  22. data/deck/extensions/navigation/deck.navigation.html +3 -0
  23. data/deck/extensions/navigation/deck.navigation.js +91 -0
  24. data/deck/extensions/navigation/deck.navigation.scss +56 -0
  25. data/deck/extensions/scale/deck.scale.css +16 -0
  26. data/deck/extensions/scale/deck.scale.js +155 -0
  27. data/deck/extensions/scale/deck.scale.scss +17 -0
  28. data/deck/extensions/status/deck.status.css +18 -0
  29. data/deck/extensions/status/deck.status.html +6 -0
  30. data/deck/extensions/status/deck.status.js +95 -0
  31. data/deck/extensions/status/deck.status.scss +22 -0
  32. data/deck/extensions/theme-picker/deck.theme-picker.css +55 -0
  33. data/deck/extensions/theme-picker/deck.theme-picker.js +13 -0
  34. data/deck/introduction/index.html +221 -0
  35. data/deck/introduction/index.rb +101 -0
  36. data/deck/jquery-1.7.min.js +4 -0
  37. data/deck/modernizr.custom.js +4 -0
  38. data/deck/test/fixtures/complex.html +24 -0
  39. data/deck/test/fixtures/empty.html +19 -0
  40. data/deck/test/fixtures/iframe_simple.html +10 -0
  41. data/deck/test/fixtures/iframes.html +32 -0
  42. data/deck/test/fixtures/nesteds.html +36 -0
  43. data/deck/test/fixtures/standard.html +42 -0
  44. data/deck/test/index.html +39 -0
  45. data/deck/test/lib/jasmine-html.js +190 -0
  46. data/deck/test/lib/jasmine-jquery.js +288 -0
  47. data/deck/test/lib/jasmine.css +166 -0
  48. data/deck/test/lib/jasmine.js +2477 -0
  49. data/deck/test/settings.js +3 -0
  50. data/deck/test/spec.core.js +434 -0
  51. data/deck/test/spec.goto.js +119 -0
  52. data/deck/test/spec.hash.js +81 -0
  53. data/deck/test/spec.menu.js +66 -0
  54. data/deck/test/spec.navigation.js +51 -0
  55. data/deck/test/spec.scale.js +57 -0
  56. data/deck/test/spec.status.js +58 -0
  57. data/deck/themes/style/neon.css +114 -0
  58. data/deck/themes/style/neon.scss +139 -0
  59. data/deck/themes/style/swiss.css +75 -0
  60. data/deck/themes/style/swiss.scss +91 -0
  61. data/deck/themes/style/web-2.0.css +205 -0
  62. data/deck/themes/style/web-2.0.scss +236 -0
  63. data/deck/themes/transition/fade.css +44 -0
  64. data/deck/themes/transition/fade.scss +70 -0
  65. data/deck/themes/transition/horizontal-slide.css +79 -0
  66. data/deck/themes/transition/horizontal-slide.scss +94 -0
  67. data/deck/themes/transition/vertical-slide.css +97 -0
  68. data/deck/themes/transition/vertical-slide.scss +116 -0
  69. data/lib/deck.rb +7 -0
  70. data/lib/deck/app.rb +16 -0
  71. data/lib/deck/deck.rb +166 -0
  72. data/lib/deck/rack_static_patch.rb +13 -0
  73. data/lib/deck/slide.rb +120 -0
  74. data/lib/deck/version.rb +3 -0
  75. data/spec/deck_spec.rb +98 -0
  76. data/spec/javascripts/support/jasmine_config.rb +23 -0
  77. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  78. data/spec/slide_spec.rb +285 -0
  79. data/spec/spec_helper.rb +7 -0
  80. metadata +172 -0
@@ -0,0 +1,18 @@
1
+ .deck-container .deck-status {
2
+ position: absolute;
3
+ bottom: 10px;
4
+ right: 5px;
5
+ color: #888;
6
+ z-index: 3;
7
+ margin: 0;
8
+ }
9
+
10
+ body.deck-container .deck-status {
11
+ position: fixed;
12
+ }
13
+
14
+ @media print {
15
+ .deck-status {
16
+ display: none;
17
+ }
18
+ }
@@ -0,0 +1,6 @@
1
+ <!-- Place the following snippet at the bottom of the deck container. -->
2
+ <p class="deck-status">
3
+ <span class="deck-status-current"></span>
4
+ /
5
+ <span class="deck-status-total"></span>
6
+ </p>
@@ -0,0 +1,95 @@
1
+ /*!
2
+ Deck JS - deck.status
3
+ Copyright (c) 2011 Caleb Troughton
4
+ Dual licensed under the MIT license and GPL license.
5
+ https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
6
+ https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
7
+ */
8
+
9
+ /*
10
+ This module adds a (current)/(total) style status indicator to the deck.
11
+ */
12
+ (function($, deck, undefined) {
13
+ var $d = $(document),
14
+
15
+ updateCurrent = function(e, from, to) {
16
+ var opts = $[deck]('getOptions');
17
+
18
+ $(opts.selectors.statusCurrent).text(opts.countNested ?
19
+ to + 1 :
20
+ $[deck]('getSlide', to).data('rootSlide')
21
+ );
22
+ };
23
+
24
+ /*
25
+ Extends defaults/options.
26
+
27
+ options.selectors.statusCurrent
28
+ The element matching this selector displays the current slide number.
29
+
30
+ options.selectors.statusTotal
31
+ The element matching this selector displays the total number of slides.
32
+
33
+ options.countNested
34
+ If false, only top level slides will be counted in the current and
35
+ total numbers.
36
+ */
37
+ $.extend(true, $[deck].defaults, {
38
+ selectors: {
39
+ statusCurrent: '.deck-status-current',
40
+ statusTotal: '.deck-status-total'
41
+ },
42
+
43
+ countNested: true
44
+ });
45
+
46
+ $d.bind('deck.init', function() {
47
+ var opts = $[deck]('getOptions'),
48
+ slides = $[deck]('getSlides'),
49
+ $current = $[deck]('getSlide'),
50
+ ndx;
51
+
52
+ // Set total slides once
53
+ if (opts.countNested) {
54
+ $(opts.selectors.statusTotal).text(slides.length);
55
+ }
56
+ else {
57
+ /* Determine root slides by checking each slide's ancestor tree for
58
+ any of the slide classes. */
59
+ var rootIndex = 1,
60
+ slideTest = $.map([
61
+ opts.classes.before,
62
+ opts.classes.previous,
63
+ opts.classes.current,
64
+ opts.classes.next,
65
+ opts.classes.after
66
+ ], function(el, i) {
67
+ return '.' + el;
68
+ }).join(', ');
69
+
70
+ /* Store the 'real' root slide number for use during slide changes. */
71
+ $.each(slides, function(i, $el) {
72
+ var $parentSlides = $el.parentsUntil(opts.selectors.container, slideTest);
73
+
74
+ $el.data('rootSlide', $parentSlides.length ?
75
+ $parentSlides.last().data('rootSlide') :
76
+ rootIndex++
77
+ );
78
+ });
79
+
80
+ $(opts.selectors.statusTotal).text(rootIndex - 1);
81
+ }
82
+
83
+ // Find where we started in the deck and set initial state
84
+ $.each(slides, function(i, $el) {
85
+ if ($el === $current) {
86
+ ndx = i;
87
+ return false;
88
+ }
89
+ });
90
+ updateCurrent(null, ndx, ndx);
91
+ })
92
+ /* Update current slide number with each change event */
93
+ .bind('deck.change', updateCurrent);
94
+ })(jQuery, 'deck');
95
+
@@ -0,0 +1,22 @@
1
+ .deck-container {
2
+ .deck-status {
3
+ position:absolute;
4
+ bottom:10px;
5
+ right:5px;
6
+ color:#888;
7
+ z-index:3;
8
+ margin:0;
9
+ }
10
+ }
11
+
12
+ body.deck-container {
13
+ .deck-status {
14
+ position:fixed;
15
+ }
16
+ }
17
+
18
+ @media print {
19
+ .deck-status {
20
+ display:none;
21
+ }
22
+ }
@@ -0,0 +1,55 @@
1
+ .deck-container .theme-picker {
2
+ display: none;
3
+ position: fixed;
4
+ z-index: 3;
5
+ bottom: -20px;
6
+ right: 10px;
7
+ height: 20px;
8
+ line-height: 20px;
9
+ padding: 5px;
10
+ border: 1px solid #ddd;
11
+ -webkit-border-radius: 5px;
12
+ -moz-border-radius: 5px;
13
+ border-radius: 5px;
14
+ overflow: hidden;
15
+ background: #fff;
16
+ font-family: sans-serif;
17
+ color: #888;
18
+ }
19
+ .js .deck-container .theme-picker {
20
+ display: block;
21
+ }
22
+ .deck-container .theme-picker h2 {
23
+ float: left;
24
+ font-size: 12px;
25
+ border: 0;
26
+ padding: 5px 10px;
27
+ margin: 0;
28
+ height: 20px;
29
+ position: relative;
30
+ top: -5px;
31
+ left: -5px;
32
+ background: #ccc;
33
+ color: #444;
34
+ text-shadow: none;
35
+ font-family: sans-serif;
36
+ font-weight: bold;
37
+ }
38
+ .deck-container .theme-picker label {
39
+ float: left;
40
+ display: block;
41
+ font-size: 12px;
42
+ vertical-align: baseline;
43
+ margin: 0 4px 0 15px;
44
+ }
45
+ .deck-container .theme-picker select {
46
+ float: left;
47
+ display: block;
48
+ font-size: 14px;
49
+ }
50
+
51
+ @media print {
52
+ .theme-picker {
53
+ display: none !important;
54
+ }
55
+ }
@@ -0,0 +1,13 @@
1
+ $(function() {
2
+
3
+ $('.deck-container').prepend('<div class="theme-picker"><h2>Themes</h2><label for="style-themes">Style:</label><select id="style-themes"><option selected="selected" value="deck/themes/style/web-2.0.css">Web 2.0</option><option value="deck/themes/style/swiss.css">Swiss</option><option value="deck/themes/style/neon.css">Neon</option><option value="">None</option></select><label for="transition-themes">Transition:</label><select id="transition-themes"><option value="deck/themes/transition/horizontal-slide.css">Horizontal Slide</option><option value="deck/themes/transition/vertical-slide.css">Vertical Slide</option><option value="deck/themes/transition/fade.css">Fade</option><option selected="selected" value="">None</option></select></div>');
4
+
5
+ $('#style-themes').change(function() {
6
+ $('#style-theme-link').attr('href', $(this).val());
7
+ });
8
+
9
+ $('#transition-themes').change(function() {
10
+ $('#transition-theme-link').attr('href', $(this).val());
11
+ });
12
+ });
13
+
@@ -0,0 +1,221 @@
1
+ <!DOCTYPE html>
2
+ <!--[if lt IE 7]> <html class="no-js ie6" lang="en"> <![endif]-->
3
+ <!--[if IE 7]> <html class="no-js ie7" lang="en"> <![endif]-->
4
+ <!--[if IE 8]> <html class="no-js ie8" lang="en"> <![endif]-->
5
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
+
10
+ <title>Getting Started with deck.js</title>
11
+
12
+ <meta name="description" content="A jQuery library for modern HTML presentations">
13
+ <meta name="author" content="Caleb Troughton">
14
+ <meta name="viewport" content="width=1024, user-scalable=no">
15
+
16
+ <!-- Core and extension CSS files -->
17
+ <link rel="stylesheet" href="../core/deck.core.css">
18
+ <link rel="stylesheet" href="../extensions/goto/deck.goto.css">
19
+ <link rel="stylesheet" href="../extensions/menu/deck.menu.css">
20
+ <link rel="stylesheet" href="../extensions/navigation/deck.navigation.css">
21
+ <link rel="stylesheet" href="../extensions/status/deck.status.css">
22
+ <link rel="stylesheet" href="../extensions/hash/deck.hash.css">
23
+
24
+ <!-- Theme CSS files (menu swaps these out) -->
25
+ <link rel="stylesheet" id="style-theme-link" href="../themes/style/web-2.0.css">
26
+ <link rel="stylesheet" id="transition-theme-link" href="../themes/transition/horizontal-slide.css">
27
+
28
+ <!-- Custom CSS just for this page -->
29
+ <link rel="stylesheet" href="introduction.css">
30
+
31
+ <script src="../modernizr.custom.js"></script>
32
+ </head>
33
+
34
+ <body class="deck-container">
35
+
36
+ <div class="theme-picker">
37
+ <h2>Themes</h2>
38
+
39
+ <label for="style-themes">Style:</label>
40
+ <select id="style-themes">
41
+ <option selected="selected" value="../themes/style/web-2.0.css">Web 2.0</option>
42
+ <option value="../themes/style/swiss.css">Swiss</option>
43
+ <option value="../themes/style/neon.css">Neon</option>
44
+ <option value="">None</option>
45
+ </select>
46
+
47
+ <label for="transition-themes">Transition:</label>
48
+ <select id="transition-themes">
49
+ <option selected="selected" value="../themes/transition/horizontal-slide.css">Horizontal Slide</option>
50
+ <option value="../themes/transition/vertical-slide.css">Vertical Slide</option>
51
+ <option value="../themes/transition/fade.css">Fade</option>
52
+ <option value="">None</option>
53
+ </select>
54
+ </div>
55
+
56
+ <section class="slide" id="title-slide">
57
+ <h1>Getting Started with deck.js</h1>
58
+ </section>
59
+
60
+ <section class="slide" id="how-to-overview">
61
+ <h2>How to Make a Deck</h2>
62
+ <ol>
63
+ <li>
64
+ <h3>Write Slides</h3>
65
+ <p>Slide content is simple&nbsp;HTML.</p>
66
+ </li>
67
+ <li>
68
+ <h3>Choose Themes</h3>
69
+ <p>One for slide styles and one for deck&nbsp;transitions.</p>
70
+ </li>
71
+ <li>
72
+ <h3>Include Extensions</h3>
73
+ <p>Add extra functionality to your deck, or leave it stripped&nbsp;down.</p>
74
+ </li>
75
+ </ol>
76
+ </section>
77
+
78
+ <section class="slide" id="markup">
79
+ <h2>The Markup</h2>
80
+ <p>Slides are just HTML elements with a class of <code>slide</code>.</p>
81
+ <pre><code>&lt;section class=&quot;slide&quot;&gt;
82
+ &lt;h2&gt;How to Make a Deck&lt;/h2&gt;
83
+ &lt;ol&gt;
84
+ &lt;li&gt;
85
+ &lt;h3&gt;Write Slides&lt;/h3&gt;
86
+ &lt;p&gt;Slide content is simple HTML.&lt;/p&gt;
87
+ &lt;/li&gt;
88
+ &lt;li&gt;
89
+ &lt;h3&gt;Choose Themes&lt;/h3&gt;
90
+ &lt;p&gt;One for slide styles and one for deck transitions.&lt;/p&gt;
91
+ &lt;/li&gt;
92
+ &hellip;
93
+ &lt;/ol&gt;
94
+ &lt;/section&gt;</code></pre>
95
+ </section>
96
+
97
+ <section class="slide" id="themes">
98
+ <h2>Style Themes</h2>
99
+ <p>Customizes the colors, typography, and layout of slide&nbsp;content.</p>
100
+ <pre><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;/path/to/css/style-theme.css&quot;&gt;</code></pre>
101
+ <h2>Transition Themes</h2>
102
+ <p>Defines transitions between slides using CSS3 transitions. Less capable browsers fall back to cutaways. But <strong>you</strong> aren&rsquo;t using <em>those</em> browsers to give your presentations, are&nbsp;you&hellip;</p>
103
+ <pre><code>&lt;link rel=&quot;stylesheet&quot; href=&quot;/path/to/css/transition-theme.css&quot;&gt;</code></pre>
104
+ </section>
105
+
106
+ <section class="slide" id="extensions">
107
+ <h2>Extensions</h2>
108
+ <p>Core gives you basic slide functionality with left and right arrow navigation, but you may want more. Here are the ones included in this&nbsp;deck:</p>
109
+
110
+ <ul>
111
+ <li class="slide" id="extensions-goto">
112
+ <strong>deck.goto</strong>: Adds a shortcut key to jump to any slide number. Hit g, type in the slide number, and hit&nbsp;enter.
113
+ </li>
114
+
115
+ <li class="slide" id="extensions-hash">
116
+ <strong>deck.hash</strong>: Enables internal linking within slides, deep linking to individual slides, and updates the address bar &amp; a permalink anchor with each slide&nbsp;change.
117
+ </li>
118
+
119
+ <li class="slide" id="extensions-menu">
120
+ <strong>deck.menu</strong>: Adds a menu view, letting you see all slides in a grid. Hit m to toggle to menu view, continue navigating your deck, and hit m to return to normal view. Touch devices can double-tap the deck to switch between&nbsp;views.
121
+ </li>
122
+
123
+ <li class="slide" id="extensions-navigation">
124
+ <strong>deck.navigation</strong>: Adds clickable left and right buttons for the less keyboard&nbsp;inclined.
125
+ </li>
126
+
127
+ <li class="slide" id="extensions-status">
128
+ <strong>deck.status</strong>: Adds a page number indicator. (current/total)
129
+ </li>
130
+ </ul>
131
+
132
+ <p class="slide" id="extension-folders">Each extension folder in the download package contains the necessary JavaScript, CSS, and HTML&nbsp;files. For a complete list of extension modules included in deck.js, check out the&nbsp;<a href="http://imakewebthings.github.com/deck.js/docs">documentation</a>.</p>
133
+ </section>
134
+
135
+ <section class="slide" id="nested">
136
+ <h2>Nested Slides</h2>
137
+ <p>That last slide had a few steps. To create substeps in slides, just nest them:</p>
138
+ <pre><code>&lt;section class=&quot;slide&quot;&gt;
139
+ &lt;h2&gt;Extensions&lt;/h2&gt;
140
+ &lt;p&gt;Core gives you basic slide functionality...&lt;/p&gt;
141
+ &lt;ul&gt;
142
+ &lt;li class=&quot;slide&quot;&gt;
143
+ &lt;h3&gt;deck.goto&lt;/h3&gt;
144
+ &lt;p&gt;Adds a shortcut key to jump to any slide number...&lt;/p&gt;
145
+ &lt;/li&gt;
146
+ &lt;li class=&quot;slide&quot;&gt;...&lt;/li&gt;
147
+ &lt;li class=&quot;slide&quot;&gt;...&lt;/li&gt;
148
+ &lt;li class=&quot;slide&quot;&gt;...&lt;/li&gt;
149
+ &lt;/ul&gt;
150
+ &lt;/section&gt;</code></pre>
151
+ </section>
152
+
153
+ <section class="slide" id="elements-images">
154
+ <h2>Other Elements: Images</h2>
155
+ <img src="http://placekitten.com/600/375" alt="Kitties">
156
+ <pre><code>&lt;img src=&quot;http://placekitten.com/600/375&quot; alt=&quot;Kitties&quot;&gt;</code></pre>
157
+ </section>
158
+
159
+ <section class="slide" id="elements-blockquotes">
160
+ <h2>Other Elements: Blockquotes</h2>
161
+ <blockquote cite="http://example.org">
162
+ <p>Food is an important part of a balanced diet.</p>
163
+ <p><cite>Fran Lebowitz</cite></p>
164
+ </blockquote>
165
+ <pre><code>&lt;blockquote cite=&quot;http://example.org&quot;&gt;
166
+ &lt;p&gt;Food is an important part of a balanced diet.&lt;/p&gt;
167
+ &lt;p&gt;&lt;cite&gt;Fran Lebowitz&lt;/cite&gt;&lt;/p&gt;
168
+ &lt;/blockquote&gt;</code></pre>
169
+ </section>
170
+
171
+
172
+ <section class="slide" id="elements-videos">
173
+ <h2>Other Elements: Video Embeds</h2>
174
+ <p>Embed videos from your favorite online video service or with an HTML5 video&nbsp;element.</p>
175
+
176
+ <iframe src="http://player.vimeo.com/video/1063136?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0"></iframe>
177
+
178
+ <pre><code>&lt;iframe src=&quot;http://player.vimeo.com/video/1063136?title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;400&quot; height=&quot;225&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;</code></pre>
179
+ </section>
180
+
181
+ <section class="slide" id="digging-deeper">
182
+ <h2>Digging Deeper</h2>
183
+ <p>If you want to learn about making your own themes, extending deck.js, and more, check out the&nbsp;<a href="../docs/">documentation</a>.</p>
184
+ </section>
185
+
186
+ <a href="#" class="deck-prev-link" title="Previous">&#8592;</a>
187
+ <a href="#" class="deck-next-link" title="Next">&#8594;</a>
188
+
189
+ <p class="deck-status">
190
+ <span class="deck-status-current"></span>
191
+ /
192
+ <span class="deck-status-total"></span>
193
+ </p>
194
+
195
+ <form action="." method="get" class="goto-form">
196
+ <label for="goto-slide">Go to slide:</label>
197
+ <input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
198
+ <datalist id="goto-datalist"></datalist>
199
+ <input type="submit" value="Go">
200
+ </form>
201
+
202
+ <a href="." title="Permalink to this slide" class="deck-permalink">#</a>
203
+
204
+
205
+ <!-- Grab CDN jQuery, with a protocol relative URL; fall back to local if offline -->
206
+ <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.min.js"></script>
207
+ <script>window.jQuery || document.write('<script src="../jquery-1.7.min.js"><\/script>')</script>
208
+
209
+ <!-- Deck Core and extensions -->
210
+ <script src="../core/deck.core.js"></script>
211
+ <script src="../extensions/hash/deck.hash.js"></script>
212
+ <script src="../extensions/menu/deck.menu.js"></script>
213
+ <script src="../extensions/goto/deck.goto.js"></script>
214
+ <script src="../extensions/status/deck.status.js"></script>
215
+ <script src="../extensions/navigation/deck.navigation.js"></script>
216
+
217
+ <!-- Specific to this page -->
218
+ <script src="introduction.js"></script>
219
+
220
+ </body>
221
+ </html>
@@ -0,0 +1,101 @@
1
+ class Index < Erector::Widget
2
+ def content
3
+ rawtext '<!DOCTYPE html>'
4
+ rawtext '<!--[if lt IE 7]>'
5
+ html :class => 'no-js ie6', :lang => 'en' do
6
+ rawtext '<![endif]-->'
7
+ rawtext '<!--[if IE 7]>'
8
+ html :class => 'no-js ie7', :lang => 'en' do
9
+ rawtext '<![endif]-->'
10
+ rawtext '<!--[if IE 8]>'
11
+ html :class => 'no-js ie8', :lang => 'en' do
12
+ rawtext '<![endif]-->'
13
+ rawtext '<!--[if gt IE 8]>'
14
+ rawtext '<!-->'
15
+ html :class => 'no-js', :lang => 'en' do
16
+ rawtext '<!--<![endif]-->'
17
+ head do
18
+ meta :charset => 'utf-8' do
19
+ meta 'http-equiv' => 'X-UA-Compatible', :content => 'IE=edge,chrome=1' do
20
+ title do
21
+ text 'Getting Started with deck.js'
22
+ end
23
+ meta :name => 'description', :content => 'A jQuery library for modern HTML presentations' do
24
+ meta :name => 'author', :content => 'Caleb Troughton' do
25
+ meta :name => 'viewport', :content => 'width=1024, user-scalable=no' do
26
+ rawtext '<!-- Core and extension CSS files -->'
27
+ link :rel => 'stylesheet', :href => '../core/deck.core.css' do
28
+ link :rel => 'stylesheet', :href => '../extensions/goto/deck.goto.css' do
29
+ link :rel => 'stylesheet', :href => '../extensions/menu/deck.menu.css' do
30
+ link :rel => 'stylesheet', :href => '../extensions/navigation/deck.navigation.css' do
31
+ link :rel => 'stylesheet', :href => '../extensions/status/deck.status.css' do
32
+ link :rel => 'stylesheet', :href => '../extensions/hash/deck.hash.css' do
33
+ rawtext '<!-- Theme CSS files (menu swaps these out) -->'
34
+ link :rel => 'stylesheet', :id => 'style-theme-link', :href => '../themes/style/web-2.0.css' do
35
+ link :rel => 'stylesheet', :id => 'transition-theme-link', :href => '../themes/transition/horizontal-slide.css' do
36
+ rawtext '<!-- Custom CSS just for this page -->'
37
+ link :rel => 'stylesheet', :href => 'introduction.css' do
38
+ script :src => '../modernizr.custom.js' do
39
+ end
40
+ end
41
+ body :class => 'deck-container' do
42
+ section :class => 'slide', :id => 'title-slide' do
43
+ h1 do
44
+ text 'Getting Started with deck.js'
45
+ end
46
+ end
47
+ a :href => '#', :class => 'deck-prev-link', :title => 'Previous' do
48
+ text '←'
49
+ end
50
+ a :href => '#', :class => 'deck-next-link', :title => 'Next' do
51
+ text '→'
52
+ end
53
+ p :class => 'deck-status' do
54
+ span :class => 'deck-status-current' do
55
+ end
56
+ text '/'
57
+ span :class => 'deck-status-total' do
58
+ end
59
+ end
60
+ form :action => '.', :method => 'get', :class => 'goto-form' do
61
+ label :for => 'goto-slide' do
62
+ text 'Go to slide:'
63
+ end
64
+ input :type => 'text', :name => 'slidenum', :id => 'goto-slide', :list => 'goto-datalist' do
65
+ datalist :id => 'goto-datalist' do
66
+ end
67
+ input :type => 'submit', :value => 'Go' do
68
+ end
69
+
70
+
71
+ a :href => '.', :title => 'Permalink to this slide', :class => 'deck-permalink' do
72
+ text '#'
73
+ end
74
+ rawtext '<!-- Grab CDN jQuery, with a protocol relative URL; fall back to local if offline -->'
75
+ script :src => '//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.min.js' do
76
+ end
77
+ script do
78
+ text 'window.jQuery || document.write(\''
79
+ script :src => '../jquery-1.7.min.js' do
80
+ text '<\/script>\')'
81
+ end
82
+ rawtext '<!-- Deck Core and extensions -->'
83
+ script :src => '../core/deck.core.js' do
84
+ end
85
+ script :src => '../extensions/hash/deck.hash.js' do
86
+ end
87
+ script :src => '../extensions/menu/deck.menu.js' do
88
+ end
89
+ script :src => '../extensions/goto/deck.goto.js' do
90
+ end
91
+ script :src => '../extensions/status/deck.status.js' do
92
+ end
93
+ script :src => '../extensions/navigation/deck.navigation.js' do
94
+ end
95
+ rawtext '<!-- Specific to this page -->'
96
+ script :src => 'introduction.js' do
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end