showoff 0.7.0 → 0.9.7

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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/README.rdoc +53 -475
  3. data/Rakefile +17 -18
  4. data/bin/showoff +29 -7
  5. data/lib/commandline_parser.rb +1 -1
  6. data/lib/showoff/version.rb +3 -0
  7. data/lib/showoff.rb +600 -91
  8. data/lib/showoff_utils.rb +110 -4
  9. data/public/css/disconnected-large.png +0 -0
  10. data/public/css/disconnected.png +0 -0
  11. data/public/css/fast.png +0 -0
  12. data/public/css/grippy-close.png +0 -0
  13. data/public/css/grippy.png +0 -0
  14. data/public/css/onepage.css +6 -0
  15. data/public/css/pace.png +0 -0
  16. data/public/css/paceMarker.png +0 -0
  17. data/public/css/presenter.css +333 -43
  18. data/public/css/sh_style.css +15 -0
  19. data/public/css/showoff.css +373 -48
  20. data/public/css/slow.png +0 -0
  21. data/public/css/spinner.gif +0 -0
  22. data/public/css/tipsy.css +26 -0
  23. data/public/favicon.ico +0 -0
  24. data/public/js/jquery.parsequery.min.js +2 -0
  25. data/public/js/jquery.tipsy.js +260 -0
  26. data/public/js/onepage.js +2 -3
  27. data/public/js/presenter.js +384 -33
  28. data/public/js/sh_lang/sh_gherkin.js +112 -0
  29. data/public/js/sh_lang/sh_gherkin.min.js +1 -0
  30. data/public/js/sh_lang/sh_ini.js +87 -0
  31. data/public/js/sh_lang/sh_ini.min.js +87 -0
  32. data/public/js/sh_lang/sh_puppet.js +182 -0
  33. data/public/js/sh_lang/sh_puppet.min.js +182 -0
  34. data/public/js/sh_lang/sh_puppet_output.js +22 -0
  35. data/public/js/sh_lang/sh_puppet_output.min.js +22 -0
  36. data/public/js/sh_lang/sh_shell.min.js +1 -0
  37. data/public/js/showoff.js +423 -51
  38. data/views/404.erb +19 -0
  39. data/views/download.erb +36 -0
  40. data/views/header.erb +35 -25
  41. data/views/header_mini.erb +22 -0
  42. data/views/index.erb +46 -1
  43. data/views/onepage.erb +35 -14
  44. data/views/presenter.erb +63 -21
  45. data/views/stats.erb +73 -0
  46. metadata +170 -131
  47. data/public/css/960.css +0 -653
  48. 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
- index = File.join(dir, ShowOffUtils.presentation_config_file )
278
- order = nil
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) && data['name'] || "Presentation"
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(bluecloth nokogiri showoff gli heroku)
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
Binary file
Binary file
Binary file
@@ -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
  }
Binary file
Binary file
@@ -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(50%);
9
+ -moz-transform: scale(0.5);
10
+ -moz-transform-origin: 0 0;
4
11
  }
5
12
 
6
- #preso { margin-top: 20px; }
13
+ #preso { margin: 2% auto; }
7
14
 
8
- #main h2 {
9
- text-align: left;
10
- font-size: 1.5em;
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
- #preview {
22
- min-height: 430px;
23
- background: #777;
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
- #links {
27
- background: #fff;
28
- padding: 10px;
29
- text-align: right;
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
- #links a { color: #000; }
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
- #slidemenu ul li {
38
- padding: 5px;
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
- #sidebar { background: #ddd; }
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
- #notes {
44
- background: #ff9;
45
- font-size: 1.5em;
46
- min-height: 150px;
47
- padding: 20px;
191
+ #separator {
192
+ clear: both;
193
+ border-bottom: 2px solid #ccc;
48
194
  }
49
195
 
50
- .menu {
51
- height: 350px;
52
- max-height: 350px;
53
- overflow:auto;
196
+ #bottom {
197
+ height: 20%;
198
+ background: #ff9;
54
199
  }
55
200
 
56
- .menu a {
57
- display: block;
58
- color: #000;
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
- .menu > ul > li > ul {
61
- padding-left: 20px;
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
- .menu > ul > li > a {
64
- padding: 10px;
65
- background: #eee;
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
  }
@@ -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
+