showoff 0.14.3 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6af0328fa0f7902f4b8b41aab135dc68ecb5b18b
4
- data.tar.gz: 69fcaa2c090c7b69e930aeeaae98b6680519dfaa
3
+ metadata.gz: 93da591c826ee3aca98428a4a9525f86cf3688fa
4
+ data.tar.gz: 130a86bfccb802aea7d3ba7025ace68b478c5ce1
5
5
  SHA512:
6
- metadata.gz: cb7757af9a213f5d232674d29e3885791466e961d0eab032d61fb4f68fde5f1ea1647b95e22812d9bd1f6fed97a7ce87b0ba40c7c43ac10d5693e8223e291795
7
- data.tar.gz: 4fea23475193b76fc27494aa6f345efbc7a6a4ab54333d201f483ed8dfa44104eb7d91cb07660720f788dd38f94b5f3a2a0162ac032163f9cc5ebae361d2f65c
6
+ metadata.gz: 5f8d82b171e6a0e7cf7804da4eb7bbfc443882ad48cc02dd8c0faf8d5bb6f2c7e57cf64be03a34d24b47c5522d2d981a1b4f185dc156011bac8efff637455db3
7
+ data.tar.gz: aa047b17de3c4f8e75ba004b48e72a4217b45ad3098be48c557a1837fc7437ece2665a780d10df1786a68104eba45f572ddb8b1f936cdb785886e975391f757a
data/lib/keymap.rb CHANGED
@@ -9,7 +9,8 @@ module Keymap
9
9
  'down' => 'NEXT',
10
10
  'right' => 'NEXT',
11
11
  'pagedown' => 'NEXT',
12
- 'r' => 'RELOAD',
12
+ 'R' => 'RELOAD',
13
+ 'r' => 'REFRESH',
13
14
  'c' => 'CONTENTS',
14
15
  't' => 'CONTENTS',
15
16
  'h' => 'HELP',
@@ -1,3 +1,3 @@
1
1
  # No namespace here since ShowOff is a class and I'd have to inherit from
2
2
  # Sinatra::Application (which we don't want to load here)
3
- SHOWOFF_VERSION = '0.14.3'
3
+ SHOWOFF_VERSION = '0.15.0'
data/lib/showoff.rb CHANGED
@@ -1204,8 +1204,10 @@ class ShowOff < Sinatra::Application
1204
1204
 
1205
1205
  if index == 'all'
1206
1206
  doc.css(classes).collect do |code|
1207
- lang = code.attr('class') =~ /language-(\S*)/ ? $1 : nil
1208
- [lang, code.text]
1207
+ classes = code.attr('class').split rescue []
1208
+ lang = classes.shift =~ /language-(\S*)/ ? $1 : nil
1209
+
1210
+ [lang, code.text, classes]
1209
1211
  end
1210
1212
  else
1211
1213
  doc.css(classes)[index.to_i].text rescue 'Invalid code block index'
@@ -1410,6 +1412,7 @@ class ShowOff < Sinatra::Application
1410
1412
  if valid_cookie()
1411
1413
  name = control['name']
1412
1414
  slide = control['slide'].to_i
1415
+ increment = control['increment'].to_i rescue 0
1413
1416
 
1414
1417
  # check to see if we need to enable a download link
1415
1418
  if @@downloads.has_key?(slide)
@@ -1419,10 +1422,10 @@ class ShowOff < Sinatra::Application
1419
1422
 
1420
1423
  # update the current slide pointer
1421
1424
  @logger.debug "Updated current slide to #{name}"
1422
- @@current = { :name => name, :number => slide }
1425
+ @@current = { :name => name, :number => slide, :increment => increment }
1423
1426
 
1424
1427
  # schedule a notification for all clients
1425
- EM.next_tick { settings.sockets.each{|s| s.send({ 'message' => 'current', 'current' => @@current[:number] }.to_json) } }
1428
+ EM.next_tick { settings.sockets.each{|s| s.send({ 'message' => 'current', 'current' => @@current[:number], 'increment' => @@current[:increment] }.to_json) } }
1426
1429
  end
1427
1430
 
1428
1431
  when 'register'
data/lib/showoff_utils.rb CHANGED
@@ -122,9 +122,14 @@ class ShowOffUtils
122
122
  if filename.downcase.end_with? '.md'
123
123
  print '.'
124
124
  showoff.get_code_from_slide(filename.sub('.md',''), 'all', false).each_with_index do |block, index|
125
- lang, code = block
125
+ lang, code, classes = block
126
126
  validator = validators[lang]
127
- if validator
127
+
128
+ if classes.include? 'no-validate'
129
+ print '-'
130
+ next
131
+
132
+ elsif validator
128
133
  # write out a tempfile because many validators require files to with
