slideshow 0.9.11 → 1.0.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.
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