slidedown 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,98 @@
1
+ # slidedown
2
+
3
+ Generate slides with Markdown
4
+
5
+ ## Usage
6
+
7
+ Write your talk. Currently, the syntax highlight lexer defaults to Ruby.
8
+ Adding support for specifying languages is in the TODOs.
9
+
10
+ !SLIDE
11
+
12
+ # This is my talk
13
+
14
+ !SLIDE
15
+
16
+ ## I hope you enjoy it
17
+
18
+ !SLIDE code
19
+
20
+ def foo
21
+ :bar
22
+ end
23
+
24
+ !SLIDE
25
+
26
+ Google is [here](http://google.com)
27
+
28
+ !SLIDE
29
+
30
+ # Questions?
31
+
32
+ Generate the output:
33
+
34
+ $ slidedown my-talk.md
35
+
36
+ ### Custom Styles
37
+
38
+ To add custom styles to your slides, just create stylesheets in the same directory as your presentation's markdown file:
39
+
40
+ | - presentation-directory
41
+ | - slides.md
42
+ | - styles.css
43
+
44
+ The additional styles will be added to your generated slides.
45
+
46
+ ## Syntax Highlighting
47
+
48
+ slidedown syntax highlighting works just like Lighthouse's:
49
+
50
+ @@@ ruby
51
+ def foo
52
+ :bar
53
+ end
54
+ @@@
55
+
56
+ Or for JavaScript
57
+
58
+ @@@ js
59
+ function foo() {
60
+ return 'bar';
61
+ }
62
+ @@@
63
+
64
+ ### Requirements
65
+
66
+ * RDiscount
67
+ * Nokogiri
68
+ * pygments (for syntax highlighting)
69
+
70
+ ## Todo
71
+
72
+ * Other means of navigation besides left/right keys
73
+ * Vertical view of all slides in a row
74
+ * Generate PDFs (maybe via cucumber)
75
+ * Stop making Nokogiri sad when parsing out snippets
76
+
77
+ (c) Copyright 2009 Pat Nakajima
78
+
79
+ Permission is hereby granted, free of charge, to any person
80
+ obtaining a copy of this software and associated documentation
81
+ files (the "Software"), to deal in the Software without
82
+ restriction, including without limitation the rights to use,
83
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
84
+ copies of the Software, and to permit persons to whom the
85
+ Software is furnished to do so, subject to the following
86
+ conditions:
87
+
88
+ The above copyright notice and this permission notice shall be
89
+ included in all copies or substantial portions of the Software.
90
+
91
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
92
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
93
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
94
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
95
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
96
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
97
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
98
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.join(File.dirname(__FILE__), *%w[.. lib slidedown])
4
+
5
+ puts SlideDown.render(ARGV.dup)
@@ -0,0 +1,12 @@
1
+ class Slide
2
+ attr_accessor :text, :classes
3
+
4
+ def initialize(text, *classes)
5
+ @text = text
6
+ @classes = classes
7
+ end
8
+
9
+ def html
10
+ MakersMark::Generator.new(@text).to_html
11
+ end
12
+ end
@@ -0,0 +1,64 @@
1
+ require 'rubygems'
2
+ require 'nokogiri'
3
+ require 'rdiscount'
4
+ require 'makers-mark'
5
+ require 'erb'
6
+ require File.join(File.dirname(__FILE__), 'slide')
7
+
8
+ $SILENT = true
9
+
10
+ class SlideDown
11
+ attr_reader :classes
12
+
13
+ def self.render(args)
14
+ new(File.read(File.join(Dir.pwd, *args))).render
15
+ end
16
+
17
+ # Ensures that the first slide has proper !SLIDE declaration
18
+ def initialize(raw)
19
+ @raw = raw =~ /\A!SLIDE/ ? raw : "!SLIDE\n#{raw}"
20
+ extract_classes!
21
+ end
22
+
23
+ def slides
24
+ @slides ||= lines.map { |text| Slide.new(text, *@classes.shift) }
25
+ end
26
+
27
+ def read(path)
28
+ File.read(File.dirname(__FILE__) + '/../templates/%s' % path)
29
+ end
30
+
31
+ def render
32
+ template = File.read(File.dirname(__FILE__) + '/../templates/template.erb')
33
+ ERB.new(template).result(binding)
34
+ end
35
+
36
+ private
37
+
38
+ def lines
39
+ @lines ||= @raw.split(/^!SLIDE/) \
40
+ .reject { |line| line.empty? }
41
+ end
42
+
43
+ def parse_snippets(slide)
44
+ slide.gsub!(/@@@\s([\w\s]+)\s*$/, %(<pre class="#{$1}"><code>))
45
+ slide.gsub!(/@@@\s*$/, %(</code></pre>))
46
+ end
47
+
48
+ # These get added to the dom.
49
+ def stylesheets
50
+ Dir[Dir.pwd + '/*.css'].map { |path| File.read(path) }
51
+ end
52
+
53
+ def jabascripts
54
+ Dir[Dir.pwd + '/*.js'].map { |path| File.read(path) }
55
+ end
56
+
57
+ def extract_classes!
58
+ @classes = []
59
+ @raw.gsub!(/^!SLIDE\s*([a-z\s]*)$/) do |klass|
60
+ @classes << klass.to_s.chomp.gsub('!SLIDE', '')
61
+ "!SLIDE"
62
+ end ; @classes
63
+ end
64
+ end
@@ -0,0 +1,251 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.8
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* reset.css */
15
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
16
+ body {line-height:1.5;}
17
+ table {border-collapse:separate;border-spacing:0;}
18
+ caption, th, td {text-align:left;font-weight:normal;}
19
+ table, td, th {vertical-align:middle;}
20
+ blockquote:before, blockquote:after, q:before, q:after {content:"";}
21
+ blockquote, q {quotes:"" "";}
22
+ a img {border:none;}
23
+
24
+ /* typography.css */
25
+ body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
26
+ h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
27
+ h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
28
+ h2 {font-size:2em;margin-bottom:0.75em;}
29
+ h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
30
+ h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
31
+ h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
32
+ h6 {font-size:1em;font-weight:bold;}
33
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
34
+ p {margin:0 0 1.5em;}
35
+ p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
36
+ p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
37
+ a:focus, a:hover {color:#000;}
38
+ a {color:#009;text-decoration:underline;}
39
+ blockquote {margin:1.5em;color:#666;font-style:italic;}
40
+ strong {font-weight:bold;}
41
+ em, dfn {font-style:italic;}
42
+ dfn {font-weight:bold;}
43
+ sup, sub {line-height:0;}
44
+ abbr, acronym {border-bottom:1px dotted #666;}
45
+ address {margin:0 0 1.5em;font-style:italic;}
46
+ del {color:#666;}
47
+ pre {margin:1.5em 0;white-space:pre;}
48
+ pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
49
+ li ul, li ol {margin:0 1.5em;}
50
+ ul, ol {margin:0 1.5em 1.5em 1.5em;}
51
+ ul {list-style-type:disc;}
52
+ ol {list-style-type:decimal;}
53
+ dl {margin:0 0 1.5em 0;}
54
+ dl dt {font-weight:bold;}
55
+ dd {margin-left:1.5em;}
56
+ table {margin-bottom:1.4em;width:100%;}
57
+ th {font-weight:bold;}
58
+ thead th {background:#c3d9ff;}
59
+ th, td, caption {padding:4px 10px 4px 5px;}
60
+ tr.even td {background:#e5ecf9;}
61
+ tfoot {font-style:italic;}
62
+ caption {background:#eee;}
63
+ .small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
64
+ .large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
65
+ .hide {display:none;}
66
+ .quiet {color:#666;}
67
+ .loud {color:#000;}
68
+ .highlight {background:#ff0;}
69
+ .added {background:#060;color:#fff;}
70
+ .removed {background:#900;color:#fff;}
71
+ .first {margin-left:0;padding-left:0;}
72
+ .last {margin-right:0;padding-right:0;}
73
+ .top {margin-top:0;padding-top:0;}
74
+ .bottom {margin-bottom:0;padding-bottom:0;}
75
+
76
+ /* grid.css */
77
+ .container {width:950px;margin:0 auto;}
78
+ .showgrid {background:url(src/grid.png);}
79
+ .column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
80
+ .last, div.last {margin-right:0;}
81
+ .span-1 {width:30px;}
82
+ .span-2 {width:70px;}
83
+ .span-3 {width:110px;}
84
+ .span-4 {width:150px;}
85
+ .span-5 {width:190px;}
86
+ .span-6 {width:230px;}
87
+ .span-7 {width:270px;}
88
+ .span-8 {width:310px;}
89
+ .span-9 {width:350px;}
90
+ .span-10 {width:390px;}
91
+ .span-11 {width:430px;}
92
+ .span-12 {width:470px;}
93
+ .span-13 {width:510px;}
94
+ .span-14 {width:550px;}
95
+ .span-15 {width:590px;}
96
+ .span-16 {width:630px;}
97
+ .span-17 {width:670px;}
98
+ .span-18 {width:710px;}
99
+ .span-19 {width:750px;}
100
+ .span-20 {width:790px;}
101
+ .span-21 {width:830px;}
102
+ .span-22 {width:870px;}
103
+ .span-23 {width:910px;}
104
+ .span-24, div.span-24 {width:950px;margin:0;}
105
+ input.span-1, textarea.span-1, select.span-1 {width:30px!important;}
106
+ input.span-2, textarea.span-2, select.span-2 {width:50px!important;}
107
+ input.span-3, textarea.span-3, select.span-3 {width:90px!important;}
108
+ input.span-4, textarea.span-4, select.span-4 {width:130px!important;}
109
+ input.span-5, textarea.span-5, select.span-5 {width:170px!important;}
110
+ input.span-6, textarea.span-6, select.span-6 {width:210px!important;}
111
+ input.span-7, textarea.span-7, select.span-7 {width:250px!important;}
112
+ input.span-8, textarea.span-8, select.span-8 {width:290px!important;}
113
+ input.span-9, textarea.span-9, select.span-9 {width:330px!important;}
114
+ input.span-10, textarea.span-10, select.span-10 {width:370px!important;}
115
+ input.span-11, textarea.span-11, select.span-11 {width:410px!important;}
116
+ input.span-12, textarea.span-12, select.span-12 {width:450px!important;}
117
+ input.span-13, textarea.span-13, select.span-13 {width:490px!important;}
118
+ input.span-14, textarea.span-14, select.span-14 {width:530px!important;}
119
+ input.span-15, textarea.span-15, select.span-15 {width:570px!important;}
120
+ input.span-16, textarea.span-16, select.span-16 {width:610px!important;}
121
+ input.span-17, textarea.span-17, select.span-17 {width:650px!important;}
122
+ input.span-18, textarea.span-18, select.span-18 {width:690px!important;}
123
+ input.span-19, textarea.span-19, select.span-19 {width:730px!important;}
124
+ input.span-20, textarea.span-20, select.span-20 {width:770px!important;}
125
+ input.span-21, textarea.span-21, select.span-21 {width:810px!important;}
126
+ input.span-22, textarea.span-22, select.span-22 {width:850px!important;}
127
+ input.span-23, textarea.span-23, select.span-23 {width:890px!important;}
128
+ input.span-24, textarea.span-24, select.span-24 {width:940px!important;}
129
+ .append-1 {padding-right:40px;}
130
+ .append-2 {padding-right:80px;}
131
+ .append-3 {padding-right:120px;}
132
+ .append-4 {padding-right:160px;}
133
+ .append-5 {padding-right:200px;}
134
+ .append-6 {padding-right:240px;}
135
+ .append-7 {padding-right:280px;}
136
+ .append-8 {padding-right:320px;}
137
+ .append-9 {padding-right:360px;}
138
+ .append-10 {padding-right:400px;}
139
+ .append-11 {padding-right:440px;}
140
+ .append-12 {padding-right:480px;}
141
+ .append-13 {padding-right:520px;}
142
+ .append-14 {padding-right:560px;}
143
+ .append-15 {padding-right:600px;}
144
+ .append-16 {padding-right:640px;}
145
+ .append-17 {padding-right:680px;}
146
+ .append-18 {padding-right:720px;}
147
+ .append-19 {padding-right:760px;}
148
+ .append-20 {padding-right:800px;}
149
+ .append-21 {padding-right:840px;}
150
+ .append-22 {padding-right:880px;}
151
+ .append-23 {padding-right:920px;}
152
+ .prepend-1 {padding-left:40px;}
153
+ .prepend-2 {padding-left:80px;}
154
+ .prepend-3 {padding-left:120px;}
155
+ .prepend-4 {padding-left:160px;}
156
+ .prepend-5 {padding-left:200px;}
157
+ .prepend-6 {padding-left:240px;}
158
+ .prepend-7 {padding-left:280px;}
159
+ .prepend-8 {padding-left:320px;}
160
+ .prepend-9 {padding-left:360px;}
161
+ .prepend-10 {padding-left:400px;}
162
+ .prepend-11 {padding-left:440px;}
163
+ .prepend-12 {padding-left:480px;}
164
+ .prepend-13 {padding-left:520px;}
165
+ .prepend-14 {padding-left:560px;}
166
+ .prepend-15 {padding-left:600px;}
167
+ .prepend-16 {padding-left:640px;}
168
+ .prepend-17 {padding-left:680px;}
169
+ .prepend-18 {padding-left:720px;}
170
+ .prepend-19 {padding-left:760px;}
171
+ .prepend-20 {padding-left:800px;}
172
+ .prepend-21 {padding-left:840px;}
173
+ .prepend-22 {padding-left:880px;}
174
+ .prepend-23 {padding-left:920px;}
175
+ div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
176
+ div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
177
+ .pull-1 {margin-left:-40px;}
178
+ .pull-2 {margin-left:-80px;}
179
+ .pull-3 {margin-left:-120px;}
180
+ .pull-4 {margin-left:-160px;}
181
+ .pull-5 {margin-left:-200px;}
182
+ .pull-6 {margin-left:-240px;}
183
+ .pull-7 {margin-left:-280px;}
184
+ .pull-8 {margin-left:-320px;}
185
+ .pull-9 {margin-left:-360px;}
186
+ .pull-10 {margin-left:-400px;}
187
+ .pull-11 {margin-left:-440px;}
188
+ .pull-12 {margin-left:-480px;}
189
+ .pull-13 {margin-left:-520px;}
190
+ .pull-14 {margin-left:-560px;}
191
+ .pull-15 {margin-left:-600px;}
192
+ .pull-16 {margin-left:-640px;}
193
+ .pull-17 {margin-left:-680px;}
194
+ .pull-18 {margin-left:-720px;}
195
+ .pull-19 {margin-left:-760px;}
196
+ .pull-20 {margin-left:-800px;}
197
+ .pull-21 {margin-left:-840px;}
198
+ .pull-22 {margin-left:-880px;}
199
+ .pull-23 {margin-left:-920px;}
200
+ .pull-24 {margin-left:-960px;}
201
+ .pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
202
+ .push-1 {margin:0 -40px 1.5em 40px;}
203
+ .push-2 {margin:0 -80px 1.5em 80px;}
204
+ .push-3 {margin:0 -120px 1.5em 120px;}
205
+ .push-4 {margin:0 -160px 1.5em 160px;}
206
+ .push-5 {margin:0 -200px 1.5em 200px;}
207
+ .push-6 {margin:0 -240px 1.5em 240px;}
208
+ .push-7 {margin:0 -280px 1.5em 280px;}
209
+ .push-8 {margin:0 -320px 1.5em 320px;}
210
+ .push-9 {margin:0 -360px 1.5em 360px;}
211
+ .push-10 {margin:0 -400px 1.5em 400px;}
212
+ .push-11 {margin:0 -440px 1.5em 440px;}
213
+ .push-12 {margin:0 -480px 1.5em 480px;}
214
+ .push-13 {margin:0 -520px 1.5em 520px;}
215
+ .push-14 {margin:0 -560px 1.5em 560px;}
216
+ .push-15 {margin:0 -600px 1.5em 600px;}
217
+ .push-16 {margin:0 -640px 1.5em 640px;}
218
+ .push-17 {margin:0 -680px 1.5em 680px;}
219
+ .push-18 {margin:0 -720px 1.5em 720px;}
220
+ .push-19 {margin:0 -760px 1.5em 760px;}
221
+ .push-20 {margin:0 -800px 1.5em 800px;}
222
+ .push-21 {margin:0 -840px 1.5em 840px;}
223
+ .push-22 {margin:0 -880px 1.5em 880px;}
224
+ .push-23 {margin:0 -920px 1.5em 920px;}
225
+ .push-24 {margin:0 -960px 1.5em 960px;}
226
+ .push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
227
+ .prepend-top {margin-top:1.5em;}
228
+ .append-bottom {margin-bottom:1.5em;}
229
+ .box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
230
+ hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
231
+ hr.space {background:#fff;color:#fff;}
232
+ .clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
233
+ .clearfix, .container {display:block;}
234
+ .clear {clear:both;}
235
+
236
+ /* forms.css */
237
+ label {font-weight:bold;}
238
+ fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
239
+ legend {font-weight:bold;font-size:1.2em;}
240
+ input.text, input.title, textarea, select {margin:0.5em 0;border:1px solid #bbb;}
241
+ input.text:focus, input.title:focus, textarea:focus, select:focus {border:1px solid #666;}
242
+ input.text, input.title {width:300px;padding:5px;}
243
+ input.title {font-size:1.5em;}
244
+ textarea {width:390px;height:250px;padding:5px;}
245
+ .error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
246
+ .error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
247
+ .notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
248
+ .success {background:#E7FFE6;color:#000;border-color:#B6E6B3;}
249
+ .error a {color:#8a1f11;}
250
+ .notice a {color:#514721;}
251
+ .success a {color:#264409;}
@@ -0,0 +1,115 @@
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+
6
+ body {
7
+ font-family: Helvetica;
8
+ font-size: 38px;
9
+ color: #111;
10
+ background: #fff;
11
+ }
12
+
13
+ pre {
14
+ font-family: Bitstream Vera Sans Mono;
15
+ font-size: 1em;
16
+ }
17
+
18
+ blockquote {
19
+ padding: 0 0 0 1em;
20
+ font-size: 1.4em;
21
+ font-family: Georgia, serif;
22
+ font-style: italic;
23
+ }
24
+
25
+ ul {
26
+ padding: 0 0 0 1em;
27
+ }
28
+
29
+ #slides {
30
+ overflow: hidden;
31
+ text-align: left;
32
+ }
33
+
34
+ #track {
35
+ width: 1000000px;
36
+ overflow: hidden;
37
+ }
38
+
39
+ #track > div {
40
+ float: left;
41
+ overflow: hidden;
42
+ }
43
+
44
+ #track > div .content {
45
+ margin: 0 0.6em;
46
+ }
47
+
48
+ #track > div .content h1 {
49
+ margin-bottom: 0.1em;
50
+ }
51
+
52
+ #track > div .content h1 strong {
53
+ text-decoration: underline;
54
+ }
55
+
56
+ /* - Ripped shamefully from GitHub - */
57
+ .code .c { color: #999988; font-style: italic } /* Comment */
58
+ .code .err { color: #a61717; background-color: #e3d2d2 } /* Error */
59
+ .code .k { font-weight: bold } /* Keyword */
60
+ .code .o { font-weight: bold } /* Operator */
61
+ .code .cm { color: #999988; font-style: italic } /* Comment.Multiline */
62
+ .code .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
63
+ .code .c1 { color: #999988; font-style: italic } /* Comment.Single */
64
+ .code .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
65
+ .code .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
66
+ .code .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
67
+ .code .ge { font-style: italic } /* Generic.Emph */
68
+ .code .gr { color: #aa0000 } /* Generic.Error */
69
+ .code .gh { color: #999999 } /* Generic.Heading */
70
+ .code .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
71
+ .code .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
72
+ .code .go { color: #888888 } /* Generic.Output */
73
+ .code .gp { color: #555555 } /* Generic.Prompt */
74
+ .code .gs { font-weight: bold } /* Generic.Strong */
75
+ .code .gu { color: #aaaaaa } /* Generic.Subheading */
76
+ .code .gt { color: #aa0000 } /* Generic.Traceback */
77
+ .code .kc { font-weight: bold } /* Keyword.Constant */
78
+ .code .kd { font-weight: bold } /* Keyword.Declaration */
79
+ .code .kp { font-weight: bold } /* Keyword.Pseudo */
80
+ .code .kr { font-weight: bold } /* Keyword.Reserved */
81
+ .code .kt { color: #445588; font-weight: bold } /* Keyword.Type */
82
+ .code .m { color: #009999 } /* Literal.Number */
83
+ .code .s { color: #d14 } /* Literal.String */
84
+ .code .na { color: #008080 } /* Name.Attribute */
85
+ .code .nb { color: #0086B3 } /* Name.Builtin */
86
+ .code .nc { color: #445588; font-weight: bold } /* Name.Class */
87
+ .code .no { color: #008080 } /* Name.Constant */
88
+ .code .ni { color: #800080 } /* Name.Entity */
89
+ .code .ne { color: #990000; font-weight: bold } /* Name.Exception */
90
+ .code .nf { color: #990000; font-weight: bold } /* Name.Function */
91
+ .code .nn { color: #555555 } /* Name.Namespace */
92
+ .code .nt { color: #000080 } /* Name.Tag */
93
+ .code .nv { color: #008080 } /* Name.Variable */
94
+ .code .ow { font-weight: bold } /* Operator.Word */
95
+ .code .w { color: #bbbbbb } /* Text.Whitespace */
96
+ .code .mf { color: #009999 } /* Literal.Number.Float */
97
+ .code .mh { color: #009999 } /* Literal.Number.Hex */
98
+ .code .mi { color: #009999 } /* Literal.Number.Integer */
99
+ .code .mo { color: #009999 } /* Literal.Number.Oct */
100
+ .code .sb { color: #d14 } /* Literal.String.Backtick */
101
+ .code .sc { color: #d14 } /* Literal.String.Char */
102
+ .code .sd { color: #d14 } /* Literal.String.Doc */
103
+ .code .s2 { color: #d14 } /* Literal.String.Double */
104
+ .code .se { color: #d14 } /* Literal.String.Escape */
105
+ .code .sh { color: #d14 } /* Literal.String.Heredoc */
106
+ .code .si { color: #d14 } /* Literal.String.Interpol */
107
+ .code .sx { color: #d14 } /* Literal.String.Other */
108
+ .code .sr { color: #009926 } /* Literal.String.Regex */
109
+ .code .s1 { color: #d14 } /* Literal.String.Single */
110
+ .code .ss { color: #990073 } /* Literal.String.Symbol */
111
+ .code .bp { color: #999999 } /* Name.Builtin.Pseudo */
112
+ .code .vc { color: #008080 } /* Name.Variable.Class */
113
+ .code .vg { color: #008080 } /* Name.Variable.Global */
114
+ .code .vi { color: #008080 } /* Name.Variable.Instance */
115
+ .code .il { color: #009999 } /* Literal.Number.Integer.Long */