129
134
  Tempfile.open('showoff-validation') do |f|
130
135
  File.write(f.path, code)
@@ -134,6 +139,7 @@ class ShowOffUtils
134
139
  end
135
140
  end
136
141
  end
142
+
137
143
  end
138
144
  end
139
145
  end
@@ -27,12 +27,15 @@
27
27
  color: #fff;
28
28
  }
29
29
 
30
- #topbar a {
30
+ #topbar a,
31
+ #topbar select {
31
32
  text-decoration: none;
32
33
  color: #fff;
34
+ background: #222222;
33
35
  }
34
36
 
35
- #topbar a:hover{
37
+ #topbar a:hover,
38
+ #topbar select:hover {
36
39
  background-color: #555;
37
40
  }
38
41
 
@@ -72,7 +75,8 @@
72
75
  margin: 0 0.5em;
73
76
  }
74
77
 
75
- #presenterPopup {
78
+ #presenterPopup,
79
+ #nextWindowConfirmation {
76
80
  display: none;
77
81
  position: absolute;
78
82
  z-index: 2147483647;
@@ -88,10 +92,25 @@
88
92
  overflow: auto;
89
93
  }
90
94
 
91
- #presenterPopup a {
95
+ #presenterPopup a,
96
+ #nextWindowConfirmation a {
92
97
  color: #ffffff;
93
98
  }
94
99
 
100
+ #nextWindowConfirmation {
101
+ right: 0.25em;
102
+ left: auto;
103
+ width: 14em;
104
+ }
105
+ #nextWindowConfirmation p {
106
+ margin: 0.25em;
107
+ }
108
+ #nextWindowConfirmation input {
109
+ float: right;
110
+ margin: 0.25em;
111
+ }
112
+
113
+
95
114
  #center {
96
115
  display: -webkit-flex;
97
116
  display: flex;
@@ -206,6 +225,24 @@
206
225
  overflow-x: hidden;
207
226
  overflow-y: auto;
208
227
  }
228
+ #navigationHover {
229
+ display: none;
230
+ position: absolute;
231
+ overflow: hidden;
232
+ z-index: 99999;
233
+ width: 200px;
234
+ height: 150px;
235
+ background-color: white;
236
+ border: 1px solid #4D4F53;
237
+ margin: 0px;
238
+ border-radius: 3px;
239
+ box-shadow: 3px 3px 5px #ccc;
240
+ }
241
+ #navigationHover .content {
242
+ width: 200%;
243
+ transform: scale(0.5);
244
+ transform-origin: 0 0;
245
+ }
209
246
 
210
247
  #presenter {
211
248
  display: -webkit-flex;
@@ -226,16 +263,96 @@
226
263
  flex-flow: row;
227
264
  -webkit-flex: 10;
228
265
  flex: 10;
229
- max-height: 95%; /* dear Firefox; what's the point of flex-box if we still have to do this crap? */
230
266
  }
231
267
 
268
+
232
269
  #preview {
270
+ position: relative;
233
271
  -webkit-flex: 10;
234
272
  flex: 10;
235
- overflow: auto;
273
+ overflow: hidden;
236
274
  background: #eee;
237
275
  padding: 1em;
238
276
  }
277
+
278
+ /* thumbnails layout */
279
+ #preview.thumbs {
280
+ padding-top: 100px;
281
+ }
282
+ #preview .thumb {
283
+ display: none;
284
+ position: absolute;
285
+ top: 0;
286
+ }
287
+ #preview .thumb .label {
288
+ }
289
+ #nextSlide.thumb .label {
290
+ text-align: right;
291
+ }
292
+
293
+ #preview .thumb .container {
294
+ overflow: hidden;
295
+ height: 150px;
296
+ width: 200px;
297
+ top: 0;
298
+ background-color: white;
299
+ border-bottom: 2px solid #ccc;
300
+ }
301
+ #preview .thumb .content {
302
+ transform: scale(.5);
303
+ transform-origin: 0 0;
304
+ width: 200%;
305
+ }
306
+ #prevSlide.thumb {
307
+ left: 0;
308
+ }
309
+ #prevSlide.thumb .container {
310
+ border-right: 2px solid #ccc;
311
+ }
312
+ #nextSlide.thumb {
313
+ right: 0;
314
+ }
315
+ #nextSlide.thumb .container {
316
+ border-left: 2px solid #ccc;
317
+ }
318
+
319
+ #preview.thumbs #preso {
320
+ position: absolute;
321
+ bottom: 1em;
322
+ margin-left: auto;
323
+ margin-right: auto;
324
+ left: 0;
325
+ right: 0;
326
+ }
327
+
328
+ /* allow us to actually see images! */
329
+ #navigationHover img,
330
+ .thumb img {
331
+ width: 100%;
332
+ height: 100%;
333
+ }
334
+
335
+ /* beside layout */
336
+ #preview.beside .thumb {
337
+ display: none;
338
+ position: absolute;
339
+ overflow: hidden;
340
+ width: 34%;
341
+ top: 1em;
342
+ }
343
+ #preview.beside .thumb .container {
344
+ width: auto;
345
+ }
346
+
347
+ #nextSlide.beside {
348
+ right: 1em;
349
+ }
350
+ #preview.beside #preso {
351
+ position: absolute;
352
+ left: 1em;
353
+ }
354
+
355
+
239
356
  #preview input[type=button].display {
