slideshow 0.9.11 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/config/slideshow.yml CHANGED
@@ -40,16 +40,19 @@ headers:
40
40
  # map shortcut to URI
41
41
 
42
42
  fetch:
43
- s6gradients: http://github.com/geraldb/slideshow-s6-gradients/raw/master/s6gradients.txt
44
- s6syntax: http://github.com/geraldb/slideshow-s6-syntax-highlighter/raw/master/s6syntax.txt
45
- s6blank: http://github.com/geraldb/slideshow-s6-blank/raw/master/s6blank.txt
46
- s5blank: http://github.com/geraldb/slideshow-s5-blank/raw/master/s5blank.txt
47
- s5themes: http://github.com/geraldb/slideshow-s5-themes/raw/master/s5themes.txt
48
- fullerscreen: http://github.com/geraldb/slideshow-fullerscreen/raw/master/fullerscreen.txt
49
- slidy: http://github.com/geraldb/slideshow-slidy/raw/master/slidy.txt
50
- g5: http://github.com/geraldb/slideshow-google-html5-slides/raw/master/g5.txt
51
- slippy: http://github.com/geraldb/slideshow-slippy/raw/master/slippy.txt
52
-
43
+ s6syntax: https://github.com/geraldb/slideshow-s6-syntax-highlighter/raw/master/s6syntax.txt
44
+ s6blank: https://github.com/geraldb/slideshow-s6-blank/raw/master/s6blank.txt
45
+ s5blank: https://github.com/geraldb/slideshow-s5-blank/raw/master/s5blank.txt
46
+ s5themes: https://github.com/geraldb/slideshow-s5-themes/raw/master/s5themes.txt
47
+ fullerscreen: https://github.com/geraldb/slideshow-fullerscreen/raw/master/fullerscreen.txt
48
+ slidy: https://github.com/geraldb/slideshow-slidy/raw/master/slidy.txt
49
+ g5: https://github.com/geraldb/slideshow-google-html5-slides/raw/master/g5.txt
50
+ slippy: https://github.com/geraldb/slideshow-slippy/raw/master/slippy.txt
51
+ csss: https://github.com/geraldb/slideshow-csss/raw/master/csss.txt
52
+ deck.js: https://github.com/geraldb/slideshow-deck.js/raw/master/deck.js.txt
53
+ impress.js: https://github.com/geraldb/slideshow-impress.js/raw/master/impress.js.txt
54
+ shower: https://github.com/geraldb/slideshow-shower/raw/master/shower.txt
55
+
53
56
  # your google analytics code
54
57
  analytics:
55
58
  google: UA-XXX
data/lib/slideshow.rb CHANGED
@@ -55,7 +55,7 @@ require 'slideshow/filters/slide_filter'
55
55
 
56
56
  module Slideshow
57
57
 
58
- VERSION = '0.9.11'
58
+ VERSION = '1.0.0'
59
59
 
60
60
  # version string for generator meta tag (includes ruby version)
61
61
  def Slideshow.generator
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module Slideshow
2
3
  module DebugFilter
3
4
 
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module Slideshow
2
3
  module HeadersFilter
3
4
 
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  module Slideshow
2
3
  module SlideFilter
3
4
 
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  # builtin text filters
2
4
  # called before text_to_html
3
5
  #
data/lib/slideshow/gen.rb CHANGED
@@ -203,25 +203,37 @@ class Gen
203
203
  slide_source = "" # reset slide source buffer
204
204
  end
205
205
 
206
+
206
207
  ## split slide source into header (optional) and content/body
207
- ## plus check for (css style) classes
208
+ ## plus check for (css style) classes and data attributes
208
209
 
209
210
  slides2 = []
210
211
  slides.each do |slide_source|
211
212
  slide = Slide.new
212
213
 
213
- ## check for css style classes
214
+ ## check for css style classes
214
215
  from = 0
215
216
  while (pos = slide_source.index( /<!-- _S9(SLIDE|STYLE)_(.*?)-->/m, from ))
216
217
  logger.debug " adding css classes from pi #{$1.downcase}: #{$2.strip}"
217
218
 
219
+ from = Regexp.last_match.end(0) # continue search later from here
220
+
221
+ values = $2.strip.dup
222
+
223
+ # remove data values (eg. x=-20 scale=4) and store in data hash
224
+ values.gsub!( /([-\w]+)[ \t]*=[ \t]*([-\w\.]+)/ ) do |_|
225
+ logger.debug " adding data pair: key=>#{$1.downcase}< value=>#{$2}<"
226
+ slide.data[ $1.downcase.dup ] = $2.dup
227
+ " " # replace w/ space
228
+ end
229
+
230
+ values.strip! # remove spaces # todo: use squish or similar and check for empty string
231
+
218
232
  if slide.classes.nil?
219
- slide.classes = $2.strip
233
+ slide.classes = values
220
234
  else
221
- slide.classes << " #{$2.strip}"
235
+ slide.classes << " #{values}"
222
236
  end
223
-
224
- from = Regexp.last_match.end(0)
225
237
  end
226
238
 
227
239
  # try to cut off header using non-greedy .+? pattern; tip test regex online at rubular.com
@@ -20,34 +20,30 @@ def gradient_from_headers( *args )
20
20
  elsif theme == 'left-right'
21
21
  buf << "linear-gradient( left, #{colors.join(', ')} )"
22
22
  elsif theme == 'repeat'
