shining 1.1.4 → 1.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/css/base.css +16 -3
- data/lib/config.ru +4 -0
- data/lib/jquery.shining.js +80 -16
- data/shining.gemspec +3 -2
- data/templates/index.html +1 -1
- metadata +3 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.5
|
data/css/base.css
CHANGED
@@ -4,17 +4,17 @@ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockq
|
|
4
4
|
margin : 0; padding : 0; border : 0; outline : 0; font-size : 100%; vertical-align : baseline; background : transparent; }
|
5
5
|
body { line-height : 1; }
|
6
6
|
ol, ul { list-style-type : none; }
|
7
|
-
:focus { outline : 0 }
|
7
|
+
:focus { outline : 0 }
|
8
8
|
ins { text-decoration : none; }
|
9
9
|
del { text-decoration : line-through }
|
10
10
|
|
11
|
-
body {
|
11
|
+
body {
|
12
12
|
font: 12px/1.5 "Lucida Grande", Tahoma, serif;
|
13
13
|
overflow: hidden;
|
14
14
|
text-align: center;
|
15
15
|
}
|
16
16
|
|
17
|
-
#stage {
|
17
|
+
#stage {
|
18
18
|
position: relative;
|
19
19
|
display: inline-block;
|
20
20
|
padding: 40px 20px;
|
@@ -41,6 +41,19 @@ a { cursor: pointer }
|
|
41
41
|
|
42
42
|
div.slice { position: absolute; display: block; width: 0; top: -10px; bottom: -10px }
|
43
43
|
|
44
|
+
#help {
|
45
|
+
display: inline-block;
|
46
|
+
font-size: 200%;
|
47
|
+
opacity: 0;
|
48
|
+
position: fixed;
|
49
|
+
right: 10px;
|
50
|
+
top: 10px;
|
51
|
+
background-color: #000;
|
52
|
+
background-color: rgba(0, 0, 0, 0.2);
|
53
|
+
color: #fff;
|
54
|
+
padding: 10px;
|
55
|
+
}
|
56
|
+
|
44
57
|
@media all and (min-width: 480px) { #stage { font-size: 80% } }
|
45
58
|
@media all and (min-width: 640px) { #stage { font-size: 100% } }
|
46
59
|
@media all and (min-width: 800px) { #stage { font-size: 130% } }
|
data/lib/config.ru
ADDED
data/lib/jquery.shining.js
CHANGED
@@ -18,7 +18,8 @@
|
|
18
18
|
var previous = this._slides[ this._slides.indexOf(this.current()) - 1 ];
|
19
19
|
return previous ? previous : this.first();
|
20
20
|
},
|
21
|
-
add: function(slides)
|
21
|
+
add: function(slides) { return Array.prototype.push.apply(this._slides, slides) },
|
22
|
+
loaded: function(name) { return !!$.shining.slides._loaded[name] },
|
22
23
|
_slides: [],
|
23
24
|
_loaded: {},
|
24
25
|
_current: 0
|
@@ -94,6 +95,8 @@
|
|
94
95
|
String.prototype.markup = function() { return this + '.html' };
|
95
96
|
String.prototype.script = function() { return this + '.js' };
|
96
97
|
String.prototype.style = function() { return this + '.css' };
|
98
|
+
|
99
|
+
var KEY = { SPACE: 32, RIGHT: 39, LEFT: 37 };
|
97
100
|
|
98
101
|
$.fn.effect = function(name) { return this.each(function() { applyEffect(this, name) }); }
|
99
102
|
$.fn.hasClasses = function(classes) {
|
@@ -105,8 +108,14 @@
|
|
105
108
|
$.extend($.shining, {
|
106
109
|
firstSlide: function() { getSlide($.shining.slides.first()) },
|
107
110
|
lastSlide: function() { getSlide($.shining.slides.last() ) },
|
108
|
-
nextSlide: function() {
|
109
|
-
|
111
|
+
nextSlide: function() {
|
112
|
+
getSlide($.shining.slides.next());
|
113
|
+
trigger('next');
|
114
|
+
},
|
115
|
+
previousSlide: function() {
|
116
|
+
getSlide($.shining.slides.previous());
|
117
|
+
trigger('previous');
|
118
|
+
},
|
110
119
|
getSlide: function(slide) { getSlide(slide) }
|
111
120
|
});
|
112
121
|
|
@@ -125,17 +134,31 @@
|
|
125
134
|
$('#stage').centralize();
|
126
135
|
});
|
127
136
|
$(window).resize(function() { $('#stage').centralize() });
|
137
|
+
bindKeys();
|
128
138
|
loadConfig(function() {
|
129
139
|
var startAt = document.location.hash.replace('#', ''),
|
130
140
|
firstSlide = startAt ? startAt : $.shining.slides.current();
|
131
141
|
loadSlide(firstSlide, function() { playSlide(firstSlide) });
|
142
|
+
if (!local() && !$.shining.config.preventPreload) preloadSlides();
|
132
143
|
setTitle($.shining.config.title);
|
133
|
-
setTheme($.shining.config.theme);
|
144
|
+
setTheme($.shining.config.theme);
|
134
145
|
parseEffects();
|
135
146
|
updateControlAnchors();
|
147
|
+
trigger('init.shining');
|
148
|
+
help('← (previous slide), → or SPACE BAR (next slide)', 3000);
|
136
149
|
});
|
137
150
|
}
|
138
|
-
|
151
|
+
|
152
|
+
function trigger(event, data) {
|
153
|
+
$(document).trigger(event + '.shining', data);
|
154
|
+
}
|
155
|
+
|
156
|
+
function bind(event, method) {
|
157
|
+
$(document).bind(event + '.shining', method);
|
158
|
+
}
|
159
|
+
|
160
|
+
$.shining.help = help;
|
161
|
+
|
139
162
|
function applyEffect(element, name) {
|
140
163
|
if (name in FILTERS) {
|
141
164
|
if ($(element).hasClasses(FILTERS[name].when)) $(element).removeClass(FILTERS[name].remove)
|
@@ -170,17 +193,28 @@
|
|
170
193
|
}
|
171
194
|
|
172
195
|
function loadSlide(name, afterLoad) {
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
196
|
+
if (!$.shining.slides.loaded(name)) {
|
197
|
+
$.get(
|
198
|
+
slide(name).markup(),
|
199
|
+
function(data) {
|
200
|
+
$.shining.slides._loaded[name] = {};
|
201
|
+
$.shining.slides._loaded[name].markup = data;
|
202
|
+
if (data) {
|
203
|
+
loadSlideScript(name, afterLoad);
|
204
|
+
loadSlideStyle(name);
|
205
|
+
}
|
181
206
|
}
|
182
|
-
|
183
|
-
|
207
|
+
);
|
208
|
+
} else {
|
209
|
+
afterLoad.call()
|
210
|
+
loadSlideStyle(name);
|
211
|
+
}
|
212
|
+
}
|
213
|
+
|
214
|
+
function preloadSlides() {
|
215
|
+
$($.shining.config.slides).each(function() {
|
216
|
+
loadSlide(this);
|
217
|
+
})
|
184
218
|
}
|
185
219
|
|
186
220
|
function playSlide(name) {
|
@@ -204,6 +238,7 @@
|
|
204
238
|
}
|
205
239
|
|
206
240
|
function loadSlideStyle(name) {
|
241
|
+
$('link.slide').remove();
|
207
242
|
$('head').append('<link rel="stylesheet" type="text/css" href="' + slide(name).style() + '" media="all" class="slide"/>')
|
208
243
|
}
|
209
244
|
|
@@ -215,6 +250,33 @@
|
|
215
250
|
});
|
216
251
|
}
|
217
252
|
|
253
|
+
function bindKeys() {
|
254
|
+
$(window).keydown(function(event) {
|
255
|
+
switch(event.keyCode) {
|
256
|
+
case KEY.RIGHT:
|
257
|
+
case KEY.SPACE:
|
258
|
+
$.shining.nextSlide();
|
259
|
+
break;
|
260
|
+
case KEY.LEFT:
|
261
|
+
$.shining.previousSlide();
|
262
|
+
break;
|
263
|
+
}
|
264
|
+
})
|
265
|
+
}
|
266
|
+
|
267
|
+
function help(message, duration) {
|
268
|
+
if ($.shining.config.help == false) return false;
|
269
|
+
var duration = duration || 500;
|
270
|
+
$('#help').remove();
|
271
|
+
$('<div id="help"></div>')
|
272
|
+
.html(message)
|
273
|
+
.css({display: 'inline-block'})
|
274
|
+
.appendTo('body')
|
275
|
+
.animate({opacity: 1})
|
276
|
+
.delay(duration)
|
277
|
+
.fadeOut(200, function() { $('#help').remove() })
|
278
|
+
}
|
279
|
+
|
218
280
|
function local() {
|
219
281
|
document.location.protocol == 'file:'
|
220
282
|
}
|
@@ -271,12 +333,14 @@
|
|
271
333
|
return $.shining.scripts.processes = [];
|
272
334
|
}
|
273
335
|
}
|
336
|
+
|
337
|
+
bind('previous', function() { help('←') });
|
338
|
+
bind('next', function() { help('→') });
|
274
339
|
|
275
340
|
init();
|
276
341
|
}
|
277
342
|
// boots!
|
278
343
|
$.shining();
|
279
|
-
|
280
344
|
})(jQuery);
|
281
345
|
|
282
346
|
// Dependencies!!
|
data/shining.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{shining}
|
8
|
-
s.version = "1.1.
|
8
|
+
s.version = "1.1.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Julio Cesar Ody"]
|
12
|
-
s.date = %q{2010-04-
|
12
|
+
s.date = %q{2010-04-20}
|
13
13
|
s.description = %q{Webkit + CSS + Javascript = awesome presos}
|
14
14
|
s.email = %q{julio.ody@gmail.com}
|
15
15
|
s.executables = ["console", "shine"]
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"images/page_white_code.png",
|
32
32
|
"images/page_white_copy.png",
|
33
33
|
"images/printer.png",
|
34
|
+
"lib/config.ru",
|
34
35
|
"lib/ext/filemethods.rb",
|
35
36
|
"lib/ext/string.rb",
|
36
37
|
"lib/jquery-1.4.1.min.js",
|
data/templates/index.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<link rel="stylesheet" type="text/css" href="<%= vendorized? ? 'vendor' : Shining.root %>/css/effects.css" media="all"/>
|
8
8
|
<link rel="stylesheet" type="text/css" href="<%= vendorized? ? 'vendor' : Shining.root %>/css/shCore.css" media="all"/>
|
9
9
|
<link rel="stylesheet" type="text/css" href="<%= vendorized? ? 'vendor' : Shining.root %>/css/shThemeFadeToGrey.css" media="all"/>
|
10
|
-
<link rel="stylesheet" type="text/css" href="<%= vendorized? ? 'vendor' : Shining.root %>/themes/default.css" media="all"/>
|
10
|
+
<link rel="stylesheet" type="text/css" href="<%= vendorized? ? 'vendor' : Shining.root %>/themes/default.css" media="all" class="theme"/>
|
11
11
|
<script type="text/javascript" charset="utf-8" src="<%= vendorized? ? 'vendor' : Shining.root %>/lib/jquery-1.4.1.min.js"></script>
|
12
12
|
<script type="text/javascript" charset="utf-8" src="<%= vendorized? ? 'vendor' : Shining.root %>/lib/shCore.js"></script>
|
13
13
|
<script type="text/javascript" charset="utf-8" src="<%= vendorized? ? 'vendor' : Shining.root %>/lib/shBrushAll.js"></script>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shining
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julio Cesar Ody
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-04-
|
12
|
+
date: 2010-04-20 00:00:00 +10:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -116,6 +116,7 @@ files:
|
|
116
116
|
- images/page_white_code.png
|
117
117
|
- images/page_white_copy.png
|
118
118
|
- images/printer.png
|
119
|
+
- lib/config.ru
|
119
120
|
- lib/ext/filemethods.rb
|
120
121
|
- lib/ext/string.rb
|
121
122
|
- lib/jquery-1.4.1.min.js
|