zlide 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +47 -0
  5. data/Rakefile +8 -0
  6. data/bin/zlide +9 -0
  7. data/lib/zlide.rb +9 -0
  8. data/lib/zlide/cli/base.rb +40 -0
  9. data/lib/zlide/deck.rb +56 -0
  10. data/lib/zlide/layouts/deckjs.haml +44 -0
  11. data/lib/zlide/redcarpet/renderers.rb +5 -0
  12. data/lib/zlide/redcarpet/renderers/html.rb +35 -0
  13. data/lib/zlide/redcarpet/renderers/mock.rb +31 -0
  14. data/lib/zlide/redcarpet/renderers/pdf.rb +214 -0
  15. data/lib/zlide/server/base.rb +45 -0
  16. data/lib/zlide/templates/README.md.tt +5 -0
  17. data/lib/zlide/templates/config/deck.yml.tt +1 -0
  18. data/lib/zlide/templates/stylesheets/deck-theme.css +214 -0
  19. data/lib/zlide/templates/stylesheets/highlight-theme.css +127 -0
  20. data/lib/zlide/templates/stylesheets/slides.css +10 -0
  21. data/lib/zlide/version.rb +3 -0
  22. data/spec/spec_helper.rb +3 -0
  23. data/spec/zlide/deck_spec.rb +32 -0
  24. data/spec/zlide/server/base_spec.rb +23 -0
  25. data/vendor/javascripts/deck.js +1 -0
  26. data/vendor/javascripts/deck/deck.core.js +498 -0
  27. data/vendor/javascripts/deck/deck.edit.js +33 -0
  28. data/vendor/javascripts/deck/deck.goto.js +170 -0
  29. data/vendor/javascripts/deck/deck.hash.js +142 -0
  30. data/vendor/javascripts/deck/deck.menu.js +187 -0
  31. data/vendor/javascripts/deck/deck.navigation.js +92 -0
  32. data/vendor/javascripts/deck/deck.scale.js +170 -0
  33. data/vendor/javascripts/deck/deck.status.js +95 -0
  34. data/vendor/javascripts/highlight.js +1 -0
  35. data/vendor/javascripts/jquery-1.7.2.min.js +4 -0
  36. data/vendor/javascripts/modernizr.custom.js +4 -0
  37. data/vendor/stylesheets/deck.css +4 -0
  38. data/vendor/stylesheets/deck/deck.core.css +407 -0
  39. data/vendor/stylesheets/deck/deck.goto.css +41 -0
  40. data/vendor/stylesheets/deck/deck.hash.css +13 -0
  41. data/vendor/stylesheets/deck/deck.menu.css +47 -0
  42. data/vendor/stylesheets/deck/deck.navigation.css +43 -0
  43. data/vendor/stylesheets/deck/deck.scale.css +28 -0
  44. data/vendor/stylesheets/deck/deck.status.css +18 -0
  45. data/vendor/stylesheets/deck/transition/fade.css +43 -0
  46. data/vendor/stylesheets/deck/transition/fade.scss +69 -0
  47. data/vendor/stylesheets/deck/transition/horizontal-slide.css +76 -0
  48. data/vendor/stylesheets/deck/transition/horizontal-slide.scss +90 -0
  49. data/vendor/stylesheets/deck/transition/vertical-slide.css +94 -0
  50. data/vendor/stylesheets/deck/transition/vertical-slide.scss +112 -0
  51. data/vendor/stylesheets/test.css +3 -0
  52. data/zlide.gemspec +27 -0
  53. metadata +229 -0