23
- buf << "repeating-linear-gradient( -60deg, "
24
- # quick and dirty hack - for now repeat colors 10 times
25
- 9.times { buf << "#{colors.join(', ')}, " }
26
- buf << "#{colors.join(', ')} )"
23
+ buf << "repeating-linear-gradient( -60deg, #{colors.join(', ')} 10% )"
27
24
  elsif theme == 'radial'
28
25
  buf << "radial-gradient( #{colors.join(', ')} )"
29
26
  elsif theme == 'radial-off-center'
30
27
  buf << "radial-gradient( 70% 70%, ellipse, #{colors.join(', ')} )"
31
28
  elsif theme == 'radial-repeat'
32
- buf << "repeating-radial-gradient( 60% 60%, ellipse, "
33
- # quick and dirty hack - for now repeat colors 10 times
34
- 9.times { buf << "#{colors.join(', ')}, " }
35
- buf << "#{colors.join(', ')} )"
29
+ buf << "repeating-radial-gradient( 60% 60%, ellipse, #{colors.join(', ')} 10% )"
36
30
  else
37
31
  buf << "linear-gradient( #{colors.join(', ')} )"
38
32
  puts "warning: unknown gradient themes #{theme} - falling back to default"
39
33
  end
40
34
 
41
- # todo: add value for headers to puts
42
35
  puts " Adding CSS for gradient background style rule using headers..."
36
+ puts " gradient-theme: #{theme}"
37
+ puts " gradient-colors: #{colors.join(' ')}"
38
+
43
39
  content_for( :css, <<-EOS )
44
40
  /****
45
- * generated by gradient_from_headers helper
41
+ * generated by gradient_from_headers helper; using headers:
46
42
  * gradient-theme: #{theme}
47
43
  * gradient-colors: #{colors.join(' ')}
48
44
  */
49
45
  .slide { background-image: -webkit-#{buf};
50
- background-image: -mozilla-#{buf};
46
+ background-image: -moz-#{buf};
51
47
  background-image: -ms-#{buf};
52
48
  background-image: -o-#{buf};
53
49
  background-image: #{buf};
@@ -64,38 +60,19 @@ def gradient( *args )
64
60
 
65
61
  clazz = opts[:class] || ( 's9_gradient_linear_'+colors.join('_').gsub( /[(), ]/, '_' ).gsub( /_{2,}/, '_').gsub( /[^-\w]/, '' ) )
66
62
 
67
- ## generate code for webkit
68
63
 
69
- webkit = ""
70
- webkit << "-webkit-gradient(linear, 0% 0%, 0% 100%, "
71
- webkit << "from(#{colors.first}), to(#{colors.last})"
64
+ ## generate code
72
65
 
73
- # check for additional stop colors
74
- more_colors = colors[ 1..-2 ]
75
- more_colors.each_with_index do |color, i|
76
- webkit << ", color-stop(#{(1.0/(more_colors.size+1))*(i+1)},#{color})"
77
- end
78
- webkit << ")"
79
-
80
- ## generate code for mozilla
81
-
82
- mozilla = ""
83
- mozilla << "-moz-linear-gradient(top, "
84
- mozilla << "#{colors.first}, "
85
-
86
- # check for additional stop colors
87
- more_colors = colors[ 1..-2 ]
88
- more_colors.each do |color|
89
- mozilla << "#{color}, "
90
- end
91
-
92
- mozilla << "#{colors.last})"
66
+ buf = "linear-gradient(top, #{colors.join(', ')} )"
93
67
 
94
68
 
95
69
  puts " Adding CSS for background style rule..."
96
70
  content_for( :css, <<-EOS )
97
- .#{clazz} { background: #{webkit};
98
- background: #{mozilla};
71
+ .#{clazz} { background-image: -webkit-#{buf};
72
+ background-image: -moz-#{buf};
73
+ background-image: -ms-#{buf};
74
+ background-image: -o-#{buf};
75
+ background-image: #{buf};
99
76
  }
100
77
  EOS
101
78
 
@@ -1,6 +1,26 @@
1
1
  module Slideshow
2
2
 
3
- class Slide < Struct.new(:header, :content, :classes)
3
+ class Slide
4
+
5
+ attr_accessor :header
6
+ attr_accessor :content
7
+ attr_accessor :classes
8
+ attr_accessor :data
9
+
10
+ def initialize
11
+ @header = nil
12
+ @content = nil
13
+ @classes = nil
14
+ @data = {}
15
+ end
16
+
17
+ def data_attributes
18
+ buf = ""
19
+ @data.each do | key,value |
20
+ buf << "data-#{key}='#{value}' "
21
+ end
22
+ buf
23
+ end
4
24
 
5
25
  def to_classic_html
6
26
 
@@ -19,14 +39,14 @@ module Slideshow
19
39
  def to_google_html5
20
40
 
21
41
  buf = ""
22
- buf << "<div class='slide'>\n"
42
+ buf << "<div class='slide'>\n"
23
43
 
24
44
  if header
25
45
  buf << "<header>#{header}</header>\n"
26
46
  end
27
47
 
28
48
  buf << "<section class='"
29
- buf << classes if classes
49
+ buf << classes if classes
30
50
  buf << "'>\n"
31
51
 
32
52
  buf << content if content
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slideshow
3
3
  version: !ruby/object:Gem::Version
4
- hash: 45
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 9
9
- - 11
10
- version: 0.9.11
9
+ - 0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Gerald Bauer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-21 00:00:00 +01:00
18
+ date: 2012-03-04 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency