slideshow 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/slideshow.rb +150 -13
  2. metadata +17 -9
data/lib/slideshow.rb CHANGED
@@ -5,6 +5,69 @@ module Slideshow
5
5
 
6
6
  def Slideshow.create_slideshow( fn )
7
7
 
8
+
9
+ gradient = <<EOS
10
+ <svg xmlns="http://www.w3.org/2000/svg">
11
+
12
+ <defs>
13
+ <linearGradient id="dark" x1="0" y1="0" x2="1" y2="1">
14
+ <stop offset="0" style="stop-color: red"/>
15
+ <stop offset="1" style="stop-color: black"/>
16
+ </linearGradient>
17
+
18
+ <linearGradient id="dark_reverse" x1="0" y1="0" x2="1" y2="1">
19
+ <stop offset="0" style="stop-color: black"/>
20
+ <stop offset="1" style="stop-color: red"/>
21
+ </linearGradient>
22
+
23
+ <linearGradient id="light" x1="0" y1="0" x2="1" y2="1">
24
+ <stop offset="0" style="stop-color: red"/>
25
+ <stop offset="1" style="stop-color: orange"/>
26
+ </linearGradient>
27
+
28
+ <linearGradient id="top_bottom" x1="0" y1="0" x2="0" y2="1">
29
+ <stop offset="0%" style="stop-color: red" />
30
+ <stop offset="100%" style="stop-color: black" />
31
+ </linearGradient>
32
+
33
+ <linearGradient id="left_right" x1="0" y1="0" x2="1" y2="0">
34
+ <stop offset="0%" style="stop-color: red" />
35
+ <stop offset="100%" style="stop-color: orange" />
36
+ </linearGradient>
37
+
38
+ <linearGradient id="repeat" x1="0.4" y1="0.4" x2="0.5" y2="0.5"
39
+ spreadMethod="repeat">
40
+ <stop offset="0%" style="stop-color: red" />
41
+ <stop offset="50%" style="stop-color: orange" />
42
+ <stop offset="100%" style="stop-color: red" />
43
+ </linearGradient>
44
+
45
+ <radialGradient id="radial">
46
+ <stop offset="0%" style="stop-color: black" />
47
+ <stop offset="100%" style="stop-color: red" />
48
+ </radialGradient>
49
+
50
+
51
+ <radialGradient id="radial_off_center" fx="0.7" fy="0.7" cx="0.5" cy="0.5" r="0.4">
52
+ <stop offset="0%" style="stop-color: orange" />
53
+ <stop offset="100%" style="stop-color: red" />
54
+ </radialGradient>
55
+
56
+ <radialGradient id="radial_repeat" fx="0.5" fy="0.5" cx="0.6" cy="0.6" r="0.2"
57
+ spreadMethod="repeat">
58
+ <stop offset="0%" style="stop-color: red" />
59
+ <stop offset="50%" style="stop-color: orange" />
60
+ <stop offset="100%" style="stop-color: red" />
61
+ </radialGradient>
62
+
63
+ </defs>
64
+
65
+ <rect width="100%" height="100%"
66
+ style="fill: url(#dark) "/>
67
+
68
+ </svg>
69
+ EOS
70
+
8
71
  header = <<EOS
9
72
  <html>
10
73
  <head>
@@ -13,31 +76,97 @@ header = <<EOS
13
76
  <meta name="titleselector" content="h1">
14
77
  <meta name="stepselector" content=".step">
15
78
 
16
- <title>Slideshow</title>
79
+ <title>Slideshow</title>
17
80
 
18
81
  <style type="text/css">
19
- @media projection {
82
+
83
+ @media screen {
84
+ .layout { display: none; }
85
+
86
+ .banner {
87
+ display: block;
88
+ border: green solid thick;
89
+ padding: 1em;
90
+ font-family: sans-serif;
91
+ font-weight: bold;
92
+ margin-bottom: 2em;
93
+ }
94
+ }
95
+
96
+ @media projection {
20
97
 
21
98
  body
22
99
  {
100
+ height: 100%; margin: 0px; padding: 0px;
23
101
  font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
102
+ color: white;
103
+ opacity: .99;
104
+ }
105
+
106
+ .slide
107
+ {
108
+ page-break-after: always;
109
+ padding-left: 2em;
110
+ padding-top: 2em;
24
111
  }
25
112
 
26
- A:hover { background-color: cyan; }
27
-
28
- h1, h2 { font-size: 40pt; color: black; }
29
- h3 { font-size: 25pt; color: black; }
30
- p, li, td, th { font-size: 18pt; color: black; }
113
+ .banner
114
+ {
115
+ display: none;
116
+ }
31
117
 
32
- pre { font-size: 16pt; color: black; }
33
- pre.code { font-size: 16pt; color: black; background-color: silver; }
118
+ .layout
119
+ {
120
+ display: block;
121
+ }
34
122
 
35
- }
123
+ div.background {
124
+ position: fixed;
125
+ left: 0px;
126
+ right: 0px;
127
+ top: 0px;
128
+ bottom: 0px;
129
+ z-index: -1;
130
+ }
131
+
132
+ a:link, a:visited {
133
+ color: white;
134
+ }
135
+ a:hover { background-color: yellow; }
136
+
137
+ h1, h2 { font-size: 36pt; }
138
+ h3 { font-size: 25pt; }
139
+ p, li, td, th { font-size: 18pt; }
140
+
141
+ pre { font-size: 16pt; }
142
+
143
+ pre.code { font-size: 16pt;
144
+ background-color: black;
145
+ color: white;
146
+ padding: 5px;
147
+ border: silver thick groove;
148
+ -moz-border-radius: 11px;
149
+ }
150
+ }
151
+
36
152
  </style>
37
153
 
38
154
 
39
155
  </head>
40
156
  <body>
157
+
158
+ <div class="layout">
159
+ <div class="background">
160
+ <object data="$svgname" width="100%" height="100%">
161
+ </div>
162
+ </div>
163
+
164
+ <div class="banner">
165
+ Turn this document into a (PowerPoint/KeyNote-style) slide show pressing F11.
166
+ (Free <a href="https://addons.mozilla.org/en-US/firefox/addon/4650">FullerScreen</a> Firefox addon required).
167
+ Learn more at the <a href="http://slideshow.rubyforge.org">Slide Show (S9)</a>
168
+ RubyForge project site.
169
+ </div>
41
170
  EOS
42
171
 
43
172
  footer = <<EOS
@@ -52,8 +181,16 @@ EOS
52
181
 
53
182
  inname = "#{basename}#{extname}"
54
183
  outname = "#{basename}.html"
184
+ svgname = "#{basename}.svg"
55
185
 
56
- puts "Preparing slidshow '#{outname}'..."
186
+ puts "Preparing slideshow theme '#{svgname}'..."
187
+
188
+ out = File.new( svgname, "w+")
189
+ out << gradient
190
+ out.flush
191
+ out.close
192
+
193
+ puts "Preparing slideshow '#{outname}'..."
57
194
 
58
195
  content = ''
59
196
  slide_counter = 0
@@ -71,7 +208,7 @@ EOS
71
208
  content << "\n\n</div>" if slide_counter > 0
72
209
 
73
210
  out = File.new( outname, "w+")
74
- out << header
211
+ out << header.gsub( '$svgname', svgname )
75
212
  out << RedCloth.new( content ).to_html
76
213
  out << footer
77
214
  out.flush
@@ -86,7 +223,7 @@ def Slideshow.main
86
223
  $options = {}
87
224
 
88
225
  opt=OptionParser.new do |opts|
89
- opts.banner = "Usage: #{$0} [options] name"
226
+ opts.banner = "Usage: slideshow [options] name"
90
227
  # opts.on( "-s", "--style STYLE", "Select Stylesheet" ) { |s| $options[:style]=s }
91
228
  opts.on_tail( "-h", "--help", "Show this message" ) { puts opts.help; exit }
92
229
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slideshow
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.1"
4
+ version: "0.2"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
@@ -9,14 +9,22 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-16 00:00:00 -08:00
13
- default_executable:
14
- dependencies: []
15
-
12
+ date: 2008-02-26 00:00:00 -08:00
13
+ default_executable: slideshow
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: RedCloth
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.0.0
23
+ version:
16
24
  description:
17
25
  email: geraldbauer2007@gmail.com
18
- executables:
19
- - slideshow
26
+ executables: []
27
+
20
28
  extensions: []
21
29
 
22
30
  extra_rdoc_files: []
@@ -45,10 +53,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
53
  version:
46
54
  requirements: []
47
55
 
48
- rubyforge_project:
56
+ rubyforge_project: slideshow
49
57
  rubygems_version: 1.0.1
50
58
  signing_key:
51
59
  specification_version: 2
52
- summary: Slideshow - A Web Alternative to PowerPoint and KeyNote in Ruby
60
+ summary: Slide Show (S9) - A Free Web Alternative to PowerPoint and KeyNote in Ruby
53
61
  test_files: []
54
62