showoff 0.7.0 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
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
+