240
357
  display: inline;
241
358
  }
@@ -247,8 +364,12 @@
247
364
  font-weight: 900;
248
365
  }
249
366
 
250
- #disconnected {
367
+ #preview img#disconnected {
251
368
  margin: 0.5em 1em;
369
+ float: none;
370
+ position: absolute;
371
+ bottom: 0;
372
+ left: 0;
252
373
  }
253
374
 
254
375
  #preview .incremental.hidden {
@@ -259,11 +380,29 @@
259
380
  color: #404040;
260
381
  }
261
382
 
383
+ /* floating layout */
384
+ body.floating {
385
+ margin: 0.5em;
386
+ width: unset !important;
387
+ max-width: unset !important;
388
+ }
389
+ body.floating.next {
390
+ transform: scale(.5);
391
+ transform-origin: 0 0;
392
+ width: 200% !important;
393
+ }
394
+ html > body.floating.notes,
395
+ body.floating.notes {
396
+ overflow: auto;
397
+ height: auto;
398
+ }
399
+
262
400
 
263
401
  #preso {
264
402
  -webkit-box-shadow:0 0 25px rgba(0,0,0,0.35);
265
403
  -moz-box-shadow:0 0 25px rgba(0,0,0,0.35);
266
404
  box-shadow:0 0 25px rgba(0,0,0,0.35);
405
+ position: absolute;
267
406
  }
268
407
 
269
408
  #statusbar {
@@ -545,7 +684,8 @@ a.controls {
545
684
  }
546
685
  #links .desktop,
547
686
  #separator,
548
- #stylepicker {
687
+ #stylepicker,
688
+ #layoutSelector {
549
689
  display: none !important;
550
690
  }
551
691
  #links {
@@ -52,6 +52,10 @@ pre code {
52
52
  overflow: hidden;
53
53
  }
54
54
 
55
+ body.busy {
56
+ cursor: progress;
57
+ }
58
+
55
59
  body#download {
56
60
  overflow: auto;
57
61
  }
@@ -67,6 +71,7 @@ pre code {
67
71
  background-repeat: no-repeat;
68
72
  background-position: center;
69
73
  background-size: cover;
74
+ position: relative;
70
75
  }
71
76
 
72
77
  .slide {
@@ -914,16 +919,18 @@ form .element {
914
919
  .callout.question,
915
920
  .callout.exercise,
916
921
  .callout.stop,
917
- .callout.thumbsup {
922
+ .callout.thumbsup,
923
+ .callout.conversation {
918
924
  padding-left: 3em;
919
925
  }
920
926
 
921
- .callout.info:before { content: "\f05a"; } /* fa-info-circle */
922
- .callout.warning:before { content: "\f071"; } /* fa-exclamation-triangle */
923
- .callout.question:before { content: "\f059"; } /* fa-question-circle */
924
- .callout.exercise:before { content: "\f41b"; } /* fa-pencil-square */
925
- .callout.stop:before { content: "\f05e"; } /* fa-ban */
926
- .callout.thumbsup:before { content: "\f164"; } /* fa-thumbs-up */
927
+ .callout.info:before { content: "\f05a"; } /* fa-info-circle */
928
+ .callout.warning:before { content: "\f071"; } /* fa-exclamation-triangle */
929
+ .callout.question:before { content: "\f059"; } /* fa-question-circle */
930
+ .callout.exercise:before { content: "\f41b"; } /* fa-pencil-square */
931
+ .callout.stop:before { content: "\f05e"; } /* fa-ban */
932
+ .callout.thumbsup:before { content: "\f164"; } /* fa-thumbs-up */
933
+ .callout.conversation:before { content: "\f0e5"; } /* fa-comment */
927
934
 
928
935
  /* callouts used on error pages */
929
936
  .error .callout {
@@ -971,8 +978,9 @@ h1.section_title {
971
978
  padding: 0;
972
979
  }
973
980
  body > #preso {
974
- width: 976px;
975
- zoom: 0.32;
981
+ transform: scale(.32);
982
+ transform-origin: 0 0;
983
+ width: 2928px;
976
984
  }
977
985
  #preso .slide {
978
986
  width: 100%;