slideoff 0.1

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 (214) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +218 -0
  5. data/bin/slideoff +127 -0
  6. data/lib/slideoff/config_builder.rb +60 -0
  7. data/lib/slideoff/flickr_api.rb +50 -0
  8. data/lib/slideoff/flickr_image.rb +92 -0
  9. data/lib/slideoff/markdown.rb +145 -0
  10. data/lib/slideoff/presentation.rb +90 -0
  11. data/lib/slideoff/remote_api.rb +53 -0
  12. data/lib/slideoff/routes.rb +20 -0
  13. data/lib/slideoff/server.rb +50 -0
  14. data/lib/slideoff/slides_api.rb +59 -0
  15. data/lib/slideoff/utils.rb +453 -0
  16. data/lib/slideoff.rb +15 -0
  17. data/themes/3d_slideshow/README +2 -0
  18. data/themes/3d_slideshow/css/main.css +232 -0
  19. data/themes/3d_slideshow/css/reset.css +57 -0
  20. data/themes/3d_slideshow/index.erb +31 -0
  21. data/themes/3d_slideshow/js/slideshow.js +288 -0
  22. data/themes/CSSS/README +2 -0
  23. data/themes/CSSS/css/slideshow.css +304 -0
  24. data/themes/CSSS/css/theme.css +250 -0
  25. data/themes/CSSS/images/rainbow-wood.jpg +0 -0
  26. data/themes/CSSS/index.erb +36 -0
  27. data/themes/CSSS/js/classList.js +116 -0
  28. data/themes/CSSS/js/prefixfree.min.js +5 -0
  29. data/themes/CSSS/js/slideshow.js +621 -0
  30. data/themes/common/css/pygments/colorful.css +62 -0
  31. data/themes/common/css/pygments/manni.css +61 -0
  32. data/themes/common/css/pygments/native.css +70 -0
  33. data/themes/common/css/pygments/solarized.css +66 -0
  34. data/themes/common/fonts/DroidSansMono.svg +626 -0
  35. data/themes/common/fonts/DroidSansMono.ttf +0 -0
  36. data/themes/common/fonts/Lato-BoldItalic.woff +0 -0
  37. data/themes/common/fonts/Lato-Italic.woff +0 -0
  38. data/themes/common/fonts/Lato-bold.woff +0 -0
  39. data/themes/common/fonts/Lato.woff +0 -0
  40. data/themes/common/fonts/OpenSans-Bold.woff +0 -0
  41. data/themes/common/fonts/OpenSans-BoldItalic.woff +0 -0
  42. data/themes/common/fonts/OpenSans-Italic.woff +0 -0
  43. data/themes/common/fonts/OpenSans.woff +0 -0
  44. data/themes/common/fonts/PTMono.woff +0 -0
  45. data/themes/common/fonts/PTSans.Bold.Italic.woff +0 -0
  46. data/themes/common/fonts/PTSans.Bold.woff +0 -0
  47. data/themes/common/fonts/PTSans.Italic.woff +0 -0
  48. data/themes/common/fonts/PTSans.Narrow.Bold.woff +0 -0
  49. data/themes/common/fonts/PTSans.Narrow.woff +0 -0
  50. data/themes/common/fonts/PTSans.woff +0 -0
  51. data/themes/common/fonts/TargetBlank.otf +0 -0
  52. data/themes/common/fonts/TargetBlank.svg +14 -0
  53. data/themes/common/fonts/YanoneKaffeesatz-Bold.woff +0 -0
  54. data/themes/common/fonts/YanoneKaffeesatz-Regular.woff +0 -0
  55. data/themes/common/fonts/crimson_text.ttf +0 -0
  56. data/themes/common/fonts/crimson_text_bold.ttf +0 -0
  57. data/themes/common/fonts/crimson_text_semibold.ttf +0 -0
  58. data/themes/common/fonts/league_gothic-webfont.ttf +0 -0
  59. data/themes/html5rocks/README +2 -0
  60. data/themes/html5rocks/css/default.css +501 -0
  61. data/themes/html5rocks/css/moon.css +543 -0
  62. data/themes/html5rocks/css/sand.css +508 -0
  63. data/themes/html5rocks/css/sea_wave.css +492 -0
  64. data/themes/html5rocks/index.erb +64 -0
  65. data/themes/html5rocks/js/slides.js +464 -0
  66. data/themes/io2012/README +2 -0
  67. data/themes/io2012/css/default.css +1481 -0
  68. data/themes/io2012/css/fonts.css +24 -0
  69. data/themes/io2012/css/phone.css +27 -0
  70. data/themes/io2012/images/google_developers_icon_128.png +0 -0
  71. data/themes/io2012/images/io2012_logo.png +0 -0
  72. data/themes/io2012/index.erb +73 -0
  73. data/themes/io2012/js/hammer.js +586 -0
  74. data/themes/io2012/js/modernizr.custom.45394.js +4 -0
  75. data/themes/io2012/js/order.js +8 -0
  76. data/themes/io2012/js/polyfills/classList.min.js +2 -0
  77. data/themes/io2012/js/polyfills/dataset.min.js +2 -0
  78. data/themes/io2012/js/polyfills/history.min.js +1 -0
  79. data/themes/io2012/js/prettify/lang-apollo.js +2 -0
  80. data/themes/io2012/js/prettify/lang-clj.js +18 -0
  81. data/themes/io2012/js/prettify/lang-css.js +2 -0
  82. data/themes/io2012/js/prettify/lang-go.js +1 -0
  83. data/themes/io2012/js/prettify/lang-hs.js +2 -0
  84. data/themes/io2012/js/prettify/lang-lisp.js +3 -0
  85. data/themes/io2012/js/prettify/lang-lua.js +2 -0
  86. data/themes/io2012/js/prettify/lang-ml.js +2 -0
  87. data/themes/io2012/js/prettify/lang-n.js +4 -0
  88. data/themes/io2012/js/prettify/lang-proto.js +1 -0
  89. data/themes/io2012/js/prettify/lang-scala.js +2 -0
  90. data/themes/io2012/js/prettify/lang-sql.js +2 -0
  91. data/themes/io2012/js/prettify/lang-tex.js +1 -0
  92. data/themes/io2012/js/prettify/lang-vb.js +2 -0
  93. data/themes/io2012/js/prettify/lang-vhdl.js +3 -0
  94. data/themes/io2012/js/prettify/lang-wiki.js +2 -0
  95. data/themes/io2012/js/prettify/lang-xq.js +3 -0
  96. data/themes/io2012/js/prettify/lang-yaml.js +2 -0
  97. data/themes/io2012/js/prettify/prettify.css +1 -0
  98. data/themes/io2012/js/prettify/prettify.js +28 -0
  99. data/themes/io2012/js/require-1.0.8.min.js +33 -0
  100. data/themes/io2012/js/slide-controller.js +109 -0
  101. data/themes/io2012/js/slide-deck.js +768 -0
  102. data/themes/io2012/js/slides.js +5 -0
  103. data/themes/memories/README +5 -0
  104. data/themes/memories/css/fonts.css +25 -0
  105. data/themes/memories/css/slideshow.css +286 -0
  106. data/themes/memories/css/theme.css +183 -0
  107. data/themes/memories/index.erb +37 -0
  108. data/themes/memories/js/prefixfree.min.js +13 -0
  109. data/themes/memories/js/slideshow.js +577 -0
  110. data/themes/modern/LICENSE +20 -0
  111. data/themes/modern/README.md +52 -0
  112. data/themes/modern/css/GENERATED_CONTENT +0 -0
  113. data/themes/modern/css/defaults.css +0 -0
  114. data/themes/modern/css/fonts.css +166 -0
  115. data/themes/modern/css/pygments/colorful.css +215 -0
  116. data/themes/modern/css/pygments/github.css +208 -0
  117. data/themes/modern/css/pygments/solarized-dark.css +213 -0
  118. data/themes/modern/css/pygments/solarized-light.css +213 -0
  119. data/themes/modern/css/reset.css +41 -0
  120. data/themes/modern/css/screen.css +1183 -0
  121. data/themes/modern/fonts/Collegiate.woff +0 -0
  122. data/themes/modern/fonts/GoudyBookletter.1911.woff +0 -0
  123. data/themes/modern/fonts/Inconsolata.Bold.woff +0 -0
  124. data/themes/modern/fonts/Inconsolata.woff +0 -0
  125. data/themes/modern/fonts/Junction.woff +0 -0
  126. data/themes/modern/fonts/LiberationMono.Bold.woff +0 -0
  127. data/themes/modern/fonts/LiberationMono.BoldItalic.woff +0 -0
  128. data/themes/modern/fonts/LiberationMono.Italic.woff +0 -0
  129. data/themes/modern/fonts/LiberationMono.Regular.woff +0 -0
  130. data/themes/modern/fonts/OpenSans.Bold.woff +0 -0
  131. data/themes/modern/fonts/OpenSans.BoldItalic.woff +0 -0
  132. data/themes/modern/fonts/OpenSans.ExtraBold.woff +0 -0
  133. data/themes/modern/fonts/OpenSans.ExtraBoldItalic.woff +0 -0
  134. data/themes/modern/fonts/OpenSans.Italic.woff +0 -0
  135. data/themes/modern/fonts/OpenSans.Light.woff +0 -0
  136. data/themes/modern/fonts/OpenSans.LightItalic.woff +0 -0
  137. data/themes/modern/fonts/OpenSans.Regular.woff +0 -0
  138. data/themes/modern/fonts/OpenSans.Semibold.woff +0 -0
  139. data/themes/modern/fonts/OpenSans.SemiboldItalic.woff +0 -0
  140. data/themes/modern/fonts/PTMono.woff +0 -0
  141. data/themes/modern/fonts/PTSans.Bold.Italic.woff +0 -0
  142. data/themes/modern/fonts/PTSans.Bold.woff +0 -0
  143. data/themes/modern/fonts/PTSans.Italic.woff +0 -0
  144. data/themes/modern/fonts/PTSans.Narrow.Bold.woff +0 -0
  145. data/themes/modern/fonts/PTSans.woff +0 -0
  146. data/themes/modern/fonts/Raleway.Thin.woff +0 -0
  147. data/themes/modern/fonts/STIXGeneral.Bold.woff +0 -0
  148. data/themes/modern/fonts/STIXGeneral.BoldItalic.woff +0 -0
  149. data/themes/modern/fonts/STIXGeneral.Italic.woff +0 -0
  150. data/themes/modern/fonts/STIXGeneral.Regular.woff +0 -0
  151. data/themes/modern/fonts/YanoneKaffeesatz.Bold.woff +0 -0
  152. data/themes/modern/fonts/YanoneKaffeesatz.ExtraLight.woff +0 -0
  153. data/themes/modern/fonts/YanoneKaffeesatz.Light.woff +0 -0
  154. data/themes/modern/fonts/YanoneKaffeesatz.Regular.woff +0 -0
  155. data/themes/modern/images/cc/by.svg +29 -0
  156. data/themes/modern/images/cc/cc-white.svg +23 -0
  157. data/themes/modern/images/cc/cc.svg +23 -0
  158. data/themes/modern/images/cc/nc-eu.svg +21 -0
  159. data/themes/modern/images/cc/nc-jp.svg +18 -0
  160. data/themes/modern/images/cc/nc.svg +23 -0
  161. data/themes/modern/images/cc/nd.svg +20 -0
  162. data/themes/modern/images/cc/pd.svg +24 -0
  163. data/themes/modern/images/cc/remix.svg +20 -0
  164. data/themes/modern/images/cc/sa.svg +22 -0
  165. data/themes/modern/images/cc/sampling.plus.svg +33 -0
  166. data/themes/modern/images/cc/sampling.svg +36 -0
  167. data/themes/modern/images/cc/share.svg +22 -0
  168. data/themes/modern/images/cc/zero.svg +24 -0
  169. data/themes/modern/images/flickr.svg +65 -0
  170. data/themes/modern/images/mesh.png +0 -0
  171. data/themes/modern/images/mesh@2x.png +0 -0
  172. data/themes/modern/images/progress-grayDark.svg +55 -0
  173. data/themes/modern/images/progress.svg +3 -0
  174. data/themes/modern/index.erb +76 -0
  175. data/themes/modern/js/highcharts.js +294 -0
  176. data/themes/modern/js/jquery-2.1.0.min.js +4 -0
  177. data/themes/modern/js/script.coffee +480 -0
  178. data/themes/modern/js/script.js +678 -0
  179. data/themes/modern/styles/_box.scss +89 -0
  180. data/themes/modern/styles/_figure.scss +81 -0
  181. data/themes/modern/styles/_full.scss +74 -0
  182. data/themes/modern/styles/_increment.scss +38 -0
  183. data/themes/modern/styles/_list.scss +129 -0
  184. data/themes/modern/styles/_progress.scss +19 -0
  185. data/themes/modern/styles/defaults.scss +46 -0
  186. data/themes/modern/styles/fonts.scss +197 -0
  187. data/themes/modern/styles/pygments/_solarized.scss +82 -0
  188. data/themes/modern/styles/pygments/colorful.scss +67 -0
  189. data/themes/modern/styles/pygments/github.scss +67 -0
  190. data/themes/modern/styles/pygments/solarized-dark.scss +15 -0
  191. data/themes/modern/styles/pygments/solarized-light.scss +15 -0
  192. data/themes/modern/styles/reset.scss +46 -0
  193. data/themes/modern/styles/screen.scss +841 -0
  194. data/themes/reveal/README +2 -0
  195. data/themes/reveal/css/main.css +1029 -0
  196. data/themes/reveal/css/reset.css +57 -0
  197. data/themes/reveal/index.erb +102 -0
  198. data/themes/reveal/js/classList.js +2 -0
  199. data/themes/reveal/js/head.min.js +8 -0
  200. data/themes/reveal/js/reveal.js +951 -0
  201. data/themes/shower/README +2 -0
  202. data/themes/shower/css/fonts.css +50 -0
  203. data/themes/shower/css/reset.css +42 -0
  204. data/themes/shower/css/style.css +418 -0
  205. data/themes/shower/images/grid.png +0 -0
  206. data/themes/shower/images/linen.png +0 -0
  207. data/themes/shower/images/ribbon.svg +4 -0
  208. data/themes/shower/index.erb +35 -0
  209. data/themes/shower/js/script.js +325 -0
  210. data/themes/template/README +5 -0
  211. data/themes/template/css/reset.css +42 -0
  212. data/themes/template/index.erb +35 -0
  213. data/themes/template/js/prefixfree.min.js +13 -0
  214. metadata +343 -0
