slideoff 0.3.2 → 0.3.3

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: f6758ea3fc04485146f7e324808739d5f0ff02df
4
- data.tar.gz: fde536ca771490aee7ee87ec82ec5a555f6b9fde
3
+ metadata.gz: a283925d99d7189d3016753e28952ea15014410f
4
+ data.tar.gz: 3f75827bbf04cc0073fd4125080a68c98fdd6c49
5
5
  SHA512:
6
- metadata.gz: 08a2fe3f0b8c531a6ba335e51dcec4f538f424e5dd6b3acc4b91b8a548db3cc153da0f1bfaa8bbdbda9dd9432009aa0bb96c5aef0cc21ad2f21fd38d9d9c64d3
7
- data.tar.gz: b9efb5588501bc5babc534956589a92c9e88142b3334af482fb2ead76ad15c562ca13ebdf8d2bb61c1361a775cff80ff55012db9692ce4ee36ef935d3f45aeac
6
+ metadata.gz: c59a73be6e9301c96858704e6158224fd9fc42058bf00a66fb9fd13ba8636e775a8e6109d76abae76831395c3b33b3a6d11477ae47b4c4983dea1bf3cd2842db
7
+ data.tar.gz: 0a15722c6c4df02968202566b862a451c1ca66b4508ac8a9e8c1e3073ea11f1d13b8ec5e0f65f13e3169129905f49d5cae07a57052edb9a21ecff14dd10ac514
data/README.md CHANGED
@@ -204,6 +204,18 @@ This paragraph will be displayed first.
204
204
 
205
205
  Try it in your example presentation after initialization.
206
206
 
207
+ You can add many states to one slide via the following snippet:
208
+
209
+ ```
210
+ !SLIDE
211
+ ...
212
+ !STEPS[n]
213
+ ```
214
+
215
+ After each keystroke on right a class `step-i` is added to the `.slide` element while `i` is a number betweet 0 and
216
+ `n-1`. So you can change your styling for these different states. For example you can translate an element via CSS.
217
+ After these `n` keystrokes the next slide will be displayed.
218
+
207
219
 
208
220
  ## Issues or Suggestions
209
221
 
@@ -32,6 +32,7 @@ module Slideoff
32
32
  parse_description(text)
33
33
  parse_flickr_image(text)
34
34
  parse_pause(text)
35
+ parse_interactive_steps(text)
35
36
  text
36
37
  end
37
38
 
@@ -110,6 +111,17 @@ module Slideoff
110
111
  text.gsub!(/^!PAUSE\s*$/) { %{<p class="pause"></p>} }
111
112
  end
112
113
 
114
+ def parse_interactive_steps(text)
115
+ text.gsub!(/!STEPS\[(.*)\]/) do
116
+ step_count = $1.to_i
117
+ html = ""
118
+ step_count && step_count.times do |step|
119
+ html << %{<div data-step="#{step}" class="step step-#{step} inactive" style="display: none;"></div>}
120
+ end
121
+ html
122
+ end
123
+ end
124
+
113
125
  def block_code(code, lang)
114
126
  colorized = Pygments.highlight(code, :lexer => lang || "text", :options => {:nowrap => true})
115
127
  code_lines = colorized.split("\n")
@@ -43,7 +43,7 @@ module Slideoff
43
43
  Dir[ "#{CONFIG.pwd}#{asset}"].first ||
44
44
  Dir[ "#{theme.dir}#{asset}"].first ||
45
45
  Dir[ "#{common.dir}#{asset}"].first ||
46
- Dir["#{CONFIG.pwd}/**#{asset}"].first
46
+ (Dir["#{CONFIG.pwd}/**#{asset}"] - Dir["#{CONFIG.static_dir}/**#{asset}"]).first
47
47
  end
48
48
 
49
49
  def convert_styles(dir)
@@ -396,6 +396,14 @@ PageDown / Down / right / l / j | Goto next slide
396
396
  }
397
397
  EOF
398
398
  end
399
+ File.open('script.js', 'w') do |file|
400
+ file.write <<-EOF
401
+ /* Write your js */
402
+ $(document).ready(function (e) {
403
+ console.log("Yeah, your are using slideoff! Have fun and be creative!");
404
+ });
405
+ EOF
406
+ end
399
407
  puts `git init`
400
408
  end
401
409
  end
data/lib/slideoff.rb CHANGED
@@ -11,5 +11,5 @@ module Slideoff
11
11
  autoload :FlickrAPI, "slideoff/flickr_api"
12
12
 
13
13
  CONFIG = ConfigBuilder.new(Dir.pwd)
14
- VERSION = "0.3.2"
14
+ VERSION = "0.3.3"
15
15
  end
@@ -309,11 +309,27 @@ class Slide
309
309
  element = @firstInactiveElement()
310
310
  @html().find('.current').first().addClass('visited')
311
311
  @removePresentElement()
312
+
312
313
  element.removeClass('inactive')
313
314
  if element.is("pre[data-lang=sh] code")
314
315
  element.typewriter()
315
316
  else
316
317
  element.addClass('current')
318
+ @incrementStep()
319
+
320
+ resetStep: ->
321
+ currentHtml = Slide.current().html()
322
+ step = 0
323
+ while currentHtml.hasClass("step-#{step}")
324
+ currentHtml.removeClass("step-#{step}")
325
+ step = step + 1
326
+
327
+ incrementStep: ->
328
+ currentHtml = Slide.current().html()
329
+ step = 0
330
+ while currentHtml.hasClass("step-#{step}")
331
+ step = step + 1
332
+ currentHtml.addClass("step-#{step}")
317
333
 
318
334
  # private
319
335
 
@@ -356,6 +372,7 @@ class UserInterface
356
372
  else
357
373
  slide.html().removeClass('incr')
358
374
  slide.removePresentElement()
375
+ slide.resetStep()
359
376
  slide.next().goto()
360
377
 
361
378
  @prevStep: ->
@@ -440,10 +440,33 @@ Slide = (function() {
440
440
  if (element.is("pre[data-lang=sh] code")) {
441
441
  return element.typewriter();
442
442
  } else {
443
- return element.addClass('current');
443
+ element.addClass('current');
444
+ return this.incrementStep();
444
445
  }
445
446
  };
446
447
 
448
+ Slide.prototype.resetStep = function() {
449
+ var currentHtml, step, _results;
450
+ currentHtml = Slide.current().html();
451
+ step = 0;
452
+ _results = [];
453
+ while (currentHtml.hasClass("step-" + step)) {
454
+ currentHtml.removeClass("step-" + step);
455
+ _results.push(step = step + 1);
456
+ }
457
+ return _results;
458
+ };
459
+
460
+ Slide.prototype.incrementStep = function() {
461
+ var currentHtml, step;
462
+ currentHtml = Slide.current().html();
463
+ step = 0;
464
+ while (currentHtml.hasClass("step-" + step)) {
465
+ step = step + 1;
466
+ }
467
+ return currentHtml.addClass("step-" + step);
468
+ };
469
+
447
470
  Slide.prototype.slideList = function() {
448
471
  return Slide.slideList();
449
472
  };
@@ -506,6 +529,7 @@ UserInterface = (function() {
506
529
  } else {
507
530
  slide.html().removeClass('incr');
508
531
  slide.removePresentElement();
532
+ slide.resetStep();
509
533
  return slide.next().goto();
510
534
  }
511
535
  };
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slideoff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - DSIW