deckrb 0.4.2 → 0.5.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/README.md +38 -10
- data/bin/deck +11 -4
- data/lib/deck/rack_app.rb +42 -22
- data/lib/deck/slide.rb +5 -4
- data/lib/deck/slide_deck.rb +142 -135
- data/lib/deck/version.rb +1 -1
- data/public/deck.js/GPL-license.txt +0 -0
- data/public/deck.js/MIT-license.txt +0 -0
- data/public/deck.js/README.md +10 -4
- data/public/deck.js/boilerplate.html +96 -0
- data/public/deck.js/core/deck.core.css +10 -7
- data/public/deck.js/core/deck.core.js +5 -5
- data/public/deck.js/core/deck.core.scss +10 -7
- data/public/deck.js/extensions/goto/deck.goto.css +0 -0
- data/public/deck.js/extensions/goto/deck.goto.html +0 -0
- data/public/deck.js/extensions/goto/deck.goto.js +0 -0
- data/public/deck.js/extensions/hash/deck.hash.css +0 -0
- data/public/deck.js/extensions/hash/deck.hash.html +0 -0
- data/public/deck.js/extensions/hash/deck.hash.js +16 -3
- data/public/deck.js/extensions/hash/deck.hash.scss +0 -0
- data/public/deck.js/extensions/menu/deck.menu.css +0 -0
- data/public/deck.js/extensions/menu/deck.menu.js +0 -0
- data/public/deck.js/extensions/navigation/deck.navigation.css +0 -0
- data/public/deck.js/extensions/navigation/deck.navigation.html +0 -0
- data/public/deck.js/extensions/navigation/deck.navigation.js +4 -3
- data/public/deck.js/extensions/scale/deck.scale.css +4 -1
- data/public/deck.js/extensions/scale/deck.scale.js +0 -0
- data/public/deck.js/extensions/scale/deck.scale.scss +5 -1
- data/public/deck.js/extensions/status/deck.status.css +0 -0
- data/public/deck.js/extensions/status/deck.status.html +0 -0
- data/public/deck.js/extensions/status/deck.status.js +0 -0
- data/public/deck.js/introduction/index.html +8 -2
- data/public/deck.js/jquery-1.7.2.min.js +4 -0
- data/public/deck.js/modernizr.custom.js +0 -0
- data/public/deck.js/test/fixtures/complex.html +0 -0
- data/public/deck.js/test/fixtures/empty.html +0 -0
- data/public/deck.js/test/fixtures/iframe_simple.html +0 -0
- data/public/deck.js/test/fixtures/iframes.html +0 -0
- data/public/deck.js/test/fixtures/nesteds.html +0 -0
- data/public/deck.js/test/fixtures/standard.html +0 -0
- data/public/deck.js/test/index.html +1 -1
- data/public/deck.js/test/spec.core.js +3 -1
- data/public/deck.js/test/spec.goto.js +0 -0
- data/public/deck.js/test/spec.hash.js +2 -2
- data/public/deck.js/test/spec.menu.js +0 -0
- data/public/deck.js/test/spec.navigation.js +4 -4
- data/public/deck.js/test/spec.scale.js +0 -0
- data/public/deck.js/test/spec.status.js +0 -0
- data/public/deck.js/themes/style/neon.css +7 -1
- data/public/deck.js/themes/style/neon.scss +11 -1
- data/public/deck.js/themes/style/swiss.css +7 -1
- data/public/deck.js/themes/style/swiss.scss +11 -1
- data/public/deck.js/themes/style/web-2.0.css +7 -1
- data/public/deck.js/themes/style/web-2.0.scss +11 -1
- data/public/deck.js/themes/transition/fade.css +0 -0
- data/public/deck.js/themes/transition/fade.scss +0 -0
- data/public/deck.js/themes/transition/horizontal-slide.css +0 -0
- data/public/deck.js/themes/transition/horizontal-slide.scss +0 -0
- data/public/deck.js/themes/transition/vertical-slide.css +0 -0
- data/public/deck.js/themes/transition/vertical-slide.scss +0 -0
- data/public/toc.css +60 -27
- data/spec/rack_app_spec.rb +45 -1
- data/spec/slide_deck_spec.rb +77 -43
- data/spec/slide_spec.rb +19 -0
- metadata +22 -8
- data/public/deck.js/core/deck.core.html +0 -39
- data/public/deck.js/extensions/theme-picker/deck.theme-picker.css +0 -55
- data/public/deck.js/extensions/theme-picker/deck.theme-picker.js +0 -13
- data/public/deck.js/jquery-1.7.min.js +0 -4
@@ -7,7 +7,7 @@
|
|
7
7
|
<script type="text/javascript" src="../modernizr.custom.js"></script>
|
8
8
|
<script type="text/javascript" src="lib/jasmine.js"></script>
|
9
9
|
<script type="text/javascript" src="lib/jasmine-html.js"></script>
|
10
|
-
<script src="../jquery-1.7.min.js"></script>
|
10
|
+
<script src="../jquery-1.7.2.min.js"></script>
|
11
11
|
<script type="text/javascript" src="lib/jasmine-jquery.js"></script>
|
12
12
|
|
13
13
|
<!-- include source files here... -->
|
@@ -231,10 +231,12 @@ describe('Deck JS', function() {
|
|
231
231
|
});
|
232
232
|
|
233
233
|
it('should not trigger events that originate within editable elements', function() {
|
234
|
+
var $outside = $('<input type="text" />').appendTo('body');
|
234
235
|
e = jQuery.Event('keydown');
|
235
236
|
e.which = 87;
|
236
|
-
$
|
237
|
+
$outside.trigger(e);
|
237
238
|
expect($.deck('getSlide')).toHaveClass('alt-slide1');
|
239
|
+
$outside.remove();
|
238
240
|
});
|
239
241
|
});
|
240
242
|
});
|
File without changes
|
@@ -41,13 +41,13 @@ describe('Deck JS Hash Extension', function() {
|
|
41
41
|
it('should update the href on slide change', function() {
|
42
42
|
var $hashLink = $(defaults.selectors.hashLink);
|
43
43
|
$.deck('go', 3);
|
44
|
-
expect($hashLink
|
44
|
+
expect($hashLink.attr('href')).toMatch('#slide-3');
|
45
45
|
});
|
46
46
|
|
47
47
|
it('should use existing ids if they exist', function() {
|
48
48
|
var $hashLink = $(defaults.selectors.hashLink);
|
49
49
|
$.deck('go', 1);
|
50
|
-
expect($hashLink
|
50
|
+
expect($hashLink.attr('href')).toMatch('#custom-id');
|
51
51
|
});
|
52
52
|
|
53
53
|
it('should update the URL on slide change (if supported)', function() {
|
File without changes
|
@@ -42,10 +42,10 @@ describe('Deck JS Navigation Buttons', function() {
|
|
42
42
|
});
|
43
43
|
|
44
44
|
it('should update the links hrefs with real fragment ids', function() {
|
45
|
-
expect($(defaults.selectors.previousLink)
|
46
|
-
expect($(defaults.selectors.nextLink)
|
45
|
+
expect($(defaults.selectors.previousLink).attr('href')).toMatch(/#$/);
|
46
|
+
expect($(defaults.selectors.nextLink).attr('href')).toMatch('#custom-id');
|
47
47
|
$.deck('go', 2);
|
48
|
-
expect($(defaults.selectors.previousLink)
|
49
|
-
expect($(defaults.selectors.nextLink)
|
48
|
+
expect($(defaults.selectors.previousLink).attr('href')).toMatch('#custom-id');
|
49
|
+
expect($(defaults.selectors.nextLink).attr('href')).toMatch('#slide-3');
|
50
50
|
});
|
51
51
|
});
|
File without changes
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.deck-container {
|
2
2
|
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
3
|
-
font-size: 1.
|
3
|
+
font-size: 1.75em;
|
4
4
|
color: #aaa;
|
5
5
|
background: #000;
|
6
6
|
}
|
@@ -84,6 +84,12 @@
|
|
84
84
|
.deck-container > .slide .deck-before, .deck-container > .slide .deck-previous {
|
85
85
|
opacity: 0.4;
|
86
86
|
}
|
87
|
+
.deck-container > .slide .deck-before:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-before:not(.deck-child-current) .deck-previous, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-previous {
|
88
|
+
opacity: 1;
|
89
|
+
}
|
90
|
+
.deck-container > .slide .deck-child-current {
|
91
|
+
opacity: 1;
|
92
|
+
}
|
87
93
|
.deck-container .deck-status {
|
88
94
|
font-size: 0.6666em;
|
89
95
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.deck-container {
|
2
2
|
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
3
|
-
font-size:1.
|
3
|
+
font-size:1.75em;
|
4
4
|
color:#aaa;
|
5
5
|
background:#000;
|
6
6
|
|
@@ -99,6 +99,16 @@
|
|
99
99
|
> .slide {
|
100
100
|
.deck-before, .deck-previous {
|
101
101
|
opacity:0.4;
|
102
|
+
|
103
|
+
&:not(.deck-child-current) {
|
104
|
+
.deck-before, .deck-previous {
|
105
|
+
opacity:1;
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
.deck-child-current {
|
111
|
+
opacity:1;
|
102
112
|
}
|
103
113
|
}
|
104
114
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.deck-container {
|
2
2
|
font-family: "Helvetica Neue", sans-serif;
|
3
|
-
font-size: 1.
|
3
|
+
font-size: 1.75em;
|
4
4
|
background: #fff;
|
5
5
|
}
|
6
6
|
.deck-container .slide {
|
@@ -56,6 +56,12 @@
|
|
56
56
|
.deck-container > .slide .deck-before, .deck-container > .slide .deck-previous {
|
57
57
|
opacity: 0.4;
|
58
58
|
}
|
59
|
+
.deck-container > .slide .deck-before:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-before:not(.deck-child-current) .deck-previous, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-previous {
|
60
|
+
opacity: 1;
|
61
|
+
}
|
62
|
+
.deck-container > .slide .deck-child-current {
|
63
|
+
opacity: 1;
|
64
|
+
}
|
59
65
|
.deck-container .deck-prev-link, .deck-container .deck-next-link {
|
60
66
|
background: #ccc;
|
61
67
|
font-family: serif;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.deck-container {
|
2
2
|
font-family: "Helvetica Neue", sans-serif;
|
3
|
-
font-size:1.
|
3
|
+
font-size:1.75em;
|
4
4
|
background:#fff;
|
5
5
|
|
6
6
|
.slide {
|
@@ -64,6 +64,16 @@
|
|
64
64
|
> .slide {
|
65
65
|
.deck-before, .deck-previous {
|
66
66
|
opacity:0.4;
|
67
|
+
|
68
|
+
&:not(.deck-child-current) {
|
69
|
+
.deck-before, .deck-previous {
|
70
|
+
opacity:1;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
|
75
|
+
.deck-child-current {
|
76
|
+
opacity:1;
|
67
77
|
}
|
68
78
|
}
|
69
79
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
@charset "UTF-8";
|
2
2
|
.deck-container {
|
3
3
|
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
4
|
-
font-size: 1.
|
4
|
+
font-size: 1.75em;
|
5
5
|
background: #f4fafe;
|
6
6
|
/* Old browsers */
|
7
7
|
background: -moz-linear-gradient(top, #f4fafe 0%, #ccf0f0 100%);
|
@@ -24,6 +24,12 @@
|
|
24
24
|
.deck-container > .slide .deck-before, .deck-container > .slide .deck-previous {
|
25
25
|
opacity: 0.4;
|
26
26
|
}
|
27
|
+
.deck-container > .slide .deck-before:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-before:not(.deck-child-current) .deck-previous, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-before, .deck-container > .slide .deck-previous:not(.deck-child-current) .deck-previous {
|
28
|
+
opacity: 1;
|
29
|
+
}
|
30
|
+
.deck-container > .slide .deck-child-current {
|
31
|
+
opacity: 1;
|
32
|
+
}
|
27
33
|
.deck-container .slide h1, .deck-container .slide h2, .deck-container .slide h3, .deck-container .slide h4, .deck-container .slide h5, .deck-container .slide h6 {
|
28
34
|
font-family: "Hoefler Text", Constantia, Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
|
29
35
|
}
|
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
.deck-container {
|
23
23
|
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
24
|
-
font-size:1.
|
24
|
+
font-size:1.75em;
|
25
25
|
background: rgb(244,250,254); /* Old browsers */
|
26
26
|
background: -moz-linear-gradient(top, rgba(244,250,254,1) 0%, rgba(204,240,240,1) 100%); /* FF3.6+ */
|
27
27
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(244,250,254,1)), color-stop(100%,rgba(204,240,240,1))); /* Chrome,Safari4+ */
|
@@ -36,6 +36,16 @@
|
|
36
36
|
|
37
37
|
.deck-before, .deck-previous {
|
38
38
|
opacity:0.4;
|
39
|
+
|
40
|
+
&:not(.deck-child-current) {
|
41
|
+
.deck-before, .deck-previous {
|
42
|
+
opacity:1;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
.deck-child-current {
|
48
|
+
opacity:1;
|
39
49
|
}
|
40
50
|
}
|
41
51
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/public/toc.css
CHANGED
@@ -1,37 +1,70 @@
|
|
1
1
|
.deck-container .slide_toc {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
position: fixed;
|
3
|
+
bottom: 4px;
|
4
|
+
left: 4px;
|
5
|
+
height: 80%;
|
6
|
+
color: #888;
|
7
|
+
z-index: 3;
|
8
|
+
margin: 0;
|
9
|
+
}
|
10
10
|
|
11
11
|
.deck-container .slide_toc .toggle {
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
position: absolute;
|
13
|
+
bottom: 0px;
|
14
|
+
cursor: pointer;
|
15
|
+
font-size: 80%;
|
16
|
+
}
|
17
|
+
|
18
|
+
.deck-container .slide_toc .table {
|
19
|
+
font-size: 60%;
|
20
|
+
display: none;
|
21
|
+
position: absolute;
|
22
|
+
width: 20em;
|
23
|
+
bottom: 1em;
|
24
|
+
|
25
|
+
border: 1px solid black;
|
26
|
+
padding: 4px;
|
27
|
+
margin: 4px 0 2em;
|
28
|
+
background: white;
|
29
|
+
overflow-y: auto;
|
30
|
+
color: black;
|
31
|
+
|
32
|
+
height: 100%;
|
15
33
|
}
|
16
34
|
|
17
|
-
.deck-container .slide_toc
|
18
|
-
|
19
|
-
|
20
|
-
width: 20em;
|
21
|
-
bottom: 1em;
|
35
|
+
.deck-container .slide_toc .table > h2 {
|
36
|
+
font-weight: bold;
|
37
|
+
}
|
22
38
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
39
|
+
.deck-container .slide_toc .table ul {
|
40
|
+
padding: 4px 4px 4px 8px;
|
41
|
+
margin: 4px 0 2em;
|
42
|
+
overflow-y: auto;
|
43
|
+
}
|
44
|
+
.deck-container .slide_toc .table ul > li {
|
45
|
+
margin-bottom: .25em;
|
46
|
+
}
|
29
47
|
|
30
|
-
|
31
|
-
|
48
|
+
.deck-container .slide_toc .table {
|
49
|
+
margin: 4px 0 2em;
|
50
|
+
}
|
51
|
+
|
52
|
+
.deck-container a {
|
53
|
+
display: block; /* fill the entire containing li */
|
54
|
+
padding: .25em;
|
55
|
+
}
|
56
|
+
|
57
|
+
.deck-container a, .deck-container a:visited {
|
58
|
+
color: black;
|
59
|
+
text-decoration: none;
|
60
|
+
}
|
61
|
+
|
62
|
+
.deck-container a:hover {
|
63
|
+
background: #efe0ef;
|
64
|
+
}
|
32
65
|
|
33
66
|
@media print {
|
34
|
-
|
35
|
-
|
36
|
-
|
67
|
+
.slide_toc {
|
68
|
+
display: none;
|
69
|
+
}
|
37
70
|
}
|
data/spec/rack_app_spec.rb
CHANGED
@@ -60,6 +60,13 @@ module Deck
|
|
60
60
|
assert_ok
|
61
61
|
end
|
62
62
|
|
63
|
+
it "passes options" do
|
64
|
+
slide_files = []
|
65
|
+
options = {:style => "foo"}
|
66
|
+
Deck::RackApp.should_receive(:new).with(slide_files, options).and_call_original
|
67
|
+
Deck::RackApp.build slide_files, options
|
68
|
+
end
|
69
|
+
|
63
70
|
end
|
64
71
|
|
65
72
|
describe "raw app" do
|
@@ -90,6 +97,14 @@ module Deck
|
|
90
97
|
assert { last_response.body.include? "contents of foo.css" }
|
91
98
|
end
|
92
99
|
|
100
|
+
it "passes options" do
|
101
|
+
slide_files = []
|
102
|
+
options = {:style => "foo"}
|
103
|
+
app = Deck::RackApp.new slide_files, options
|
104
|
+
slide_deck = app.deck
|
105
|
+
assert {slide_deck.instance_variable_get(:@style) == "foo"}
|
106
|
+
end
|
107
|
+
|
93
108
|
describe "serving multiple slide files from multiple subdirs" do
|
94
109
|
|
95
110
|
before do
|
@@ -261,8 +276,37 @@ module Deck
|
|
261
276
|
assert { app.slides == Slide.from_file(foo_file) + Slide.from_file(bar_file) }
|
262
277
|
end
|
263
278
|
|
279
|
+
it "reads options from a showoff.json file" do
|
280
|
+
showoff_file = file "showoff.json", <<-JSON
|
281
|
+
{
|
282
|
+
"style": "fancy",
|
283
|
+
"transition": "flippy",
|
284
|
+
"sections": [
|
285
|
+
]
|
286
|
+
}
|
287
|
+
JSON
|
264
288
|
|
265
|
-
|
289
|
+
app = RackApp.new [showoff_file]
|
290
|
+
options = app.instance_variable_get(:@options)
|
291
|
+
assert { options[:style] == "fancy" }
|
292
|
+
assert { options[:transition] == "flippy" }
|
293
|
+
end
|
294
|
+
|
295
|
+
specify "options from a showoff.json file don't override command-line options" do
|
296
|
+
showoff_file = file "showoff.json", <<-JSON
|
297
|
+
{
|
298
|
+
"style": "fancy",
|
299
|
+
"transition": "flippy",
|
300
|
+
"sections": [
|
301
|
+
]
|
302
|
+
}
|
303
|
+
JSON
|
304
|
+
|
305
|
+
app = RackApp.new [showoff_file], style: "homey"
|
306
|
+
options = app.instance_variable_get(:@options)
|
307
|
+
assert { options[:style] == "homey" }
|
308
|
+
assert { options[:transition] == "flippy" }
|
309
|
+
end
|
266
310
|
|
267
311
|
end
|
268
312
|
|
data/spec/slide_deck_spec.rb
CHANGED
@@ -4,56 +4,90 @@ require "#{here}/spec_helper"
|
|
4
4
|
require "deck/slide_deck"
|
5
5
|
|
6
6
|
module Deck
|
7
|
-
|
7
|
+
describe SlideDeck do
|
8
8
|
|
9
|
-
|
9
|
+
include Files
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
def doc
|
12
|
+
@doc ||= begin
|
13
|
+
@html = deck_widget.to_html
|
14
|
+
noko_doc @html
|
15
|
+
end
|
15
16
|
end
|
16
|
-
end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
def deck_widget options = {}
|
19
|
+
@deck_widget ||= SlideDeck.new options
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
it "renders a basic deck.js HTML page" do
|
23
|
+
assert { doc }
|
24
|
+
assert { @html.include? '<link href="/deck.js/core/deck.core.css" rel="stylesheet" />' }
|
25
|
+
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
it "contains a single dummy slide" do
|
28
|
+
assert { doc.css('section.slide').size == 1 }
|
29
|
+
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
31
|
+
it "renders a markdown file with one slide" do
|
32
|
+
file = file("hello.md", "# hello")
|
33
|
+
deck_widget :slides => Slide.split(File.read file)
|
34
|
+
slides = doc.css('section.slide')
|
35
|
+
assert { slides.size == 1 }
|
36
|
+
slide = slides.first
|
37
|
+
assert { slide["id"] == "hello" }
|
38
|
+
assert { noko_html(slide) == "<section class=\"slide\" id=\"hello\">" +
|
39
|
+
"<h1>hello</h1>\n" +
|
40
|
+
"</section>"
|
41
|
+
}
|
42
|
+
end
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
44
|
+
it "includes a table of contents" do
|
45
|
+
deck_widget :slides => Slide.split("# Foo\n\n# Bar\n")
|
46
|
+
toc = doc.css('.slide_toc')
|
47
|
+
assert { toc.size == 1 }
|
48
|
+
assert { noko_html(toc.first) == "<div class=\"slide_toc\">" +
|
49
|
+
"<div class=\"toggle\">[contents]</div>" +
|
50
|
+
"<div class=\"table\">" +
|
51
|
+
"<h2>deck.rb presentation</h2>" +
|
52
|
+
"<ul>" +
|
53
|
+
"<li><a href=\"#foo\">Foo</a></li>" +
|
54
|
+
"<li><a href=\"#bar\">Bar</a></li>" +
|
55
|
+
"</ul>" +
|
56
|
+
"</div>"
|
57
|
+
"</div>"
|
58
|
+
}
|
59
|
+
end
|
57
60
|
|
58
|
-
|
61
|
+
describe "themes" do
|
62
|
+
|
63
|
+
def style_theme_node
|
64
|
+
doc.css("head link[rel='stylesheet'][id='style-theme-link']").first
|
65
|
+
end
|
66
|
+
|
67
|
+
def transition_theme_node
|
68
|
+
doc.css("head link[rel='stylesheet'][id='transition-theme-link']").first
|
69
|
+
end
|
70
|
+
|
71
|
+
it "defaults to 'swiss' style theme" do
|
72
|
+
deck_widget :slides => Slide.split("# Foo\n")
|
73
|
+
link_node = style_theme_node()
|
74
|
+
assert { link_node['href'] == "/deck.js/themes/style/swiss.css" }
|
75
|
+
end
|
76
|
+
|
77
|
+
it "defaults to 'horizontal-slide' transition theme" do
|
78
|
+
deck_widget :slides => Slide.split("# Foo\n")
|
79
|
+
link_node = transition_theme_node()
|
80
|
+
assert { link_node['href'] == "/deck.js/themes/transition/horizontal-slide.css" }
|
81
|
+
end
|
82
|
+
|
83
|
+
it "accepts theme names params" do
|
84
|
+
deck_widget :slides => Slide.split("# Foo\n"), :style => "foo", :transition => "bar"
|
85
|
+
|
86
|
+
assert { style_theme_node['href'] == "/deck.js/themes/style/foo.css" }
|
87
|
+
assert { transition_theme_node['href'] == "/deck.js/themes/transition/bar.css" }
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
59
93
|
end
|