@@ -0,0 +1,5 @@
1
+ require(['order!modernizr.custom.45394',
2
+ 'order!prettify/prettify', 'order!hammer', 'order!slide-controller',
3
+ 'order!slide-deck'], function(someModule) {
4
+
5
+ });
@@ -0,0 +1,5 @@
1
+ This theme is based on CSSS by Lea Verou:
2
+ https://github.com/LeaVerou/CSSS
3
+
4
+ Colors are taken from the Solaired project by Ethan Schoonover:
5
+ http://ethanschoonover.com/solarized
@@ -0,0 +1,25 @@
1
+ /* Droid Sans Mono */
2
+ @font-face {
3
+ font-family: 'Droid Sans Mono';
4
+ src: local('Droid Sans Mono'),
5
+ url(../fonts/DroidSansMono.ttf) format('truetype'),
6
+ url(../fonts/DroidSansMono.svg#DroidSansMono) format('svg');
7
+ }
8
+
9
+ /* Yanone Kaffeesatz */
10
+ @font-face {
11
+ font-family: 'Yanone Kaffeesatz';
12
+ font-style: normal;
13
+ font-weight: 400;
14
+ src: local('Yanone Kaffeesatz Regular'),
15
+ local('YanoneKaffeesatz-Regular'),
16
+ url('../fonts/YanoneKaffeesatz-Regular.woff') format('woff');
17
+ }
18
+ @font-face {
19
+ font-family: 'Yanone Kaffeesatz';
20
+ font-style: normal;
21
+ font-weight: 700;
22
+ src: local('Yanone Kaffeesatz Bold'),
23
+ local('YanoneKaffeesatz-Bold'),
24
+ url('../fonts/YanoneKaffeesatz-Bold.woff') format('woff');
25
+ }
@@ -0,0 +1,286 @@
1
+ /**
2
+ Basic CSS so that the slideshow script functions as a slideshow
3
+ @author Lea Verou
4
+ @version 1.0
5
+ */
6
+
7
+ /**
8
+ * "Variables"
9
+ */
10
+ .slide,
11
+ .delayed,
12
+ .delayed-children > * {
13
+ transition:.5s;
14
+ transition-property: transform, opacity, left, top, right, bottom, background;
15
+ }
16
+
17
+ /**
18
+ * Styles
19
+ */
20
+
21
+ html, body {
22
+ height: 100%;
23
+ }
24
+
25
+ body {
26
+ margin: 0;
27
+ }
28
+
29
+ .slide {
30
+ display: none;
31
+ position:absolute;
32
+ top:0;
33
+ right:0;
34
+ bottom:0;
35
+ left:0;
36
+ z-index:1;
37
+
38
+ font-size:250%;
39
+ line-height:1.6;
40
+ }
41
+
42
+ .slide.previous,
43
+ .slide:target,
44
+ .slide.next {
45
+ display: block;
46
+ opacity:0;
47
+ overflow:hidden;
48
+ }
49
+
50
+ .slide:target {
51
+ z-index:100;
52
+ opacity:1;
53
+ overflow: visible;
54
+ }
55
+
56
+ /**
57
+ Slide numbers
58
+ */
59
+ #indicator {
60
+ position: absolute;
61
+ top: .05in;
62
+ right: .5em;
63
+ z-index: 1010;
64
+
65
+ font-size: .15in;
66
+ color: white;
67
+ background: rgba(0,0,0,.25);
68
+ font-weight: 900;
69
+ text-shadow: .05em .05em .1em black;
70
+ text-align: center;
71
+ padding: .1em .3em 0;
72
+ min-width: 1.6em;
73
+ box-sizing: border-box;
74
+ border-radius: 999px;
75
+ }
76
+
77
+ /* If there's nothing selected, show the first */
78
+ .slide:first-child {
79
+ z-index:2;
80
+ }
81
+
82
+ /* Delayed items that are shown incrementally after the slide is */
83
+ .delayed,
84
+ .delayed-children > * {
85
+ opacity: 0;
86
+ }
87
+
88
+ .delayed.displayed,
89
+ .delayed-children > .displayed {
90
+ opacity: .3;
91
+ }
92
+
93
+ .delayed.current,
94
+ .delayed-children > .current,
95
+ .delayed.displayed.non-dismissable,
96
+ .delayed-children > .displayed.non-dismissable, /* non-dismissable name is deprecated */
97
+ .delayed.displayed.persistent,
98
+ .delayed-children > .displayed.persistent,
99
+ .delayed-children.persistent > .displayed {
100
+ opacity: 1;
101
+ }
102
+
103
+ /**
104
+ iframe slides
105
+ */
106
+ .iframe.slide {
107
+ padding: 0 !important;
108
+ text-align: center;
109
+ }
110
+
111
+ .iframe.slide > h1 {
112
+ position: absolute;
113
+ bottom: 0; right: 0; left: 0;
114
+ background: rgba(0,0,0,.5);
115
+ font-size: 100%;
116
+ }
117
+
118
+ .iframe.slide > h1 > a {
119
+ display: inline-block;
120
+ padding: .2em .5em;
121
+
122
+ color: white;
123
+ text-align: center;
124
+ text-decoration: none;
125
+ text-shadow: 0 -.05em .05em black;
126
+ }
127
+
128
+ .slide > iframe:only-of-type {
129
+ position: absolute;
130
+ top: 0;
131
+ left: 0;
132
+ border: 0;
133
+ width: 100%;
134
+ height: 100%;
135
+ margin: 0;
136
+ }
137
+
138
+ /**
139
+ Show thumbnails
140
+ */
141
+
142
+ .show-thumbnails {
143
+ overflow-x: hidden;
144
+ }
145
+
146
+ .show-thumbnails .slide,
147
+ .presenter .slide.next {
148
+ width: 1024px;
149
+ height: 768px;
150
+ box-sizing: border-box;
151
+
152
+ float: left;
153
+ overflow: hidden;
154
+ position: static;
155
+ opacity: 1;
156
+ margin:-292px -395px;
157
+ cursor: pointer;
158
+
159
+ transform: scale(.2, .2);
160
+ transition:1s transform;
161
+ }
162
+
163
+ .show-thumbnails.headers-only .slide {
164
+ display: none;
165
+ }
166
+
167
+ .show-thumbnails.headers-only header.slide {
168
+ display: block;
169
+ }
170
+
171
+ .show-thumbnails .slide .delayed,
172
+ .presenter .slide:target + .slide .delayed {
173
+ opacity: 1;
174
+ }
175
+
176
+ .show-thumbnails .slide:hover,
177
+ .show-thumbnails .slide:target,
178
+ .presenter .slide:target + .slide {
179
+ outline: 20px solid rgba(255, 255, 255, .6);
180
+ outline-radius:5px;
181
+
182
+ box-shadow: 5px 5px 10px black;
183
+ }
184
+
185
+ .show-thumbnails .slide:target {
186
+ outline-color: rgba(255, 255, 255, .3);
187
+ }
188
+
189
+ .show-thumbnails .slide:target:hover {
190
+ outline-color: rgba(255, 255, 255, .9);
191
+ }
192
+
193
+ /* Display titles */
194
+ .show-thumbnails .slide[data-title]:after {
195
+ content: attr(data-title);
196
+ position: absolute;
197
+ left: 0;
198
+ right: 0;
199
+ bottom: 0;
200
+ padding: .1em 0;
201
+ background: rgba(0,0,0,.5);
202
+ color: white;
203
+ font-size: 250%;
204
+ text-align: center;
205
+ text-shadow: .05em .05em .1em black;
206
+ transform: none;
207
+ }
208
+
209
+ /* Hide all elements in slide by hitting Ctrl + J or Shift + J */
210
+ .hide-elements .slide:target > * {
211
+ opacity: 0;
212
+ transition:.5s;
213
+ }
214
+
215
+ /* Timer */
216
+
217
+ #timer {
218
+ position:absolute;
219
+ top:0;
220
+ left:0;
221
+ z-index:101;
222
+ width:0%;
223
+ height:16px;
224
+ line-height: 16px;
225
+ padding: 0 5px;
226
+ background:rgba(0,0,0,.5);
227
+ overflow: hidden;
228
+ text-align: right;
229
+ box-sizing: border-box;
230
+ transition: linear;
231
+ }
232
+
233
+ #timer:before {
234
+ content: 'Progress ';
235
+ text-transform: uppercase;
236
+ color: white;
237
+ font-size: 9px;
238
+ }
239
+
240
+ #timer.end {
241
+ width: 100%;
242
+ }
243
+
244
+ #timer.end.overtime {
245
+ width: 0%;
246
+ left: auto;
247
+ right: 0;
248
+ }
249
+
250
+ /* Presenter & projector views */
251
+
252
+ .projector #timer {
253
+ display: none;
254
+ }
255
+
256
+ .presenter-notes {
257
+ display: none;
258
+ position: fixed;
259
+ right: 230px;
260
+ bottom: 0;
261
+ left: 0;
262
+ max-height: 6em;
263
+ overflow: auto;
264
+ padding: .6em 1em;
265
+ font-size: 60%;
266
+ line-height: 1.3;
267
+ font-weight: normal;
268
+ resize:vertical;
269
+ background: rgba(255, 255, 255, .5);
270
+ color: black;
271
+ text-shadow: 0 1px white;
272
+ box-shadow: .1em .1em .3em rgba(0,0,0,.5) inset;
273
+ }
274
+
275
+ .presenter .slide.next {
276
+ position: fixed;
277
+ top: auto;
278
+ right: 0;
279
+ bottom: 0;
280
+ left: auto;
281
+ z-index: 100;
282
+ }
283
+
284
+ .presenter .slide:target > .presenter-notes {
285
+ display: block;
286
+ }
@@ -0,0 +1,183 @@
1
+ * {
2
+ padding:0;
3
+ margin:0;
4
+ font:inherit;
5
+ color:inherit;
6
+ }
7
+
8
+ html {
9
+ background: #fdf6e3;
10
+ color: #073642;
11
+ }
12
+
13
+ body {
14
+ font-family: 'Yanone Kaffeesatz', sans-serif;
15
+ letter-spacing: .2em;
16
+ }
17
+
18
+ button {
19
+ padding:.2em .5em;
20
+ }
21
+
22
+ a:hover {
23
+ text-shadow: 0 0 .5em white, 0 0 1em white;
24
+ }
25
+
26
+ code, pre, style, textarea, input {
27
+ font-family: 'Droid Sans Mono', monospace;
28
+ background: #eee8d5;
29
+ text-shadow: none;
30
+ letter-spacing: -0.02em;
31
+ }
32
+
33
+ pre, style, textarea {
34
+ padding: .3em;
35
+ margin: 0 -0.2em;
36
+ border: 3px solid #002b36;
37
+ }
38
+
39
+ textarea {
40
+ width: 100%;
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ blockquote { font-style: italic; }
45
+ blockquote p:before { content: '« '; }
46
+ blockquote p:after { content: ' »'; }
47
+
48
+ strong, b {
49
+ font-weight: bold;
50
+ }
51
+
52
+ pre strong {
53
+ text-shadow: 0 0 .6em white;
54
+ }
55
+
56
+ .slide {
57
+ padding:0 2.5% 2%;
58
+ text-shadow:.05em .05em .1em rgba(0,0,0,.4);
59
+ border:30px solid transparent;
60
+ }
61
+
62
+ section.slide h1 {
63
+ font-weight: bold;
64
+ font-size: 1.0in;
65
+ }
66
+
67
+ .slide h2 {
68
+ font-weight: bold;
69
+ font-size: 0.8in;
70
+ }
71
+
72
+ .slide h3 {
73
+ font-weight: bold;
74
+ font-size: 0.6in;
75
+ }
76
+
77
+ .slide p,
78
+ .slide li {
79
+ font-weight: bold;
80
+ }
81
+
82
+ .slide > ul {
83
+ list-style:none;
84
+ }
85
+
86
+ .slide ol {
87
+ margin-left:2em;
88
+ }
89
+
90
+ .slide > ul ul {
91
+ margin-left:2em;
92
+ list-style: none;
93
+ }
94
+
95
+ .slide li li {
96
+ font-size:80%;
97
+ }
98
+
99
+ .slide li {
100
+ margin:.2em 0;
101
+ }
102
+
103
+ .slide > ul > li:before {
104
+ content:'\2714';
105
+ color: #2aa198;
106
+ padding-right: .2em;
107
+ }
108
+
109
+ .slide li li:before {
110
+ content: '\279C';
111
+ color: #268bd2;
112
+ padding-right: .2em;
113
+ }
114
+
115
+ section > header.slide > h1 {
116
+ position: absolute;
117
+ top: 50%;
118
+ left: 0;
119
+ right: 0;
120
+ margin-top: -1.2em;
121
+ font-size: 300%;
122
+ line-height: 1;
123
+ text-align: center;
124
+ }
125
+
126
+ /* Mark slides as incomplete to spot them easier */
127
+ .incomplete.slide::after {
128
+ content: 'INCOMPLETE';
129
+ font-weight: bold;
130
+ position: absolute;
131
+ top: 10%;
132
+ left: 70%;
133
+ padding: .1em .4em 0;
134
+ border: .1em solid;
135
+ color: rgba(255, 0, 0, .8);
136
+ font-size: 140%;
137
+ border-radius: .2em;
138
+ transform: rotate(30deg);
139
+ }
140
+
141
+ .two_cols pre {
142
+ float: left;
143
+ width: 43%;
144
+ margin-right: 4%;
145
+ }
146
+
147
+ .white { color: #ffffff; }
148
+ .light3 { color: #fdf6e3; }
149
+ .light2 { color: #eee8d5; }
150
+ .light1 { color: #93a1a1; }
151
+ .light0 { color: #839496; }
152
+ .yellow { color: #b58900; }
153
+ .orange { color: #cb4b16; }
154
+ .red { color: #dc322f; }
155
+ .magenta { color: #d33682; }
156
+ .violet { color: #6c71c4; }
157
+ .blue { color: #268bd2; }
158
+ .cyan { color: #2aa198; }
159
+ .green { color: #859900; }
160
+ .dark0 { color: #657b83; }
161
+ .dark1 { color: #586e75; }
162
+ .dark2 { color: #073642; }
163
+ .dark3 { color: #002b36; }
164
+ .black { color: #000000; }
165
+
166
+ .on_white { background-color: #ffffff; }
167
+ .on_light3 { background-color: #fdf6e3; }
168
+ .on_light2 { background-color: #eee8d5; }
169
+ .on_light1 { background-color: #93a1a1; }
170
+ .on_light0 { background-color: #839496; }
171
+ .on_yellow { background-color: #b58900; }
172
+ .on_orange { background-color: #cb4b16; }
173
+ .on_red { background-color: #dc322f; }
174
+ .on_magenta { background-color: #d33682; }
175
+ .on_violet { background-color: #6c71c4; }
176
+ .on_blue { background-color: #268bd2; }
177
+ .on_cyan { background-color: #2aa198; }
178
+ .on_green { background-color: #859900; }
179
+ .on_dark0 { background-color: #657b83; }
180
+ .on_dark1 { background-color: #586e75; }
181
+ .on_dark2 { background-color: #073642; }
182
+ .on_dark3 { background-color: #002b36; }
183
+ .on_black { background-color: #000000; }
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
6
+ <title><%= meta.title %></title>
7
+ <% (theme.css + meta.css).each do |css| %>
8
+ <link rel="stylesheet" href="<%= css%>">
9
+ <% end %>
10
+ <link rel="stylesheet" href="css/pygments/solarized.css">
11
+ <script src="js/prefixfree.min.js"></script>
12
+ </head>
13
+ <body data-duration="<%= meta.duration %>">
14
+ <section>
15
+ <header class="slide">
16
+ <h1><%= meta.title %></h1>
17
+ <h2><%= meta.author %></h2>
18
+ </header>
19
+ </section>
20
+ <% sections.each do |section| %>
21
+ <section>
22
+ <header class="slide">
23
+ <h1><%= section.title %></h1>
24
+ </header>
25
+ <% section.slides.each do |slide| %>
26
+ <section class="slide <%= slide.classes %>">
27
+ <%= slide.html %>
28
+ </section>
29
+ <% end %>
30
+ </section>
31
+ <% end %>
32
+ <% (theme.js + meta.js).each do |js| %>
33
+ <script src="<%= js %>"></script>
34
+ <% end %>
35
+ <script>slideshow = new SlideShow();</script>
36
+ </body>
37
+ </html>
@@ -0,0 +1,13 @@
1
+ // StyleFix 1.0.2 + PrefixFree 1.0.6 / Lea Verou / MIT license
2
+ (function(){function h(a,b){return[].slice.call((b||document).querySelectorAll(a))}if(window.addEventListener){var e=window.StyleFix={link:function(a){try{if("stylesheet"!==a.rel||a.hasAttribute("data-noprefix"))return}catch(b){return}var c=a.href||a.getAttribute("data-href"),f=c.replace(/[^\/]+$/,""),i=a.parentNode,d=new XMLHttpRequest,g;d.onreadystatechange=function(){4===d.readyState&&g()};g=function(){var b=d.responseText;if(b&&a.parentNode&&(!d.status||400>d.status||600<d.status)){b=e.fix(b,
3
+ !0,a);f&&(b=b.replace(/url\(\s*?((?:"|')?)(.+?)\1\s*?\)/gi,function(a,b,c){return!/^([a-z]{3,10}:|\/|#)/i.test(c)?'url("'+f+c+'")':a}),b=b.replace(RegExp("\\b(behavior:\\s*?url\\('?\"?)"+f,"gi"),"$1"));var c=document.createElement("style");c.textContent=b;c.media=a.media;c.disabled=a.disabled;c.setAttribute("data-href",a.getAttribute("href"));i.insertBefore(c,a);i.removeChild(a);c.media=a.media}};try{d.open("GET",c),d.send(null)}catch(k){"undefined"!=typeof XDomainRequest&&(d=new XDomainRequest,d.onerror=
4
+ d.onprogress=function(){},d.onload=g,d.open("GET",c),d.send(null))}a.setAttribute("data-inprogress","")},styleElement:function(a){if(!a.hasAttribute("data-noprefix")){var b=a.disabled;a.textContent=e.fix(a.textContent,!0,a);a.disabled=b}},styleAttribute:function(a){var b=a.getAttribute("style"),b=e.fix(b,!1,a);a.setAttribute("style",b)},process:function(){h('link[rel="stylesheet"]:not([data-inprogress])').forEach(StyleFix.link);h("style").forEach(StyleFix.styleElement);h("[style]").forEach(StyleFix.styleAttribute)},
5
+ register:function(a,b){(e.fixers=e.fixers||[]).splice(void 0===b?e.fixers.length:b,0,a)},fix:function(a,b){for(var c=0;c<e.fixers.length;c++)a=e.fixers[c](a,b)||a;return a},camelCase:function(a){return a.replace(/-([a-z])/g,function(a,c){return c.toUpperCase()}).replace("-","")},deCamelCase:function(a){return a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()})}};(function(){setTimeout(function(){h('link[rel="stylesheet"]').forEach(StyleFix.link)},10);document.addEventListener("DOMContentLoaded",
6
+ StyleFix.process,!1)})()}})();
7
+ (function(h){function e(b,c,f,i,d){b=a[b];b.length&&(b=RegExp(c+"("+b.join("|")+")"+f,"gi"),d=d.replace(b,i));return d}if(window.StyleFix&&window.getComputedStyle){var a=window.PrefixFree={prefixCSS:function(b,c){var f=a.prefix,b=e("functions","(\\s|:|,)","\\s*\\(","$1"+f+"$2(",b),b=e("keywords","(\\s|:)","(\\s|;|\\}|$)","$1"+f+"$2$3",b),b=e("properties","(^|\\{|\\s|;)","\\s*:","$1"+f+"$2:",b);if(a.properties.length)var i=RegExp("\\b("+a.properties.join("|")+")(?!:)","gi"),b=e("valueProperties","\\b",
8
+ ":(.+?);",function(a){return a.replace(i,f+"$1")},b);c&&(b=e("selectors","","\\b",a.prefixSelector,b),b=e("atrules","@","\\b","@"+f+"$1",b));return b=b.replace(RegExp("-"+f,"g"),"-")},property:function(b){return(a.properties.indexOf(b)?a.prefix:"")+b},value:function(b){b=e("functions","(^|\\s|,)","\\s*\\(","$1"+a.prefix+"$2(",b);return b=e("keywords","(^|\\s)","(\\s|$)","$1"+a.prefix+"$2$3",b)},prefixSelector:function(b){return b.replace(/^:{1,2}/,function(b){return b+a.prefix})},prefixProperty:function(b,
9
+ c){var f=a.prefix+b;return c?StyleFix.camelCase(f):f}};(function(){var b={},c=[],f=getComputedStyle(document.documentElement,null),i=document.createElement("div").style,d=function(a){if("-"===a.charAt(0)){c.push(a);var a=a.split("-"),d=a[1];for(b[d]=++b[d]||1;3<a.length;)a.pop(),d=a.join("-"),StyleFix.camelCase(d)in i&&-1===c.indexOf(d)&&c.push(d)}};if(0<f.length)for(var g=0;g<f.length;g++)d(f[g]);else for(var e in f)d(StyleFix.deCamelCase(e));var g=0,j,h;for(h in b)f=b[h],g<f&&(j=h,g=f);a.prefix=
10
+ "-"+j+"-";a.Prefix=StyleFix.camelCase(a.prefix);a.properties=[];for(g=0;g<c.length;g++)e=c[g],0===e.indexOf(a.prefix)&&(j=e.slice(a.prefix.length),StyleFix.camelCase(j)in i||a.properties.push(j));"Ms"==a.Prefix&&(!("transform"in i)&&!("MsTransform"in i)&&"msTransform"in i)&&a.properties.push("transform","transform-origin");a.properties.sort()})();(function(){function b(a,b){e[b]="";e[b]=a;return!!e[b]}var c={"linear-gradient":{property:"backgroundImage",params:"red, teal"},calc:{property:"width",
11
+ params:"1px + 5%"},element:{property:"backgroundImage",params:"#foo"},"cross-fade":{property:"backgroundImage",params:"url(a.png), url(b.png), 50%"}};c["repeating-linear-gradient"]=c["repeating-radial-gradient"]=c["radial-gradient"]=c["linear-gradient"];var f={initial:"color","zoom-in":"cursor","zoom-out":"cursor",box:"display",flexbox:"display","inline-flexbox":"display",flex:"display","inline-flex":"display"};a.functions=[];a.keywords=[];var e=document.createElement("div").style,d;for(d in c){var g=
12
+ c[d],h=g.property,g=d+"("+g.params+")";!b(g,h)&&b(a.prefix+g,h)&&a.functions.push(d)}for(var j in f)h=f[j],!b(j,h)&&b(a.prefix+j,h)&&a.keywords.push(j)})();(function(){function b(a){e.textContent=a+"{}";return!!e.sheet.cssRules.length}var c={":read-only":null,":read-write":null,":any-link":null,"::selection":null},f={keyframes:"name",viewport:null,document:'regexp(".")'};a.selectors=[];a.atrules=[];var e=h.appendChild(document.createElement("style")),d;for(d in c){var g=d+(c[d]?"("+c[d]+")":"");!b(g)&&
13
+ b(a.prefixSelector(g))&&a.selectors.push(d)}for(var k in f)g=k+" "+(f[k]||""),!b("@"+g)&&b("@"+a.prefix+g)&&a.atrules.push(k);h.removeChild(e)})();a.valueProperties=["transition","transition-property"];h.className+=" "+a.prefix;StyleFix.register(a.prefixCSS)}})(document.documentElement);