showoff 0.7.0 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +53 -475
- data/Rakefile +17 -18
- data/bin/showoff +29 -7
- data/lib/commandline_parser.rb +1 -1
- data/lib/showoff/version.rb +3 -0
- data/lib/showoff.rb +600 -91
- data/lib/showoff_utils.rb +110 -4
- data/public/css/disconnected-large.png +0 -0
- data/public/css/disconnected.png +0 -0
- data/public/css/fast.png +0 -0
- data/public/css/grippy-close.png +0 -0
- data/public/css/grippy.png +0 -0
- data/public/css/onepage.css +6 -0
- data/public/css/pace.png +0 -0
- data/public/css/paceMarker.png +0 -0
- data/public/css/presenter.css +333 -43
- data/public/css/sh_style.css +15 -0
- data/public/css/showoff.css +373 -48
- data/public/css/slow.png +0 -0
- data/public/css/spinner.gif +0 -0
- data/public/css/tipsy.css +26 -0
- data/public/favicon.ico +0 -0
- data/public/js/jquery.parsequery.min.js +2 -0
- data/public/js/jquery.tipsy.js +260 -0
- data/public/js/onepage.js +2 -3
- data/public/js/presenter.js +384 -33
- data/public/js/sh_lang/sh_gherkin.js +112 -0
- data/public/js/sh_lang/sh_gherkin.min.js +1 -0
- data/public/js/sh_lang/sh_ini.js +87 -0
- data/public/js/sh_lang/sh_ini.min.js +87 -0
- data/public/js/sh_lang/sh_puppet.js +182 -0
- data/public/js/sh_lang/sh_puppet.min.js +182 -0
- data/public/js/sh_lang/sh_puppet_output.js +22 -0
- data/public/js/sh_lang/sh_puppet_output.min.js +22 -0
- data/public/js/sh_lang/sh_shell.min.js +1 -0
- data/public/js/showoff.js +423 -51
- data/views/404.erb +19 -0
- data/views/download.erb +36 -0
- data/views/header.erb +35 -25
- data/views/header_mini.erb +22 -0
- data/views/index.erb +46 -1
- data/views/onepage.erb +35 -14
- data/views/presenter.erb +63 -21
- data/views/stats.erb +73 -0
- metadata +170 -131
- data/public/css/960.css +0 -653
- data/public/css/pdf.css +0 -12
data/lib/showoff_utils.rb
CHANGED
@@ -1,4 +1,28 @@
|
|
1
1
|
class ShowOffUtils
|
2
|
+
|
3
|
+
# Helper method to parse a comma separated options string and stores
|
4
|
+
# the result in a dictionrary
|
5
|
+
#
|
6
|
+
# Example:
|
7
|
+
#
|
8
|
+
# "tpl=hpi,title=Over the rainbow"
|
9
|
+
#
|
10
|
+
# will be stored as
|
11
|
+
#
|
12
|
+
# { "tpl" => "hpi", "title" => "Over the rainbow" }
|
13
|
+
def self.parse_options(option_string="")
|
14
|
+
result = {}
|
15
|
+
|
16
|
+
if option_string
|
17
|
+
option_string.split(",").each do |element|
|
18
|
+
pair = element.split("=")
|
19
|
+
result[pair[0]] = pair.size > 1 ? pair[1] : nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
result
|
24
|
+
end
|
25
|
+
|
2
26
|
def self.presentation_config_file
|
3
27
|
@presentation_config_file ||= 'showoff.json'
|
4
28
|
end
|
@@ -274,11 +298,49 @@ class ShowOffUtils
|
|
274
298
|
end
|
275
299
|
|
276
300
|
def self.showoff_title(dir = '.')
|
277
|
-
|
278
|
-
|
301
|
+
get_config_option(dir, 'name', "Presentation")
|
302
|
+
end
|
303
|
+
|
304
|
+
def self.pause_msg(dir = '.')
|
305
|
+
get_config_option(dir, 'pause_msg', 'PAUSED')
|
306
|
+
end
|
307
|
+
|
308
|
+
def self.default_style(dir = '.')
|
309
|
+
get_config_option(dir, 'style', '')
|
310
|
+
end
|
311
|
+
|
312
|
+
def self.default_style?(style, dir = '.')
|
313
|
+
default = default_style(dir)
|
314
|
+
style.split('/').last.sub(/\.css$/, '') == default
|
315
|
+
end
|
316
|
+
|
317
|
+
def self.showoff_pdf_options(dir = '.')
|
318
|
+
opts = get_config_option(dir, 'pdf_options', {:page_size => 'Letter', :orientation => 'Landscape'})
|
319
|
+
Hash[opts.map {|k, v| [k.to_sym, v]}] # keys must be symbols
|
320
|
+
end
|
321
|
+
|
322
|
+
def self.showoff_markdown(dir = ".")
|
323
|
+
get_config_option(dir, "markdown", "redcarpet")
|
324
|
+
end
|
325
|
+
|
326
|
+
def self.showoff_renderer_options(dir = '.', default_options = {})
|
327
|
+
opts = get_config_option(dir, showoff_markdown(dir), default_options)
|
328
|
+
Hash[opts.map {|k, v| [k.to_sym, v]}] if opts # keys must be symbols
|
329
|
+
end
|
330
|
+
|
331
|
+
def self.get_config_option(dir, option, default = nil)
|
332
|
+
index = File.join(dir, ShowOffUtils.presentation_config_file)
|
279
333
|
if File.exists?(index)
|
280
334
|
data = JSON.parse(File.read(index))
|
281
|
-
data.is_a?(Hash)
|
335
|
+
if data.is_a?(Hash)
|
336
|
+
if default.is_a?(Hash)
|
337
|
+
default.merge(data[option] || {})
|
338
|
+
else
|
339
|
+
data[option] || default
|
340
|
+
end
|
341
|
+
end
|
342
|
+
else
|
343
|
+
default
|
282
344
|
end
|
283
345
|
end
|
284
346
|
|
@@ -294,7 +356,7 @@ class ShowOffUtils
|
|
294
356
|
EXTENSIONS[ext] || ext
|
295
357
|
end
|
296
358
|
|
297
|
-
REQUIRED_GEMS = %w(
|
359
|
+
REQUIRED_GEMS = %w(redcarpet showoff heroku)
|
298
360
|
|
299
361
|
# Creates the file that lists the gems for heroku
|
300
362
|
#
|
@@ -342,3 +404,47 @@ class ShowOffUtils
|
|
342
404
|
end
|
343
405
|
end
|
344
406
|
end
|
407
|
+
|
408
|
+
# Load the configuration for the markdown engine from the showoff.json
|
409
|
+
# file
|
410
|
+
module MarkdownConfig
|
411
|
+
def self.setup(dir_name)
|
412
|
+
# Load markdown configuration
|
413
|
+
case ShowOffUtils.showoff_markdown(dir_name)
|
414
|
+
|
415
|
+
when 'rdiscount'
|
416
|
+
Tilt.prefer Tilt::RDiscountTemplate, "markdown"
|
417
|
+
|
418
|
+
when 'maruku'
|
419
|
+
Tilt.prefer Tilt::MarukuTemplate, "markdown"
|
420
|
+
# Now check if we can go for latex mode
|
421
|
+
require 'maruku'
|
422
|
+
require 'maruku/ext/math'
|
423
|
+
|
424
|
+
# Load maruku options
|
425
|
+
opts = ShowOffUtils.showoff_renderer_options(dir_name,
|
426
|
+
{ :use_tex => false,
|
427
|
+
:png_dir => 'images',
|
428
|
+
:html_png_url => '/file/images/'})
|
429
|
+
|
430
|
+
if opts[:use_tex]
|
431
|
+
MaRuKu::Globals[:html_math_output_mathml] = false
|
432
|
+
MaRuKu::Globals[:html_math_engine] = 'none'
|
433
|
+
MaRuKu::Globals[:html_math_output_png] = true
|
434
|
+
MaRuKu::Globals[:html_png_engine] = 'blahtex'
|
435
|
+
MaRuKu::Globals[:html_png_dir] = opts[:png_dir]
|
436
|
+
MaRuKu::Globals[:html_png_url] = opts[:html_png_url]
|
437
|
+
end
|
438
|
+
|
439
|
+
when 'bluecloth'
|
440
|
+
Tilt.prefer Tilt::BlueClothTemplate, "markdown"
|
441
|
+
|
442
|
+
when 'kramdown'
|
443
|
+
Tilt.prefer Tilt::KramdownTemplate, "markdown"
|
444
|
+
|
445
|
+
else
|
446
|
+
Tilt.prefer Tilt::RedcarpetTemplate, "markdown"
|
447
|
+
|
448
|
+
end
|
449
|
+
end
|
450
|
+
end
|
Binary file
|
Binary file
|
data/public/css/fast.png
ADDED
Binary file
|
Binary file
|
Binary file
|
data/public/css/onepage.css
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
/* Screen */
|
2
2
|
@media screen {
|
3
|
+
body {
|
4
|
+
overflow: scroll;
|
5
|
+
}
|
6
|
+
|
3
7
|
.slide {
|
4
8
|
margin: 10px;
|
5
9
|
padding: 0;
|
@@ -9,6 +13,7 @@
|
|
9
13
|
margin-left:auto;
|
10
14
|
margin-right:auto;
|
11
15
|
overflow:hidden;
|
16
|
+
position: relative;
|
12
17
|
border: 1px solid #333;
|
13
18
|
page-break-after: always
|
14
19
|
}
|
@@ -23,6 +28,7 @@
|
|
23
28
|
height: 600px;
|
24
29
|
overflow:hidden;
|
25
30
|
border: none;
|
31
|
+
position: relative;
|
26
32
|
page-break-after: always
|
27
33
|
}
|
28
34
|
}
|
data/public/css/pace.png
ADDED
Binary file
|
Binary file
|
data/public/css/presenter.css
CHANGED
@@ -1,66 +1,356 @@
|
|
1
|
+
/* Sizes must be defined for child elements to use them in fluid calculations. */
|
2
|
+
#main {
|
3
|
+
height: 100%;
|
4
|
+
min-width: 630px;
|
5
|
+
}
|
6
|
+
|
1
7
|
div.zoomed {
|
2
8
|
zoom: 50%;
|
3
|
-
-moz-transform: scale(
|
9
|
+
-moz-transform: scale(0.5);
|
10
|
+
-moz-transform-origin: 0 0;
|
4
11
|
}
|
5
12
|
|
6
|
-
#preso { margin
|
13
|
+
#preso { margin: 2% auto; }
|
7
14
|
|
8
|
-
#
|
9
|
-
|
10
|
-
|
15
|
+
#topbar {
|
16
|
+
height: 5%;
|
17
|
+
min-height: 24px;
|
18
|
+
background: #cfcfcf;
|
19
|
+
vertical-align: middle;
|
20
|
+
text-align: right;
|
21
|
+
color: #fff;
|
22
|
+
font-size: 0.8em;
|
11
23
|
}
|
24
|
+
#slideSource {
|
25
|
+
float: left;
|
26
|
+
margin: 0.5em 0 0 0.5em;
|
27
|
+
}
|
28
|
+
#links {
|
29
|
+
position: relative;
|
30
|
+
top: 0.7em;
|
31
|
+
font-size: 0.65em;
|
32
|
+
padding: 0 1em;
|
33
|
+
}
|
34
|
+
#links a {
|
35
|
+
color: #fff;
|
36
|
+
padding: 0.35em;
|
37
|
+
text-decoration: none;
|
38
|
+
border: 1px solid #ccc;
|
39
|
+
-moz-border-radius: 0.5em;
|
40
|
+
-webkit-border-radius: 0.5em;
|
41
|
+
-khtml-border-radius: 0.5em;
|
42
|
+
border-radius: 0.5em;
|
43
|
+
}
|
44
|
+
#links a:hover {
|
45
|
+
background-color: #555;
|
46
|
+
}
|
47
|
+
|
48
|
+
#topbar #links .mobile {
|
49
|
+
display: none;
|
50
|
+
}
|
12
51
|
|
13
|
-
#progress {
|
14
|
-
padding: 10px;
|
15
|
-
}
|
16
|
-
#slideSource {
|
17
|
-
padding: 10px;
|
18
|
-
background: #9d9;
|
19
|
-
}
|
20
52
|
|
21
|
-
#
|
22
|
-
|
23
|
-
background: #
|
53
|
+
#center {
|
54
|
+
height: 75%;
|
55
|
+
background-color: #fff;
|
24
56
|
}
|
57
|
+
#sidebar {
|
58
|
+
width: 25%;
|
59
|
+
min-width: 210px;
|
60
|
+
height: 100%;
|
61
|
+
float: left;
|
62
|
+
padding: 0;
|
63
|
+
margin: 0;
|
64
|
+
border-right: 2px solid #ccc;
|
65
|
+
}
|
66
|
+
#timerSection {
|
67
|
+
height: 5%;
|
68
|
+
margin-left: 0.5em;
|
69
|
+
min-height: 25px;
|
70
|
+
}
|
25
71
|
|
26
|
-
#
|
27
|
-
|
28
|
-
|
29
|
-
|
72
|
+
#timerSection input[type='button'] {
|
73
|
+
float: right;
|
74
|
+
}
|
75
|
+
|
76
|
+
.tBlue { background: #79d; }
|
77
|
+
.tGreen { background: #9d9; }
|
78
|
+
.tRed { background: #d99; }
|
79
|
+
.tYellow { background: #dd9; }
|
80
|
+
|
81
|
+
#sidebar #feedbackPace {
|
82
|
+
height: 10%;
|
83
|
+
position: relative;
|
84
|
+
background: transparent url(pace.png) no-repeat center bottom;
|
85
|
+
}
|
86
|
+
#sidebar #feedbackPace #paceFast,
|
87
|
+
#sidebar #feedbackPace #paceSlow {
|
88
|
+
font-size: 1.5em;
|
89
|
+
font-weight: bold;
|
90
|
+
display: none;
|
91
|
+
}
|
92
|
+
#sidebar #feedbackPace #paceFast {
|
93
|
+
float: left;
|
94
|
+
margin-left: 1em;
|
95
|
+
}
|
96
|
+
#sidebar #feedbackPace #paceSlow {
|
97
|
+
float: right;
|
98
|
+
margin-right: 1em;
|
30
99
|
}
|
31
|
-
#
|
100
|
+
#sidebar #feedbackPace #paceMarker {
|
101
|
+
left: 50%;
|
102
|
+
position: absolute;
|
103
|
+
transform: translate(-50%, -50%);
|
104
|
+
-webkit-transform: translate(-50%, 0);
|
105
|
+
-moz-transform: translate(-50%, 0);
|
106
|
+
-ms-transform: translate(-50%, 0);
|
107
|
+
-o-transform: translate(-50%, 0);
|
32
108
|
|
33
|
-
#slidemenu {
|
34
|
-
background: #fff;
|
35
|
-
padding: 10px;
|
36
109
|
}
|
37
|
-
|
38
|
-
|
110
|
+
|
111
|
+
#slidemenu {
|
112
|
+
height: 85%;
|
113
|
+
background-color: #fff;
|
114
|
+
}
|
115
|
+
#slidemenu ul li {
|
116
|
+
padding: 5px;
|
117
|
+
}
|
118
|
+
|
119
|
+
.menu {
|
120
|
+
height: 100%;
|
121
|
+
max-height: 100%;
|
122
|
+
overflow:auto;
|
123
|
+
}
|
124
|
+
|
125
|
+
.menu a {
|
126
|
+
display: block;
|
127
|
+
color: #000;
|
128
|
+
margin: 1px;
|
129
|
+
padding: 0.25em;
|
130
|
+
-moz-border-radius: 0.25em;
|
131
|
+
-webkit-border-radius: 0.25em;
|
132
|
+
-khtml-border-radius: 0.25em;
|
133
|
+
border-radius: 0.25em;
|
134
|
+
}
|
135
|
+
.menu a:hover {
|
136
|
+
margin: 0;
|
137
|
+
border: 1px solid #ccc;
|
138
|
+
background-color: #dedede;
|
139
|
+
}
|
140
|
+
.menu > ul > li > ul {
|
141
|
+
padding-left: 20px;
|
142
|
+
font-size: 80%;
|
143
|
+
}
|
144
|
+
.menu > ul > li > a {
|
145
|
+
padding: 10px;
|
146
|
+
background: #eee;
|
147
|
+
}
|
148
|
+
|
149
|
+
|
150
|
+
#preview {
|
151
|
+
height: 95%;
|
152
|
+
overflow: auto;
|
153
|
+
background: #eee;
|
154
|
+
}
|
155
|
+
|
156
|
+
img#disconnected {
|
157
|
+
margin: 0.5em 1em;
|
39
158
|
}
|
40
159
|
|
41
|
-
#
|
160
|
+
#statusbar {
|
161
|
+
height: 5%;
|
162
|
+
vertical-align: middle;
|
163
|
+
}
|
164
|
+
#progress {
|
165
|
+
margin-left: 1em;
|
166
|
+
}
|
167
|
+
#debugInfo {
|
168
|
+
display: inline;
|
169
|
+
}
|
170
|
+
#enableFollower,
|
171
|
+
#enableRemote {
|
172
|
+
float: right;
|
173
|
+
border: 1px solid #ccc;
|
174
|
+
margin: 1px;
|
175
|
+
padding: 0.1em;
|
176
|
+
-moz-border-radius: 0.25em;
|
177
|
+
-webkit-border-radius: 0.25em;
|
178
|
+
-khtml-border-radius: 0.25em;
|
179
|
+
border-radius: 0.25em;
|
180
|
+
}
|
181
|
+
#enableRemote.active {
|
182
|
+
background-color: #fff8bf;
|
183
|
+
-webkit-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
|
184
|
+
-moz-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
|
185
|
+
box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
|
186
|
+
}
|
187
|
+
#zoomer {
|
188
|
+
float: right;
|
189
|
+
}
|
42
190
|
|
43
|
-
#
|
44
|
-
|
45
|
-
|
46
|
-
min-height: 150px;
|
47
|
-
padding: 20px;
|
191
|
+
#separator {
|
192
|
+
clear: both;
|
193
|
+
border-bottom: 2px solid #ccc;
|
48
194
|
}
|
49
195
|
|
50
|
-
|
51
|
-
height:
|
52
|
-
|
53
|
-
overflow:auto;
|
196
|
+
#bottom {
|
197
|
+
height: 20%;
|
198
|
+
background: #ff9;
|
54
199
|
}
|
55
200
|
|
56
|
-
|
57
|
-
|
58
|
-
|
201
|
+
#questions {
|
202
|
+
float: left;
|
203
|
+
width: 25%;
|
204
|
+
min-width: 210px;
|
205
|
+
border-right: 2px solid #ccc;
|
206
|
+
font-size: 1.5em;
|
207
|
+
overflow: auto;
|
208
|
+
height: 100%;
|
209
|
+
}
|
210
|
+
#questions h3 {
|
211
|
+
font-size: 1.25em;
|
212
|
+
}
|
213
|
+
#questions ul {
|
214
|
+
margin-left: 1.5em;
|
215
|
+
}
|
216
|
+
#questions ul li {
|
217
|
+
list-style-type: disc;
|
218
|
+
}
|
219
|
+
|
220
|
+
#notes {
|
221
|
+
float: right;
|
222
|
+
width: 74%;
|
223
|
+
font-size: 1.5em;
|
224
|
+
overflow: auto;
|
225
|
+
height: 100%;
|
226
|
+
}
|
227
|
+
#notes p,
|
228
|
+
#notes h1,
|
229
|
+
#notes h2,
|
230
|
+
#notes h3,
|
231
|
+
#notes h4,
|
232
|
+
#notes ol,
|
233
|
+
#notes ul {
|
234
|
+
margin-right: 0.75em;
|
235
|
+
}
|
236
|
+
#notes p {
|
237
|
+
padding: 0.1em inherit;
|
238
|
+
margin-bottom: 0.5em;
|
239
|
+
}
|
240
|
+
#notes ol, #notes ul {
|
241
|
+
padding-left: 2em;
|
242
|
+
}
|
243
|
+
#notes ol {
|
244
|
+
list-style-type: decimal;
|
245
|
+
}
|
246
|
+
#notes ul {
|
247
|
+
list-style-type: disc;
|
248
|
+
}
|
249
|
+
|
250
|
+
#topbar {
|
251
|
+
background: #4c4c4c; /* Old browsers */
|
252
|
+
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
|
253
|
+
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRjNGM0YyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEyJSIgc3RvcC1jb2xvcj0iIzU5NTk1OSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjI1JSIgc3RvcC1jb2xvcj0iIzY2NjY2NiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjM5JSIgc3RvcC1jb2xvcj0iIzQ3NDc0NyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzJjMmMyYyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUxJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0iIzExMTExMSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9Ijc2JSIgc3RvcC1jb2xvcj0iIzJiMmIyYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjkxJSIgc3RvcC1jb2xvcj0iIzFjMWMxYyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxMzEzMTMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
|
254
|
+
background: -moz-linear-gradient(top, #4c4c4c 0%, #595959 12%, #666666 25%, #474747 39%, #2c2c2c 50%, #000000 51%, #111111 60%, #2b2b2b 76%, #1c1c1c 91%, #131313 100%); /* FF3.6+ */
|
255
|
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4c4c4c), color-stop(12%,#595959), color-stop(25%,#666666), color-stop(39%,#474747), color-stop(50%,#2c2c2c), color-stop(51%,#000000), color-stop(60%,#111111), color-stop(76%,#2b2b2b), color-stop(91%,#1c1c1c), color-stop(100%,#131313)); /* Chrome,Safari4+ */
|
256
|
+
background: -webkit-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Chrome10+,Safari5.1+ */
|
257
|
+
background: -o-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* Opera 11.10+ */
|
258
|
+
background: -ms-linear-gradient(top, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* IE10+ */
|
259
|
+
background: linear-gradient(to bottom, #4c4c4c 0%,#595959 12%,#666666 25%,#474747 39%,#2c2c2c 50%,#000000 51%,#111111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%); /* W3C */
|
260
|
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313',GradientType=0 ); /* IE6-8 */
|
59
261
|
}
|
60
|
-
|
61
|
-
|
262
|
+
|
263
|
+
|
264
|
+
a.controls {
|
265
|
+
text-decoration: none;
|
266
|
+
padding: 0 0.25em 0.1em 0.25em;
|
267
|
+
background-color: #fff2ce;
|
268
|
+
border: 1px solid #ccc;
|
269
|
+
-moz-border-radius: 0.5em;
|
270
|
+
-webkit-border-radius: 0.5em;
|
271
|
+
-khtml-border-radius: 0.5em;
|
272
|
+
border-radius: 0.5em;
|
62
273
|
}
|
63
|
-
|
64
|
-
|
65
|
-
|
274
|
+
|
275
|
+
/* iPhone */
|
276
|
+
/* Portrait */
|
277
|
+
@media screen and (max-width: 320px)
|
278
|
+
{
|
279
|
+
#topbar,#main,#center,#preview,#bottom,#sidebar {
|
280
|
+
min-width: 320px !important;
|
281
|
+
max-width: 320px !important;
|
282
|
+
width: 320px !important;
|
283
|
+
margin: 0;
|
284
|
+
padding: 0;
|
285
|
+
}
|
286
|
+
#topbar #slideSource {
|
287
|
+
max-width: 256px;
|
288
|
+
overflow: hidden;
|
289
|
+
}
|
290
|
+
#topbar #slideSource #slideFile {
|
291
|
+
display: inline-block;
|
292
|
+
width: 205px;
|
293
|
+
max-width: 205px;
|
294
|
+
white-space: nowrap;
|
295
|
+
text-overflow: ellipsis;
|
296
|
+
overflow: hidden;
|
297
|
+
}
|
298
|
+
#topbar #links .desktop,
|
299
|
+
#zoomer,
|
300
|
+
#separator,
|
301
|
+
#stylepicker {
|
302
|
+
display: none !important;
|
303
|
+
}
|
304
|
+
#topbar #links {
|
305
|
+
top: 0.5em;
|
306
|
+
padding: 0 0.5em;
|
307
|
+
}
|
308
|
+
#topbar #links .mobile {
|
309
|
+
display: inline;
|
310
|
+
}
|
311
|
+
#center {
|
312
|
+
height: 267px;
|
313
|
+
}
|
314
|
+
#statusbar {
|
315
|
+
vertical-align: top;
|
316
|
+
font-size: 0.75em;
|
317
|
+
}
|
318
|
+
#statusbar * {
|
319
|
+
vertical-align: top;
|
320
|
+
}
|
321
|
+
#statusbar #enableRemote,
|
322
|
+
#statusbar #enableFollower {
|
323
|
+
border: none;
|
324
|
+
margin: 0;
|
325
|
+
padding: 0;
|
326
|
+
}
|
327
|
+
#statusbar #remoteToggle,
|
328
|
+
#statusbar #followerToggle {
|
329
|
+
line-height: 1em;
|
330
|
+
height: 1em;
|
331
|
+
margin: 0 0 0 0.25em;
|
332
|
+
padding: 0;
|
333
|
+
}
|
334
|
+
#bottom {
|
335
|
+
height: 245px;
|
336
|
+
overflow: auto;
|
337
|
+
}
|
338
|
+
#sidebar {
|
339
|
+
position: absolute;
|
340
|
+
top: 534px;
|
341
|
+
float: none;
|
342
|
+
height: auto;
|
343
|
+
}
|
344
|
+
#preso {
|
345
|
+
width: 976px;
|
346
|
+
margin: 0;
|
347
|
+
padding: 0;
|
348
|
+
margin-left:auto;
|
349
|
+
margin-right:auto;
|
350
|
+
}
|
351
|
+
#preso .slide {
|
352
|
+
width: 100%;
|
353
|
+
margin: 0;
|
354
|
+
padding: 0;
|
355
|
+
}
|
66
356
|
}
|
data/public/css/sh_style.css
CHANGED
@@ -64,3 +64,18 @@ pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; }
|
|
64
64
|
pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
|
65
65
|
pre.sh_sourceCode .sh_paren { color: red; }
|
66
66
|
pre.sh_sourceCode .sh_attribute { color: darkgreen; }
|
67
|
+
|
68
|
+
/* for Puppet */
|
69
|
+
pre.sh_sourceCode .sh_puppet_uri { color: blue; }
|
70
|
+
pre.sh_sourceCode .sh_ensure { color: magenta; }
|
71
|
+
pre.sh_sourceCode .sh_hashrocket { color: brown; }
|
72
|
+
pre.sh_sourceCode .sh_param { color: purple; font-weight: bold; }
|
73
|
+
pre.sh_sourceCode .sh_reference { color: orange; }
|
74
|
+
|
75
|
+
/* for Puppet Output */
|
76
|
+
pre.sh_sourceCode.sh_puppet_output { background-color: black; color: white; }
|
77
|
+
pre.sh_sourceCode .sh_info { color: green; }
|
78
|
+
pre.sh_sourceCode .sh_notice { color: cyan; }
|
79
|
+
pre.sh_sourceCode .sh_warning { color: red; }
|
80
|
+
|
81
|
+
|