gitlab-rouge 1.9.2

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 (185) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +23 -0
  3. data/LICENSE +186 -0
  4. data/bin/rougify +16 -0
  5. data/gitlab-rouge.gemspec +17 -0
  6. data/lib/rouge.rb +57 -0
  7. data/lib/rouge/cli.rb +363 -0
  8. data/lib/rouge/demos/apache +21 -0
  9. data/lib/rouge/demos/applescript +2 -0
  10. data/lib/rouge/demos/c +8 -0
  11. data/lib/rouge/demos/clojure +5 -0
  12. data/lib/rouge/demos/coffeescript +5 -0
  13. data/lib/rouge/demos/common_lisp +1 -0
  14. data/lib/rouge/demos/conf +4 -0
  15. data/lib/rouge/demos/cpp +8 -0
  16. data/lib/rouge/demos/csharp +5 -0
  17. data/lib/rouge/demos/css +4 -0
  18. data/lib/rouge/demos/dart +6 -0
  19. data/lib/rouge/demos/diff +7 -0
  20. data/lib/rouge/demos/elixir +1 -0
  21. data/lib/rouge/demos/erb +1 -0
  22. data/lib/rouge/demos/erlang +7 -0
  23. data/lib/rouge/demos/factor +5 -0
  24. data/lib/rouge/demos/gherkin +17 -0
  25. data/lib/rouge/demos/glsl +14 -0
  26. data/lib/rouge/demos/go +7 -0
  27. data/lib/rouge/demos/groovy +9 -0
  28. data/lib/rouge/demos/haml +5 -0
  29. data/lib/rouge/demos/handlebars +7 -0
  30. data/lib/rouge/demos/haskell +6 -0
  31. data/lib/rouge/demos/html +8 -0
  32. data/lib/rouge/demos/http +14 -0
  33. data/lib/rouge/demos/ini +4 -0
  34. data/lib/rouge/demos/io +11 -0
  35. data/lib/rouge/demos/java +5 -0
  36. data/lib/rouge/demos/javascript +1 -0
  37. data/lib/rouge/demos/json +1 -0
  38. data/lib/rouge/demos/json-doc +1 -0
  39. data/lib/rouge/demos/liquid +11 -0
  40. data/lib/rouge/demos/literate_coffeescript +3 -0
  41. data/lib/rouge/demos/literate_haskell +7 -0
  42. data/lib/rouge/demos/llvm +20 -0
  43. data/lib/rouge/demos/lua +12 -0
  44. data/lib/rouge/demos/make +6 -0
  45. data/lib/rouge/demos/markdown +4 -0
  46. data/lib/rouge/demos/matlab +6 -0
  47. data/lib/rouge/demos/moonscript +16 -0
  48. data/lib/rouge/demos/nginx +5 -0
  49. data/lib/rouge/demos/nim +27 -0
  50. data/lib/rouge/demos/objective_c +14 -0
  51. data/lib/rouge/demos/ocaml +12 -0
  52. data/lib/rouge/demos/perl +5 -0
  53. data/lib/rouge/demos/php +3 -0
  54. data/lib/rouge/demos/plaintext +1 -0
  55. data/lib/rouge/demos/powershell +49 -0
  56. data/lib/rouge/demos/prolog +9 -0
  57. data/lib/rouge/demos/properties +7 -0
  58. data/lib/rouge/demos/puppet +6 -0
  59. data/lib/rouge/demos/python +6 -0
  60. data/lib/rouge/demos/qml +9 -0
  61. data/lib/rouge/demos/r +8 -0
  62. data/lib/rouge/demos/racket +24 -0
  63. data/lib/rouge/demos/ruby +9 -0
  64. data/lib/rouge/demos/rust +12 -0
  65. data/lib/rouge/demos/sass +3 -0
  66. data/lib/rouge/demos/scala +3 -0
  67. data/lib/rouge/demos/scheme +4 -0
  68. data/lib/rouge/demos/scss +5 -0
  69. data/lib/rouge/demos/sed +4 -0
  70. data/lib/rouge/demos/shell +2 -0
  71. data/lib/rouge/demos/slim +17 -0
  72. data/lib/rouge/demos/smalltalk +6 -0
  73. data/lib/rouge/demos/sml +4 -0
  74. data/lib/rouge/demos/sql +1 -0
  75. data/lib/rouge/demos/swift +5 -0
  76. data/lib/rouge/demos/tcl +1 -0
  77. data/lib/rouge/demos/tex +1 -0
  78. data/lib/rouge/demos/toml +9 -0
  79. data/lib/rouge/demos/tulip +14 -0
  80. data/lib/rouge/demos/vb +4 -0
  81. data/lib/rouge/demos/viml +5 -0
  82. data/lib/rouge/demos/xml +2 -0
  83. data/lib/rouge/demos/yaml +4 -0
  84. data/lib/rouge/formatter.rb +50 -0
  85. data/lib/rouge/formatters/html.rb +117 -0
  86. data/lib/rouge/formatters/null.rb +19 -0
  87. data/lib/rouge/formatters/terminal256.rb +176 -0
  88. data/lib/rouge/lexer.rb +443 -0
  89. data/lib/rouge/lexers/apache.rb +68 -0
  90. data/lib/rouge/lexers/apache/keywords.yml +453 -0
  91. data/lib/rouge/lexers/apple_script.rb +367 -0
  92. data/lib/rouge/lexers/c.rb +212 -0
  93. data/lib/rouge/lexers/clojure.rb +112 -0
  94. data/lib/rouge/lexers/coffeescript.rb +174 -0
  95. data/lib/rouge/lexers/common_lisp.rb +345 -0
  96. data/lib/rouge/lexers/conf.rb +24 -0
  97. data/lib/rouge/lexers/cpp.rb +66 -0
  98. data/lib/rouge/lexers/csharp.rb +88 -0
  99. data/lib/rouge/lexers/css.rb +271 -0
  100. data/lib/rouge/lexers/dart.rb +104 -0
  101. data/lib/rouge/lexers/diff.rb +31 -0
  102. data/lib/rouge/lexers/elixir.rb +108 -0
  103. data/lib/rouge/lexers/erb.rb +56 -0
  104. data/lib/rouge/lexers/erlang.rb +118 -0
  105. data/lib/rouge/lexers/factor.rb +302 -0
  106. data/lib/rouge/lexers/gherkin.rb +137 -0
  107. data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
  108. data/lib/rouge/lexers/glsl.rb +135 -0
  109. data/lib/rouge/lexers/go.rb +178 -0
  110. data/lib/rouge/lexers/groovy.rb +104 -0
  111. data/lib/rouge/lexers/haml.rb +228 -0
  112. data/lib/rouge/lexers/handlebars.rb +79 -0
  113. data/lib/rouge/lexers/haskell.rb +183 -0
  114. data/lib/rouge/lexers/html.rb +94 -0
  115. data/lib/rouge/lexers/http.rb +80 -0
  116. data/lib/rouge/lexers/ini.rb +57 -0
  117. data/lib/rouge/lexers/io.rb +68 -0
  118. data/lib/rouge/lexers/java.rb +76 -0
  119. data/lib/rouge/lexers/javascript.rb +297 -0
  120. data/lib/rouge/lexers/liquid.rb +287 -0
  121. data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
  122. data/lib/rouge/lexers/literate_haskell.rb +36 -0
  123. data/lib/rouge/lexers/llvm.rb +84 -0
  124. data/lib/rouge/lexers/lua.rb +122 -0
  125. data/lib/rouge/lexers/lua/builtins.rb +22 -0
  126. data/lib/rouge/lexers/make.rb +116 -0
  127. data/lib/rouge/lexers/markdown.rb +154 -0
  128. data/lib/rouge/lexers/matlab.rb +74 -0
  129. data/lib/rouge/lexers/matlab/builtins.rb +11 -0
  130. data/lib/rouge/lexers/moonscript.rb +110 -0
  131. data/lib/rouge/lexers/nginx.rb +71 -0
  132. data/lib/rouge/lexers/nim.rb +152 -0
  133. data/lib/rouge/lexers/objective_c.rb +197 -0
  134. data/lib/rouge/lexers/ocaml.rb +111 -0
  135. data/lib/rouge/lexers/perl.rb +197 -0
  136. data/lib/rouge/lexers/php.rb +173 -0
  137. data/lib/rouge/lexers/php/builtins.rb +204 -0
  138. data/lib/rouge/lexers/plain_text.rb +25 -0
  139. data/lib/rouge/lexers/powershell.rb +96 -0
  140. data/lib/rouge/lexers/prolog.rb +64 -0
  141. data/lib/rouge/lexers/properties.rb +55 -0
  142. data/lib/rouge/lexers/puppet.rb +128 -0
  143. data/lib/rouge/lexers/python.rb +228 -0
  144. data/lib/rouge/lexers/qml.rb +72 -0
  145. data/lib/rouge/lexers/r.rb +56 -0
  146. data/lib/rouge/lexers/racket.rb +542 -0
  147. data/lib/rouge/lexers/ruby.rb +415 -0
  148. data/lib/rouge/lexers/rust.rb +191 -0
  149. data/lib/rouge/lexers/sass.rb +74 -0
  150. data/lib/rouge/lexers/sass/common.rb +180 -0
  151. data/lib/rouge/lexers/scala.rb +142 -0
  152. data/lib/rouge/lexers/scheme.rb +112 -0
  153. data/lib/rouge/lexers/scss.rb +34 -0
  154. data/lib/rouge/lexers/sed.rb +170 -0
  155. data/lib/rouge/lexers/shell.rb +152 -0
  156. data/lib/rouge/lexers/slim.rb +228 -0
  157. data/lib/rouge/lexers/smalltalk.rb +116 -0
  158. data/lib/rouge/lexers/sml.rb +347 -0
  159. data/lib/rouge/lexers/sql.rb +140 -0
  160. data/lib/rouge/lexers/swift.rb +144 -0
  161. data/lib/rouge/lexers/tcl.rb +192 -0
  162. data/lib/rouge/lexers/tex.rb +72 -0
  163. data/lib/rouge/lexers/toml.rb +71 -0
  164. data/lib/rouge/lexers/tulip.rb +75 -0
  165. data/lib/rouge/lexers/vb.rb +164 -0
  166. data/lib/rouge/lexers/viml.rb +101 -0
  167. data/lib/rouge/lexers/viml/keywords.rb +12 -0
  168. data/lib/rouge/lexers/xml.rb +59 -0
  169. data/lib/rouge/lexers/yaml.rb +364 -0
  170. data/lib/rouge/plugins/redcarpet.rb +30 -0
  171. data/lib/rouge/regex_lexer.rb +439 -0
  172. data/lib/rouge/template_lexer.rb +22 -0
  173. data/lib/rouge/text_analyzer.rb +48 -0
  174. data/lib/rouge/theme.rb +195 -0
  175. data/lib/rouge/themes/base16.rb +130 -0
  176. data/lib/rouge/themes/colorful.rb +67 -0
  177. data/lib/rouge/themes/github.rb +71 -0
  178. data/lib/rouge/themes/molokai.rb +82 -0
  179. data/lib/rouge/themes/monokai.rb +92 -0
  180. data/lib/rouge/themes/monokai_sublime.rb +90 -0
  181. data/lib/rouge/themes/thankful_eyes.rb +71 -0
  182. data/lib/rouge/token.rb +182 -0
  183. data/lib/rouge/util.rb +101 -0
  184. data/lib/rouge/version.rb +7 -0
  185. metadata +231 -0
