slideshow 0.5 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/slideshow.rb +24 -5
- data/lib/templates/s6/footer.html.erb +4 -0
- data/lib/templates/s6/header.html.erb +55 -0
- data/lib/templates/s6/jquery.js +3549 -0
- data/lib/templates/s6/outline.css +27 -0
- data/lib/templates/s6/print.css +1 -0
- data/lib/templates/s6/slides.css +76 -0
- data/lib/templates/s6/slides.js +201 -0
- data/lib/templates/s6/style.css.erb +27 -0
- metadata +11 -2
@@ -0,0 +1,27 @@
|
|
1
|
+
/* don't change this unless you want the layout stuff to show up in the outline view! */
|
2
|
+
|
3
|
+
.layout *, #footer *, #navLinks * { display: none; }
|
4
|
+
|
5
|
+
#controls, #navLinks, #toggle {
|
6
|
+
display: block; visibility: visible; margin: 0; padding: 0;}
|
7
|
+
|
8
|
+
#toggle { position: fixed; top: 0; right: 0; padding: 0.5em; }
|
9
|
+
#toggle {border: 1px solid; border-width: 0 0 1px 1px; background: #FFF;}
|
10
|
+
|
11
|
+
|
12
|
+
/* making the outline look pretty-ish */
|
13
|
+
|
14
|
+
#slide1, #slide1 h1, #slide1 h2, #slide1 h3, #slide1 h4 {border: none; margin: 0;}
|
15
|
+
#slide1 h1 {padding-top: 1.5em;}
|
16
|
+
|
17
|
+
.slide { margin: 1.5em 0 0; border-top: 1px solid #888; }
|
18
|
+
.slide h1 { border-bottom: 1px solid #AAA; }
|
19
|
+
|
20
|
+
#microsoft {
|
21
|
+
display: none;
|
22
|
+
border: red solid thick;
|
23
|
+
padding: 1em;
|
24
|
+
font-family: sans-serif;
|
25
|
+
font-weight: bold;
|
26
|
+
margin-bottom: 2em;
|
27
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
/* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */
|
@@ -0,0 +1,76 @@
|
|
1
|
+
.slide { display: none; }
|
2
|
+
#slide1 { display: block; }
|
3
|
+
#microsoft { display: none; }
|
4
|
+
|
5
|
+
.slide { position: absolute; }
|
6
|
+
#header, #footer { position: fixed; }
|
7
|
+
|
8
|
+
.layout { display: block; }
|
9
|
+
.notes { display: none; } /* handout notes/note (use note? handout? notes? */
|
10
|
+
|
11
|
+
#header, #footer, .slide { width: 100%; top: 0; left: 0; }
|
12
|
+
#header { top: 0; height: 0.5em; z-index: 1;}
|
13
|
+
|
14
|
+
#footer { top: auto; bottom: 0; height: 1em; z-index: 5;}
|
15
|
+
#footer { font-size: 100%; font-weight: bold; padding: 1em 0;}
|
16
|
+
#footer h1 { display: block; margin: 0; padding: 0 1em; font-size: 0.5em; }
|
17
|
+
#footer h2 { display: block; margin: 0; padding: 0 1em; font-size: 0.5em; font-style: italic; }
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
#controls { position: fixed; left: 60%; bottom: 0; width: 40%; z-index: 100;
|
22
|
+
text-align: right;
|
23
|
+
font: bold 1.2em Verdana, Helvetica, sans-serif; }
|
24
|
+
|
25
|
+
#controls :focus { outline: 1px dotted white;}
|
26
|
+
|
27
|
+
#controls #navLinks { text-align: right; margin: 0; visibility: hidden; }
|
28
|
+
|
29
|
+
#controls #navLinks a { padding: 0; margin: 0 0.5em; cursor: pointer; border: none; }
|
30
|
+
|
31
|
+
#controls #navLinks :link,
|
32
|
+
#controls #navLinks :visited {text-decoration: none; }
|
33
|
+
|
34
|
+
#controls #navList #jumplist { background: white; color: black; }
|
35
|
+
|
36
|
+
|
37
|
+
#currentSlide { position: fixed; width: 10%; left: 45%; bottom: 1em; z-index: 10;}
|
38
|
+
#currentSlide { text-align: center; font-size: 0.8em; }
|
39
|
+
#currentSlide :link,
|
40
|
+
#currentSlide :visited {text-decoration: none; }
|
41
|
+
|
42
|
+
.presentation { margin: 0; padding: 0; }
|
43
|
+
.slide { margin: 0 0 0 0; height: 96%; }
|
44
|
+
.slide { overflow-x: hidden; overflow-y: auto; }
|
45
|
+
.slide { top: 0; width: 92%; padding: 2% 4% 0 4%; z-index: 2; list-style: none;}
|
46
|
+
|
47
|
+
/* .step { visibility: hidden; } */
|
48
|
+
|
49
|
+
/* enable svg backgrounds for gradient themes */
|
50
|
+
div.background { position: fixed; left: 0px; right: 0px; top: 0px; bottom: 0px; z-index: -1; }
|
51
|
+
body { opacity: .99; }
|
52
|
+
|
53
|
+
html, body { margin: 0; padding: 0; }
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
/*
|
59
|
+
div#header {background: #FCC;}
|
60
|
+
div#footer {background: #CCF;}
|
61
|
+
div#controls {background: #BBD;}
|
62
|
+
div#currentSlide {background: #FFC;}
|
63
|
+
*/
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
@@ -0,0 +1,201 @@
|
|
1
|
+
var snum = 1; /* current slide # (non-zero based index e.g. starting with 1) */
|
2
|
+
var smax = 1; /* max number of slides */
|
3
|
+
var s6mode = true; /* are we in slide mode (in contrast to outline mode)? */
|
4
|
+
var defaultView = 'slideshow'; /* slideshow | outline */
|
5
|
+
|
6
|
+
function showHide(action)
|
7
|
+
{
|
8
|
+
switch( action ) {
|
9
|
+
case 's': $( '#navLinks' ).css( 'visibility', 'visible' ); break;
|
10
|
+
case 'h': $( '#navLinks' ).css( 'visibility', 'hidden' ); break;
|
11
|
+
case 'c': /* toggle control panel */
|
12
|
+
if( $( '#navLinks' ).css( 'visibility' ) != 'visible' )
|
13
|
+
$( '#navLinks' ).css( 'visibility', 'visible' );
|
14
|
+
else
|
15
|
+
$( '#navLinks' ).css( 'visibility', 'hidden' );
|
16
|
+
break;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
function currentSlide() {
|
21
|
+
|
22
|
+
$( '#currentSlide' ).html( '<a id="plink" href="">' +
|
23
|
+
'<span id="csHere">' + snum + '<\/span> ' +
|
24
|
+
'<span id="csSep">\/<\/span> ' +
|
25
|
+
'<span id="csTotal">' + smax + '<\/span>' +
|
26
|
+
'<\/a>' );
|
27
|
+
}
|
28
|
+
|
29
|
+
|
30
|
+
function permaLink() {
|
31
|
+
$('#plink').get(0).href = window.location.pathname + '#slide' + snum;
|
32
|
+
}
|
33
|
+
|
34
|
+
function goTo( target ) {
|
35
|
+
if( target > smax || target == snum ) return;
|
36
|
+
go( target - snum );
|
37
|
+
}
|
38
|
+
|
39
|
+
function go( step ) {
|
40
|
+
|
41
|
+
var cid = '#slide' + snum;
|
42
|
+
|
43
|
+
if (step != 'j') {
|
44
|
+
snum += step;
|
45
|
+
if( snum > smax ) snum = smax;
|
46
|
+
if (snum < 1) snum = 1;
|
47
|
+
} else
|
48
|
+
snum = parseInt( $( '#jumplist' ).val() );
|
49
|
+
|
50
|
+
var nid = '#slide' + snum;
|
51
|
+
|
52
|
+
$( cid ).hide();
|
53
|
+
$( nid ).show();
|
54
|
+
|
55
|
+
$('#jumplist').get(0).selectedIndex = (snum-1);
|
56
|
+
currentSlide();
|
57
|
+
permaLink();
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
function toggle() {
|
62
|
+
|
63
|
+
/* get stylesheets */
|
64
|
+
var slides = $('#slideProj').get(0);
|
65
|
+
var outline = $('#outlineStyle').get(0);
|
66
|
+
|
67
|
+
if( !slides.disabled ) {
|
68
|
+
slides.disabled = true;
|
69
|
+
outline.disabled = false;
|
70
|
+
s6mode = false;
|
71
|
+
$('.slide').each( function() { $(this).show(); } );
|
72
|
+
} else {
|
73
|
+
slides.disabled = false;
|
74
|
+
outline.disabled = true;
|
75
|
+
s6mode = true;
|
76
|
+
$('.slide').each( function(i) {
|
77
|
+
if( i == (snum-1) )
|
78
|
+
$(this).show();
|
79
|
+
else
|
80
|
+
$(this).hide();
|
81
|
+
});
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
function populateJumpList() {
|
87
|
+
|
88
|
+
var list = $('#jumplist').get(0);
|
89
|
+
|
90
|
+
$( '.slide' ).each( function(i) {
|
91
|
+
list.options[list.length] = new Option( (i+1)+' : '+ $(this).find('h1').text(), (i+1) );
|
92
|
+
});
|
93
|
+
}
|
94
|
+
|
95
|
+
function createControls() {
|
96
|
+
|
97
|
+
$('#controls').html( '<div id="navLinks">' +
|
98
|
+
'<a accesskey="t" id="toggle" href="#">Ø<\/a>' +
|
99
|
+
'<a accesskey="z" id="prev" href="#">«<\/a>' +
|
100
|
+
'<a accesskey="x" id="next" href="#">»<\/a>' +
|
101
|
+
'<div id="navList"><select id="jumplist" /><\/div>' +
|
102
|
+
'<\/div>' );
|
103
|
+
|
104
|
+
$('#controls').mouseover( function() { showHide('s'); } );
|
105
|
+
$('#controls').mouseout( function() { showHide('h'); } );
|
106
|
+
$('#toggle').click( function() { toggle(); } );
|
107
|
+
$('#prev').click( function() { go(-1); } );
|
108
|
+
$('#next').click( function() { go(1); } );
|
109
|
+
|
110
|
+
$('#jumplist').change( function() { go('j'); } );
|
111
|
+
|
112
|
+
populateJumpList();
|
113
|
+
currentSlide();
|
114
|
+
}
|
115
|
+
|
116
|
+
function addSlideIds() {
|
117
|
+
$( '.slide' ).each( function(i) {
|
118
|
+
$(this).attr( 'id', 'slide'+(i+1) );
|
119
|
+
});
|
120
|
+
|
121
|
+
smax = $( '.slide' ).length;
|
122
|
+
}
|
123
|
+
|
124
|
+
function notOperaFix() {
|
125
|
+
|
126
|
+
$('#slideProj').attr( 'media','screen' );
|
127
|
+
|
128
|
+
var outline = $('#outlineStyle').get(0);
|
129
|
+
outline.disabled = true;
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
function defaultCheck() {
|
134
|
+
$( 'meta' ).each( function() {
|
135
|
+
if( $(this).attr( 'name' ) == 'defaultView' )
|
136
|
+
defaultView = $(this).attr( 'content' );
|
137
|
+
} );
|
138
|
+
}
|
139
|
+
|
140
|
+
function keys(key) {
|
141
|
+
if (!key) {
|
142
|
+
key = event;
|
143
|
+
key.which = key.keyCode;
|
144
|
+
}
|
145
|
+
if (key.which == 84) {
|
146
|
+
toggle();
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
if (s6mode) {
|
150
|
+
switch (key.which) {
|
151
|
+
case 32: // spacebar
|
152
|
+
case 34: // page down
|
153
|
+
case 39: // rightkey
|
154
|
+
case 40: // downkey
|
155
|
+
go(1);
|
156
|
+
break;
|
157
|
+
case 33: // page up
|
158
|
+
case 37: // leftkey
|
159
|
+
case 38: // upkey
|
160
|
+
go(-1);
|
161
|
+
break;
|
162
|
+
case 36: // home
|
163
|
+
goTo(1);
|
164
|
+
break;
|
165
|
+
case 35: // end
|
166
|
+
goTo(smax);
|
167
|
+
break;
|
168
|
+
case 67: // c
|
169
|
+
showHide('c');
|
170
|
+
break;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
return false;
|
174
|
+
}
|
175
|
+
|
176
|
+
|
177
|
+
$(document).ready(function(){
|
178
|
+
|
179
|
+
if( $.browser.msie )
|
180
|
+
{
|
181
|
+
$( '.layout *').hide();
|
182
|
+
$( '.presentation').hide();
|
183
|
+
|
184
|
+
$( '#microsoft' ).show();
|
185
|
+
}
|
186
|
+
else
|
187
|
+
{
|
188
|
+
defaultCheck();
|
189
|
+
addSlideIds();
|
190
|
+
createControls();
|
191
|
+
|
192
|
+
/* opera is the only browser currently supporting css projection mode */
|
193
|
+
/* if( !$.browser.opera ) */
|
194
|
+
notOperaFix();
|
195
|
+
|
196
|
+
if( defaultView == 'outline' )
|
197
|
+
toggle();
|
198
|
+
|
199
|
+
document.onkeyup = keys;
|
200
|
+
}
|
201
|
+
});
|
@@ -0,0 +1,27 @@
|
|
1
|
+
@import url(s6/slides.css); /* required to make the slide show run at all */
|
2
|
+
|
3
|
+
html, body { color: white;
|
4
|
+
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; }
|
5
|
+
|
6
|
+
a:link, a:visited { color: white; }
|
7
|
+
|
8
|
+
h1 { font-size: 30pt; }
|
9
|
+
h2 { font-size: 28pt; }
|
10
|
+
h3 { font-size: 25pt; }
|
11
|
+
p, li, td, th { font-size: 18pt; }
|
12
|
+
|
13
|
+
pre { font-size: 16pt; }
|
14
|
+
|
15
|
+
pre.code {
|
16
|
+
background-color: black;
|
17
|
+
padding: 5px;
|
18
|
+
border: silver thick groove;
|
19
|
+
-moz-border-radius: 11px;
|
20
|
+
}
|
21
|
+
|
22
|
+
|
23
|
+
div#header, div#footer { color: silver; }
|
24
|
+
|
25
|
+
#currentSlide { color: silver;}
|
26
|
+
|
27
|
+
#controls #navLinks a { color: silver; }
|
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:
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-07-
|
12
|
+
date: 2008-07-08 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -75,6 +75,15 @@ files:
|
|
75
75
|
- lib/templates/s5/s5-core.css
|
76
76
|
- lib/templates/s5/slides.js
|
77
77
|
- lib/templates/s5/style.css.erb
|
78
|
+
- lib/templates/s6
|
79
|
+
- lib/templates/s6/footer.html.erb
|
80
|
+
- lib/templates/s6/header.html.erb
|
81
|
+
- lib/templates/s6/jquery.js
|
82
|
+
- lib/templates/s6/outline.css
|
83
|
+
- lib/templates/s6/print.css
|
84
|
+
- lib/templates/s6/slides.css
|
85
|
+
- lib/templates/s6/slides.js
|
86
|
+
- lib/templates/s6/style.css.erb
|
78
87
|
- lib/templates/style.css.erb
|
79
88
|
- bin/slideshow
|
80
89
|
has_rdoc: false
|