@@ -0,0 +1,41 @@
1
+ .deck-container .goto-form {
2
+ position: absolute;
3
+ z-index: 3;
4
+ bottom: 10px;
5
+ left: 50%;
6
+ height: 1.75em;
7
+ margin: 0 0 0 -9.125em;
8
+ line-height: 1.75em;
9
+ padding: 0.625em;
10
+ display: none;
11
+ background: #ccc;
12
+ overflow: hidden;
13
+ }
14
+ .borderradius .deck-container .goto-form {
15
+ -webkit-border-radius: 10px;
16
+ -moz-border-radius: 10px;
17
+ border-radius: 10px;
18
+ }
19
+ .deck-container .goto-form label {
20
+ font-weight: bold;
21
+ }
22
+ .deck-container .goto-form label, .deck-container .goto-form input {
23
+ display: inline-block;
24
+ font-family: inherit;
25
+ }
26
+
27
+ .deck-goto .goto-form {
28
+ display: block;
29
+ }
30
+
31
+ #goto-slide {
32
+ width: 8.375em;
33
+ margin: 0 0.625em;
34
+ height: 1.4375em;
35
+ }
36
+
37
+ @media print {
38
+ .goto-form, #goto-slide {
39
+ display: none !important;
40
+ }
41
+ }
@@ -0,0 +1,13 @@
1
+ .deck-container .deck-permalink {
2
+ display: none;
3
+ position: absolute;
4
+ z-index: 4;
5
+ bottom: 30px;
6
+ right: 0;
7
+ width: 48px;
8
+ text-align: center;
9
+ }
10
+
11
+ .no-history .deck-container:hover .deck-permalink {
12
+ display: block;
13
+ }
@@ -0,0 +1,47 @@
1
+ .deck-menu .slide {
2
+ background: #eee;
3
+ position: relative;
4
+ left: 0;
5
+ top: 0;
6
+ visibility: visible;
7
+ cursor: pointer;
8
+ }
9
+ .no-csstransforms .deck-menu > .slide {
10
+ float: left;
11
+ width: 22%;
12
+ height: 22%;
13
+ min-height: 0;
14
+ margin: 1%;
15
+ font-size: 0.22em;
16
+ overflow: hidden;
17
+ padding: 0 0.5%;
18
+ }
19
+ .csstransforms .deck-menu > .slide {
20
+ -webkit-transform: scale(0.22) !important;
21
+ -moz-transform: scale(0.22) !important;
22
+ -o-transform: scale(0.22) !important;
23
+ -ms-transform: scale(0.22) !important;
24
+ transform: scale(0.22) !important;
25
+ -webkit-transform-origin: 0 0;
26
+ -moz-transform-origin: 0 0;
27
+ -o-transform-origin: 0 0;
28
+ -ms-transform-origin: 0 0;
29
+ transform-origin: 0 0;
30
+ -webkit-box-sizing: border-box;
31
+ -moz-box-sizing: border-box;
32
+ box-sizing: border-box;
33
+ width: 100%;
34
+ height: 100%;
35
+ overflow: hidden;
36
+ padding: 0 48px;
37
+ margin: 12px;
38
+ }
39
+ .deck-menu iframe, .deck-menu img, .deck-menu video {
40
+ max-width: 100%;
41
+ }
42
+ .deck-menu .deck-current, .no-touch .deck-menu .slide:hover {
43
+ background: #ddf;
44
+ }
45
+ .deck-menu.deck-container:hover .deck-prev-link, .deck-menu.deck-container:hover .deck-next-link {
46
+ display: none;
47
+ }
@@ -0,0 +1,43 @@
1
+ .deck-container .deck-prev-link, .deck-container .deck-next-link {
2
+ display: none;
3
+ position: absolute;
4
+ z-index: 3;
5
+ top: 50%;
6
+ width: 32px;
7
+ height: 32px;
8
+ margin-top: -16px;
9
+ font-size: 20px;
10
+ font-weight: bold;
11
+ line-height: 32px;
12
+ vertical-align: middle;
13
+ text-align: center;
14
+ text-decoration: none;
15
+ color: #fff;
16
+ background: #888;
17
+ }
18
+ .borderradius .deck-container .deck-prev-link, .borderradius .deck-container .deck-next-link {
19
+ -webkit-border-radius: 16px;
20
+ -moz-border-radius: 16px;
21
+ border-radius: 16px;
22
+ }
23
+ .deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-prev-link:active, .deck-container .deck-prev-link:visited, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus, .deck-container .deck-next-link:active, .deck-container .deck-next-link:visited {
24
+ color: #fff;
25
+ }
26
+ .deck-container .deck-prev-link {
27
+ left: 8px;
28
+ }
29
+ .deck-container .deck-next-link {
30
+ right: 8px;
31
+ }
32
+ .deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link {
33
+ display: block;
34
+ }
35
+ .deck-container:hover .deck-prev-link.deck-nav-disabled, .touch .deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link.deck-nav-disabled, .touch .deck-container:hover .deck-next-link {
36
+ display: none;
37
+ }
38
+
39
+ @media print {
40
+ .deck-prev-link, .deck-next-link {
41
+ display: none !important;
42
+ }
43
+ }
@@ -0,0 +1,28 @@
1
+ /* Remove this line if you are embedding deck.js in a page and
2
+ using the scale extension. */
3
+ .csstransforms {
4
+ overflow: hidden;
5
+ }
6
+
7
+ .csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide {
8
+ -webkit-box-sizing: padding-box;
9
+ -moz-box-sizing: padding-box;
10
+ box-sizing: padding-box;
11
+ width: 100%;
12
+ padding-bottom: 20px;
13
+ }
14
+ .csstransforms .deck-container.deck-scale:not(.deck-menu) > .slide > .deck-slide-scaler {
15
+ -webkit-transform-origin: 50% 0;
16
+ -moz-transform-origin: 50% 0;
17
+ -o-transform-origin: 50% 0;
18
+ -ms-transform-origin: 50% 0;
19
+ transform-origin: 50% 0;
20
+ }
21
+
22
+ .csstransforms .deck-container.deck-menu .deck-slide-scaler {
23
+ -webkit-transform: none !important;
24
+ -moz-transform: none !important;
25
+ -o-transform: none !important;
26
+ -ms-transform: none !important;
27
+ transform: none !important;
28
+ }
@@ -0,0 +1,18 @@
1
+ .deck-container .deck-status {
2
+ position: absolute;
3
+ bottom: 10px;
4
+ right: 5px;
5
+ color: #888;
6
+ z-index: 3;
7
+ margin: 0;
8
+ }
9
+
10
+ body.deck-container .deck-status {
11
+ position: fixed;
12
+ }
13
+
14
+ @media print {
15
+ .deck-status {
16
+ display: none;
17
+ }
18
+ }
@@ -0,0 +1,43 @@
1
+ .csstransitions.csstransforms .deck-container .slide {
2
+ -webkit-transition: opacity 500ms ease-in-out 0ms;
3
+ -moz-transition: opacity 500ms ease-in-out 0ms;
4
+ -ms-transition: opacity 500ms ease-in-out 0ms;
5
+ -o-transition: opacity 500ms ease-in-out 0ms;
6
+ transition: opacity 500ms ease-in-out 0ms;
7
+ }
8
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide {
9
+ position: absolute;
10
+ top: 0;
11
+ left: 0;
12
+ -webkit-box-sizing: border-box;
13
+ -moz-box-sizing: border-box;
14
+ box-sizing: border-box;
15
+ width: 100%;
16
+ padding: 0 48px;
17
+ }
18
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .slide {
19
+ position: relative;
20
+ left: 0;
21
+ top: 0;
22
+ }
23
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .deck-next, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .deck-after {
24
+ opacity: 0;
25
+ }
26
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .deck-current {
27
+ opacity: 1;
28
+ }
29
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-previous, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-before, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-next, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-after {
30
+ opacity: 0;
31
+ pointer-events: none;
32
+ }
33
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-before .slide, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-previous .slide {
34
+ visibility: visible;
35
+ }
36
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-child-current {
37
+ opacity: 1;
38
+ visibility: visible;
39
+ pointer-events: auto;
40
+ }
41
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-child-current .deck-next, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-child-current .deck-after {
42
+ visibility: hidden;
43
+ }
@@ -0,0 +1,69 @@
1
+ @mixin translate($x: 0, $y: 0, $z: 0) {
2
+ -webkit-transform:translate3d($x, $y, $z);
3
+ -moz-transform:translate($x, $y);
4
+ -ms-transform:translate($x, $y);
5
+ -o-transform:translate($x, $y);
6
+ transform:translate3d($x, $y, $z);
7
+ }
8
+
9
+ @mixin transition($prop, $duration, $easing: ease-in-out, $delay: 0ms) {
10
+ -webkit-transition:$prop $duration $easing $delay;
11
+ -moz-transition:$prop $duration $easing $delay;
12
+ -ms-transition:$prop $duration $easing $delay;
13
+ -o-transition:$prop $duration $easing $delay;
14
+ transition:$prop $duration $easing $delay;
15
+ }
16
+
17
+ .csstransitions.csstransforms {
18
+ .deck-container .slide {
19
+ @include transition(opacity, 500ms);
20
+ }
21
+
22
+ .deck-container:not(.deck-menu) {
23
+ > .slide {
24
+ position:absolute;
25
+ top:0;
26
+ left:0;
27
+ -webkit-box-sizing: border-box;
28
+ -moz-box-sizing: border-box;
29
+ box-sizing: border-box;
30
+ width:100%;
31
+ padding:0 48px;
32
+
33
+ .slide {
34
+ position:relative;
35
+ left:0;
36
+ top:0;
37
+ }
38
+
39
+ .deck-next, .deck-after {
40
+ opacity:0;
41
+ }
42
+
43
+ .deck-current {
44
+ opacity:1;
45
+ }
46
+ }
47
+
48
+ > .deck-previous, > .deck-before, > .deck-next, > .deck-after {
49
+ opacity:0;
50
+ pointer-events:none;
51
+ }
52
+
53
+ > .deck-before, > .deck-previous {
54
+ .slide {
55
+ visibility:visible;
56
+ }
57
+ }
58
+
59
+ > .deck-child-current {
60
+ opacity:1;
61
+ visibility:visible;
62
+ pointer-events:auto;
63
+
64
+ .deck-next, .deck-after {
65
+ visibility:hidden;
66
+ }
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,76 @@
1
+ .csstransitions.csstransforms {
2
+ overflow-x: hidden;
3
+ }
4
+ .csstransitions.csstransforms .deck-container > .slide {
5
+ -webkit-transition: -webkit-transform 500ms ease-in-out;
6
+ -moz-transition: -moz-transform 500ms ease-in-out;
7
+ -ms-transition: -ms-transform 500ms ease-in-out;
8
+ -o-transition: -o-transform 500ms ease-in-out;
9
+ transition: transform 500ms ease-in-out;
10
+ }
11
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide {
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ -webkit-box-sizing: border-box;
16
+ -moz-box-sizing: border-box;
17
+ box-sizing: border-box;
18
+ width: 100%;
19
+ padding: 0 48px;
20
+ }
21
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .slide {
22
+ position: relative;
23
+ left: 0;
24
+ top: 0;
25
+ -webkit-transition: -webkit-transform 500ms ease-in-out, opacity 500ms ease-in-out;
26
+ -moz-transition: -moz-transform 500ms ease-in-out, opacity 500ms ease-in-out;
27
+ -ms-transition: -ms-transform 500ms ease-in-out, opacity 500ms ease-in-out;
28
+ -o-transition: -o-transform 500ms ease-in-out, opacity 500ms ease-in-out;
29
+ transition: -webkit-transform 500ms ease-in-out, opacity 500ms ease-in-out;
30
+ }
31
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .deck-next, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .slide .deck-after {
32
+ visibility: visible;
33
+ -webkit-transform: translate3d(200%, 0, 0);
34
+ -moz-transform: translate(200%, 0);
35
+ -ms-transform: translate(200%, 0);
36
+ -o-transform: translate(200%, 0);
37
+ transform: translate3d(200%, 0, 0);
38
+ }
39
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-previous {
40
+ -webkit-transform: translate3d(-200%, 0, 0);
41
+ -moz-transform: translate(-200%, 0);
42
+ -ms-transform: translate(-200%, 0);
43
+ -o-transform: translate(-200%, 0);
44
+ transform: translate3d(-200%, 0, 0);
45
+ }
46
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-before {
47
+ -webkit-transform: translate3d(-400%, 0, 0);
48
+ -moz-transform: translate(-400%, 0);
49
+ -ms-transform: translate(-400%, 0);
50
+ -o-transform: translate(-400%, 0);
51
+ transform: translate3d(-400%, 0, 0);
52
+ }
53
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-next {
54
+ -webkit-transform: translate3d(200%, 0, 0);
55
+ -moz-transform: translate(200%, 0);
56
+ -ms-transform: translate(200%, 0);
57
+ -o-transform: translate(200%, 0);
58
+ transform: translate3d(200%, 0, 0);
59
+ }
60
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-after {
61
+ -webkit-transform: translate3d(400%, 0, 0);
62
+ -moz-transform: translate(400%, 0);
63
+ -ms-transform: translate(400%, 0);
64
+ -o-transform: translate(400%, 0);
65
+ transform: translate3d(400%, 0, 0);
66
+ }
67
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-before .slide, .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-previous .slide {
68
+ visibility: visible;
69
+ }
70
+ .csstransitions.csstransforms .deck-container:not(.deck-menu) > .deck-child-current {
71
+ -webkit-transform: none;
72
+ -moz-transform: none;
73
+ -ms-transform: none;
74
+ -o-transform: none;
75
+ transform: none;
76
+ }
@@ -0,0 +1,90 @@
1
+ @mixin translate($x: 0, $y: 0, $z: 0) {
2
+ -webkit-transform:translate3d($x, $y, $z);
3
+ -moz-transform:translate($x, $y);
4
+ -ms-transform:translate($x, $y);
5
+ -o-transform:translate($x, $y);
6
+ transform:translate3d($x, $y, $z);
7
+ }
8
+
9
+ @mixin transition($prop, $duration, $easing: ease-in-out, $delay: 0ms) {
10
+ -webkit-transition:$prop $duration $easing $delay;
11
+ -moz-transition:$prop $duration $easing $delay;
12
+ -ms-transition:$prop $duration $easing $delay;
13
+ -o-transition:$prop $duration $easing $delay;
14
+ transition:$prop $duration $easing $delay;
15
+ }
16
+
17
+ @mixin transform($val) {
18
+ -webkit-transform:$val;
19
+ -moz-transform:$val;
20
+ -ms-transform:$val;
21
+ -o-transform:$val;
22
+ transform:$val;
23
+ }
24
+
25
+ .csstransitions.csstransforms {
26
+ overflow-x:hidden;
27
+
28
+ .deck-container > .slide {
29
+ -webkit-transition:-webkit-transform 500ms ease-in-out;
30
+ -moz-transition:-moz-transform 500ms ease-in-out;
31
+ -ms-transition:-ms-transform 500ms ease-in-out;
32
+ -o-transition:-o-transform 500ms ease-in-out;
33
+ transition:transform 500ms ease-in-out;
34
+ }
35
+
36
+ .deck-container:not(.deck-menu) {
37
+ > .slide {
38
+ position:absolute;
39
+ top:0;
40
+ left:0;
41
+ -webkit-box-sizing: border-box;
42
+ -moz-box-sizing: border-box;
43
+ box-sizing: border-box;
44
+ width:100%;
45
+ padding:0 48px;
46
+
47
+ .slide {
48
+ position:relative;
49
+ left:0;
50
+ top:0;
51
+ -webkit-transition:-webkit-transform 500ms ease-in-out, opacity 500ms ease-in-out;
52
+ -moz-transition:-moz-transform 500ms ease-in-out, opacity 500ms ease-in-out;
53
+ -ms-transition:-ms-transform 500ms ease-in-out, opacity 500ms ease-in-out;
54
+ -o-transition:-o-transform 500ms ease-in-out, opacity 500ms ease-in-out;
55
+ transition:-webkit-transform 500ms ease-in-out, opacity 500ms ease-in-out;
56
+ }
57
+
58
+ .deck-next, .deck-after {
59
+ visibility:visible;
60
+ @include translate(200%);
61
+ }
62
+ }
63
+
64
+ > .deck-previous {
65
+ @include translate(-200%);
66
+ }
67
+
68
+ > .deck-before {
69
+ @include translate(-400%);
70
+ }
71
+
72
+ > .deck-next {
73
+ @include translate(200%);
74
+ }
75
+
76
+ > .deck-after {
77
+ @include translate(400%);
78
+ }
79
+
80
+ > .deck-before, > .deck-previous {
81
+ .slide {
82
+ visibility:visible;
83
+ }
84
+ }
85
+
86
+ > .deck-child-current {
87
+ @include transform(none);
88
+ }
89
+ }
90
+ }