@@ -0,0 +1,48 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ class TextAnalyzer < String
5
+ # Find a shebang. Returns nil if no shebang is present.
6
+ def shebang
7
+ return @shebang if instance_variable_defined? :@shebang
8
+
9
+ self =~ /\A\s*#!(.*)$/
10
+ @shebang = $1
11
+ end
12
+
13
+ # Check if the given shebang is present.
14
+ #
15
+ # This normalizes things so that `text.shebang?('bash')` will detect
16
+ # `#!/bash`, '#!/bin/bash', '#!/usr/bin/env bash', and '#!/bin/bash -x'
17
+ def shebang?(match)
18
+ match = /\b#{match}(\s|$)/
19
+ match === shebang
20
+ end
21
+
22
+ # Return the contents of the doctype tag if present, nil otherwise.
23
+ def doctype
24
+ return @doctype if instance_variable_defined? :@doctype
25
+
26
+ self =~ %r(\A\s*
27
+ (?:<\?.*?\?>\s*)? # possible <?xml...?> tag
28
+ <!DOCTYPE\s+(.+?)>
29
+ )xm
30
+ @doctype = $1
31
+ end
32
+
33
+ # Check if the doctype matches a given regexp or string
34
+ def doctype?(type=//)
35
+ type === doctype
36
+ end
37
+
38
+ # Return true if the result of lexing with the given lexer contains no
39
+ # error tokens.
40
+ def lexes_cleanly?(lexer)
41
+ lexer.lex(self) do |(tok, _)|
42
+ return false if tok.name == 'Error'
43
+ end
44
+
45
+ true
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,195 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ class Theme
5
+ include Token::Tokens
6
+
7
+ class Style < Hash
8
+ def initialize(theme, hsh={})
9
+ super()
10
+ @theme = theme
11
+ merge!(hsh)
12
+ end
13
+
14
+ [:fg, :bg].each do |mode|
15
+ define_method mode do
16
+ return self[mode] unless @theme
17
+ @theme.palette(self[mode]) if self[mode]
18
+ end
19
+ end
20
+
21
+ def render(selector, &b)
22
+ return enum_for(:render, selector).to_a.join("\n") unless b
23
+
24
+ return if empty?
25
+
26
+ yield "#{selector} {"
27
+ rendered_rules.each do |rule|
28
+ yield " #{rule};"
29
+ end
30
+ yield "}"
31
+ end
32
+
33
+ def rendered_rules(&b)
34
+ return enum_for(:rendered_rules) unless b
35
+ yield "color: #{fg}" if fg
36
+ yield "background-color: #{bg}" if bg
37
+ yield "font-weight: bold" if self[:bold]
38
+ yield "font-style: italic" if self[:italic]
39
+ yield "text-decoration: underline" if self[:underline]
40
+
41
+ (self[:rules] || []).each(&b)
42
+ end
43
+ end
44
+
45
+ def styles
46
+ @styles ||= self.class.styles.dup
47
+ end
48
+
49
+ @palette = {}
50
+ def self.palette(arg={})
51
+ @palette ||= InheritableHash.new(superclass.palette)
52
+
53
+ if arg.is_a? Hash
54
+ @palette.merge! arg
55
+ @palette
56
+ else
57
+ case arg
58
+ when /#[0-9a-f]+/i
59
+ arg
60
+ else
61
+ @palette[arg] or raise "not in palette: #{arg.inspect}"
62
+ end
63
+ end
64
+ end
65
+
66
+ @styles = {}
67
+ def self.styles
68
+ @styles ||= InheritableHash.new(superclass.styles)
69
+ end
70
+
71
+ def self.render(opts={}, &b)
72
+ new(opts).render(&b)
73
+ end
74
+
75
+ class << self
76
+ def style(*tokens)
77
+ style = tokens.last.is_a?(Hash) ? tokens.pop : {}
78
+
79
+ style = Style.new(self, style)
80
+
81
+ tokens.each do |tok|
82
+ styles[tok] = style
83
+ end
84
+ end
85
+
86
+ def get_own_style(token)
87
+ token.token_chain.each do |anc|
88
+ return styles[anc] if styles[anc]
89
+ end
90
+
91
+ nil
92
+ end
93
+
94
+ def get_style(token)
95
+ get_own_style(token) || base_style
96
+ end
97
+
98
+ def base_style
99
+ styles[Token::Tokens::Text]
100
+ end
101
+
102
+ def name(n=nil)
103
+ return @name if n.nil?
104
+
105
+ @name = n.to_s
106
+ Theme.registry[@name] = self
107
+ end
108
+
109
+ def find(n)
110
+ registry[n.to_s]
111
+ end
112
+
113
+ def registry
114
+ @registry ||= {}
115
+ end
116
+ end
117
+ end
118
+
119
+ module HasModes
120
+ def mode(arg=:absent)
121
+ return @mode if arg == :absent
122
+
123
+ @modes ||= {}
124
+ @modes[arg] ||= get_mode(arg)
125
+ end
126
+
127
+ def get_mode(mode)
128
+ return self if self.mode == mode
129
+
130
+ new_name = "#{self.name}.#{mode}"
131
+ Class.new(self) { name(new_name); mode!(mode) }
132
+ end
133
+
134
+ def mode!(arg)
135
+ @mode = arg
136
+ send("make_#{arg}!")
137
+ end
138
+ end
139
+
140
+ class CSSTheme < Theme
141
+ def initialize(opts={})
142
+ @scope = opts[:scope] || '.highlight'
143
+ end
144
+
145
+ def render(&b)
146
+ return enum_for(:render).to_a.join("\n") unless b
147
+
148
+ # shared styles for tableized line numbers
149
+ yield "#{@scope} table td { padding: 5px; }"
150
+ yield "#{@scope} table pre { margin: 0; }"
151
+
152
+ styles.each do |tok, style|
153
+ style.render(css_selector(tok), &b)
154
+ end
155
+ end
156
+
157
+ def render_base(selector, &b)
158
+ self.class.base_style.render(selector, &b)
159
+ end
160
+
161
+ def style_for(tok)
162
+ self.class.get_style(tok)
163
+ end
164
+
165
+ private
166
+ def css_selector(token)
167
+ inflate_token(token).map do |tok|
168
+ raise "unknown token: #{tok.inspect}" if tok.shortname.nil?
169
+
170
+ single_css_selector(tok)
171
+ end.join(', ')
172
+ end
173
+
174
+ def single_css_selector(token)
175
+ return @scope if token == Text
176
+
177
+ "#{@scope} .#{token.shortname}"
178
+ end
179
+
180
+ # yield all of the tokens that should be styled the same
181
+ # as the given token. Essentially this recursively all of
182
+ # the subtokens, except those which are more specifically
183
+ # styled.
184
+ def inflate_token(tok, &b)
185
+ return enum_for(:inflate_token, tok) unless block_given?
186
+
187
+ yield tok
188
+ tok.sub_tokens.each do |(_, st)|
189
+ next if styles[st]
190
+
191
+ inflate_token(st, &b)
192
+ end
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,130 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ # default base16 theme
6
+ # by Chris Kempson (http://chriskempson.com)
7
+ class Base16 < CSSTheme
8
+ name 'base16'
9
+
10
+ palette base00: "#151515"
11
+ palette base01: "#202020"
12
+ palette base02: "#303030"
13
+ palette base03: "#505050"
14
+ palette base04: "#b0b0b0"
15
+ palette base05: "#d0d0d0"
16
+ palette base06: "#e0e0e0"
17
+ palette base07: "#f5f5f5"
18
+ palette base08: "#ac4142"
19
+ palette base09: "#d28445"
20
+ palette base0A: "#f4bf75"
21
+ palette base0B: "#90a959"
22
+ palette base0C: "#75b5aa"
23
+ palette base0D: "#6a9fb5"
24
+ palette base0E: "#aa759f"
25
+ palette base0F: "#8f5536"
26
+
27
+ extend HasModes
28
+
29
+ def self.light!
30
+ mode :dark # indicate that there is a dark variant
31
+ mode! :light
32
+ end
33
+
34
+ def self.dark!
35
+ mode :light # indicate that there is a light variant
36
+ mode! :dark
37
+ end
38
+
39
+ def self.make_dark!
40
+ style Text, :fg => :base05, :bg => :base00
41
+ end
42
+
43
+ def self.make_light!
44
+ style Text, :fg => :base02
45
+ end
46
+
47
+ light!
48
+
49
+ style Error, :fg => :base00, :bg => :base08
50
+ style Comment, :fg => :base03
51
+
52
+ style Comment::Preproc,
53
+ Name::Tag, :fg => :base0A
54
+
55
+ style Operator,
56
+ Punctuation, :fg => :base05
57
+
58
+ style Generic::Inserted, :fg => :base0B
59
+ style Generic::Deleted, :fg => :base08
60
+ style Generic::Heading, :fg => :base0D, :bg => :base00, :bold => true
61
+
62
+ style Keyword, :fg => :base0E
63
+ style Keyword::Constant,
64
+ Keyword::Type, :fg => :base09
65
+
66
+ style Keyword::Declaration, :fg => :base09
67
+
68
+ style Literal::String, :fg => :base0B
69
+ style Literal::String::Regex, :fg => :base0C
70
+
71
+ style Literal::String::Interpol,
72
+ Literal::String::Escape, :fg => :base0F
73
+
74
+ style Name::Namespace,
75
+ Name::Class,
76
+ Name::Constant, :fg => :base0A
77
+
78
+ style Name::Attribute, :fg => :base0D
79
+
80
+ style Literal::Number,
81
+ Literal::String::Symbol, :fg => :base0B
82
+
83
+ class Solarized < Base16
84
+ name 'base16.solarized'
85
+ light!
86
+ # author "Ethan Schoonover (http://ethanschoonover.com/solarized)"
87
+
88
+ palette base00: "#002b36"
89
+ palette base01: "#073642"
90
+ palette base02: "#586e75"
91
+ palette base03: "#657b83"
92
+ palette base04: "#839496"
93
+ palette base05: "#93a1a1"
94
+ palette base06: "#eee8d5"
95
+ palette base07: "#fdf6e3"
96
+ palette base08: "#dc322f"
97
+ palette base09: "#cb4b16"
98
+ palette base0A: "#b58900"
99
+ palette base0B: "#859900"
100
+ palette base0C: "#2aa198"
101
+ palette base0D: "#268bd2"
102
+ palette base0E: "#6c71c4"
103
+ palette base0F: "#d33682"
104
+ end
105
+
106
+ class Monokai < Base16
107
+ name 'base16.monokai'
108
+ dark!
109
+
110
+ # author "Wimer Hazenberg (http://www.monokai.nl)"
111
+ palette base00: "#272822"
112
+ palette base01: "#383830"
113
+ palette base02: "#49483e"
114
+ palette base03: "#75715e"
115
+ palette base04: "#a59f85"
116
+ palette base05: "#f8f8f2"
117
+ palette base06: "#f5f4f1"
118
+ palette base07: "#f9f8f5"
119
+ palette base08: "#f92672"
120
+ palette base09: "#fd971f"
121
+ palette base0A: "#f4bf75"
122
+ palette base0B: "#a6e22e"
123
+ palette base0C: "#a1efe4"
124
+ palette base0D: "#66d9ef"
125
+ palette base0E: "#ae81ff"
126
+ palette base0F: "#cc6633"
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,67 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ # stolen from pygments
6
+ class Colorful < CSSTheme
7
+ name 'colorful'
8
+
9
+ style Text, :fg => "#bbbbbb", :bg => '#000'
10
+
11
+ style Comment, :fg => "#888"
12
+ style Comment::Preproc, :fg => "#579"
13
+ style Comment::Special, :fg => "#cc0000", :bold => true
14
+
15
+ style Keyword, :fg => "#080", :bold => true
16
+ style Keyword::Pseudo, :fg => "#038"
17
+ style Keyword::Type, :fg => "#339"
18
+
19
+ style Operator, :fg => "#333"
20
+ style Operator::Word, :fg => "#000", :bold => true
21
+
22
+ style Name::Builtin, :fg => "#007020"
23
+ style Name::Function, :fg => "#06B", :bold => true
24
+ style Name::Class, :fg => "#B06", :bold => true
25
+ style Name::Namespace, :fg => "#0e84b5", :bold => true
26
+ style Name::Exception, :fg => "#F00", :bold => true
27
+ style Name::Variable, :fg => "#963"
28
+ style Name::Variable::Instance, :fg => "#33B"
29
+ style Name::Variable::Class, :fg => "#369"
30
+ style Name::Variable::Global, :fg => "#d70", :bold => true
31
+ style Name::Constant, :fg => "#036", :bold => true
32
+ style Name::Label, :fg => "#970", :bold => true
33
+ style Name::Entity, :fg => "#800", :bold => true
34
+ style Name::Attribute, :fg => "#00C"
35
+ style Name::Tag, :fg => "#070"
36
+ style Name::Decorator, :fg => "#555", :bold => true
37
+
38
+ style Literal::String, :bg => "#fff0f0"
39
+ style Literal::String::Char, :fg => "#04D"
40
+ style Literal::String::Doc, :fg => "#D42"
41
+ style Literal::String::Interpol, :bg => "#eee"
42
+ style Literal::String::Escape, :fg => "#666", :bold => true
43
+ style Literal::String::Regex, :fg => "#000", :bg => "#fff0ff"
44
+ style Literal::String::Symbol, :fg => "#A60"
45
+ style Literal::String::Other, :fg => "#D20"
46
+
47
+ style Literal::Number, :fg => "#60E", :bold => true
48
+ style Literal::Number::Integer, :fg => "#00D", :bold => true
49
+ style Literal::Number::Float, :fg => "#60E", :bold => true
50
+ style Literal::Number::Hex, :fg => "#058", :bold => true
51
+ style Literal::Number::Oct, :fg => "#40E", :bold => true
52
+
53
+ style Generic::Heading, :fg => "#000080", :bold => true
54
+ style Generic::Subheading, :fg => "#800080", :bold => true
55
+ style Generic::Deleted, :fg => "#A00000"
56
+ style Generic::Inserted, :fg => "#00A000"
57
+ style Generic::Error, :fg => "#FF0000"
58
+ style Generic::Emph, :italic => true
59
+ style Generic::Strong, :bold => true
60
+ style Generic::Prompt, :fg => "#c65d09", :bold => true
61
+ style Generic::Output, :fg => "#888"
62
+ style Generic::Traceback, :fg => "#04D"
63
+
64
+ style Error, :fg => "#F00", :bg => "#FAA"
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,71 @@
1
+ # -*- coding: utf-8 -*- #
2
+
3
+ module Rouge
4
+ module Themes
5
+ class Github < CSSTheme
6
+ name 'github'
7
+
8
+ style Comment::Multiline, :fg => '#999988', :italic => true
9
+ style Comment::Preproc, :fg => '#999999', :bold => true
10
+ style Comment::Single, :fg => '#999988', :italic => true
11
+ style Comment::Special, :fg => '#999999', :italic => true, :bold => true
12
+ style Comment, :fg => '#999988', :italic => true
13
+ style Error, :fg => '#a61717', :bg => '#e3d2d2'
14
+ style Generic::Deleted, :fg => '#000000', :bg => '#ffdddd'
15
+ style Generic::Emph, :fg => '#000000', :italic => true
16
+ style Generic::Error, :fg => '#aa0000'
17
+ style Generic::Heading, :fg => '#999999'
18
+ style Generic::Inserted, :fg => '#000000', :bg => '#ddffdd'
19
+ style Generic::Output, :fg => '#888888'
20
+ style Generic::Prompt, :fg => '#555555'
21
+ style Generic::Strong, :bold => true
22
+ style Generic::Subheading, :fg => '#aaaaaa'
23
+ style Generic::Traceback, :fg => '#aa0000'
24
+ style Keyword::Constant, :fg => '#000000', :bold => true
25
+ style Keyword::Declaration, :fg => '#000000', :bold => true
26
+ style Keyword::Namespace, :fg => '#000000', :bold => true
27
+ style Keyword::Pseudo, :fg => '#000000', :bold => true
28
+ style Keyword::Reserved, :fg => '#000000', :bold => true
29
+ style Keyword::Type, :fg => '#445588', :bold => true
30
+ style Keyword, :fg => '#000000', :bold => true
31
+ style Literal::Number::Float, :fg => '#009999'
32
+ style Literal::Number::Hex, :fg => '#009999'
33
+ style Literal::Number::Integer::Long, :fg => '#009999'
34
+ style Literal::Number::Integer, :fg => '#009999'
35
+ style Literal::Number::Oct, :fg => '#009999'
36
+ style Literal::Number, :fg => '#009999'
37
+ style Literal::String::Backtick, :fg => '#d14'
38
+ style Literal::String::Char, :fg => '#d14'
39
+ style Literal::String::Doc, :fg => '#d14'
40
+ style Literal::String::Double, :fg => '#d14'
41
+ style Literal::String::Escape, :fg => '#d14'
42
+ style Literal::String::Heredoc, :fg => '#d14'
43
+ style Literal::String::Interpol, :fg => '#d14'
44
+ style Literal::String::Other, :fg => '#d14'
45
+ style Literal::String::Regex, :fg => '#009926'
46
+ style Literal::String::Single, :fg => '#d14'
47
+ style Literal::String::Symbol, :fg => '#990073'
48
+ style Literal::String, :fg => '#d14'
49
+ style Name::Attribute, :fg => '#008080'
50
+ style Name::Builtin::Pseudo, :fg => '#999999'
51
+ style Name::Builtin, :fg => '#0086B3'
52
+ style Name::Class, :fg => '#445588', :bold => true
53
+ style Name::Constant, :fg => '#008080'
54
+ style Name::Decorator, :fg => '#3c5d5d', :bold => true
55
+ style Name::Entity, :fg => '#800080'
56
+ style Name::Exception, :fg => '#990000', :bold => true
57
+ style Name::Function, :fg => '#990000', :bold => true
58
+ style Name::Label, :fg => '#990000', :bold => true
59
+ style Name::Namespace, :fg => '#555555'
60
+ style Name::Tag, :fg => '#000080'
61
+ style Name::Variable::Class, :fg => '#008080'
62
+ style Name::Variable::Global, :fg => '#008080'
63
+ style Name::Variable::Instance, :fg => '#008080'
64
+ style Name::Variable, :fg => '#008080'
65
+ style Operator::Word, :fg => '#000000', :bold => true
66
+ style Operator, :fg => '#000000', :bold => true
67
+ style Text::Whitespace, :fg => '#bbbbbb'
68
+ style Text, :bg => '#f8f8f8'
69
+ end
70
+ end
71
+ end