gitlab-rouge 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +23 -0
- data/LICENSE +186 -0
- data/bin/rougify +16 -0
- data/gitlab-rouge.gemspec +17 -0
- data/lib/rouge.rb +57 -0
- data/lib/rouge/cli.rb +363 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/coffeescript +5 -0
- data/lib/rouge/demos/common_lisp +1 -0
- data/lib/rouge/demos/conf +4 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/erb +1 -0
- data/lib/rouge/demos/erlang +7 -0
- data/lib/rouge/demos/factor +5 -0
- data/lib/rouge/demos/gherkin +17 -0
- data/lib/rouge/demos/glsl +14 -0
- data/lib/rouge/demos/go +7 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/haml +5 -0
- data/lib/rouge/demos/handlebars +7 -0
- data/lib/rouge/demos/haskell +6 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/liquid +11 -0
- data/lib/rouge/demos/literate_coffeescript +3 -0
- data/lib/rouge/demos/literate_haskell +7 -0
- data/lib/rouge/demos/llvm +20 -0
- data/lib/rouge/demos/lua +12 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/objective_c +14 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/perl +5 -0
- data/lib/rouge/demos/php +3 -0
- data/lib/rouge/demos/plaintext +1 -0
- data/lib/rouge/demos/powershell +49 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/qml +9 -0
- data/lib/rouge/demos/r +8 -0
- data/lib/rouge/demos/racket +24 -0
- data/lib/rouge/demos/ruby +9 -0
- data/lib/rouge/demos/rust +12 -0
- data/lib/rouge/demos/sass +3 -0
- data/lib/rouge/demos/scala +3 -0
- data/lib/rouge/demos/scheme +4 -0
- data/lib/rouge/demos/scss +5 -0
- data/lib/rouge/demos/sed +4 -0
- data/lib/rouge/demos/shell +2 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tulip +14 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/viml +5 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +50 -0
- data/lib/rouge/formatters/html.rb +117 -0
- data/lib/rouge/formatters/null.rb +19 -0
- data/lib/rouge/formatters/terminal256.rb +176 -0
- data/lib/rouge/lexer.rb +443 -0
- data/lib/rouge/lexers/apache.rb +68 -0
- data/lib/rouge/lexers/apache/keywords.yml +453 -0
- data/lib/rouge/lexers/apple_script.rb +367 -0
- data/lib/rouge/lexers/c.rb +212 -0
- data/lib/rouge/lexers/clojure.rb +112 -0
- data/lib/rouge/lexers/coffeescript.rb +174 -0
- data/lib/rouge/lexers/common_lisp.rb +345 -0
- data/lib/rouge/lexers/conf.rb +24 -0
- data/lib/rouge/lexers/cpp.rb +66 -0
- data/lib/rouge/lexers/csharp.rb +88 -0
- data/lib/rouge/lexers/css.rb +271 -0
- data/lib/rouge/lexers/dart.rb +104 -0
- data/lib/rouge/lexers/diff.rb +31 -0
- data/lib/rouge/lexers/elixir.rb +108 -0
- data/lib/rouge/lexers/erb.rb +56 -0
- data/lib/rouge/lexers/erlang.rb +118 -0
- data/lib/rouge/lexers/factor.rb +302 -0
- data/lib/rouge/lexers/gherkin.rb +137 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +14 -0
- data/lib/rouge/lexers/glsl.rb +135 -0
- data/lib/rouge/lexers/go.rb +178 -0
- data/lib/rouge/lexers/groovy.rb +104 -0
- data/lib/rouge/lexers/haml.rb +228 -0
- data/lib/rouge/lexers/handlebars.rb +79 -0
- data/lib/rouge/lexers/haskell.rb +183 -0
- data/lib/rouge/lexers/html.rb +94 -0
- data/lib/rouge/lexers/http.rb +80 -0
- data/lib/rouge/lexers/ini.rb +57 -0
- data/lib/rouge/lexers/io.rb +68 -0
- data/lib/rouge/lexers/java.rb +76 -0
- data/lib/rouge/lexers/javascript.rb +297 -0
- data/lib/rouge/lexers/liquid.rb +287 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +33 -0
- data/lib/rouge/lexers/literate_haskell.rb +36 -0
- data/lib/rouge/lexers/llvm.rb +84 -0
- data/lib/rouge/lexers/lua.rb +122 -0
- data/lib/rouge/lexers/lua/builtins.rb +22 -0
- data/lib/rouge/lexers/make.rb +116 -0
- data/lib/rouge/lexers/markdown.rb +154 -0
- data/lib/rouge/lexers/matlab.rb +74 -0
- data/lib/rouge/lexers/matlab/builtins.rb +11 -0
- data/lib/rouge/lexers/moonscript.rb +110 -0
- data/lib/rouge/lexers/nginx.rb +71 -0
- data/lib/rouge/lexers/nim.rb +152 -0
- data/lib/rouge/lexers/objective_c.rb +197 -0
- data/lib/rouge/lexers/ocaml.rb +111 -0
- data/lib/rouge/lexers/perl.rb +197 -0
- data/lib/rouge/lexers/php.rb +173 -0
- data/lib/rouge/lexers/php/builtins.rb +204 -0
- data/lib/rouge/lexers/plain_text.rb +25 -0
- data/lib/rouge/lexers/powershell.rb +96 -0
- data/lib/rouge/lexers/prolog.rb +64 -0
- data/lib/rouge/lexers/properties.rb +55 -0
- data/lib/rouge/lexers/puppet.rb +128 -0
- data/lib/rouge/lexers/python.rb +228 -0
- data/lib/rouge/lexers/qml.rb +72 -0
- data/lib/rouge/lexers/r.rb +56 -0
- data/lib/rouge/lexers/racket.rb +542 -0
- data/lib/rouge/lexers/ruby.rb +415 -0
- data/lib/rouge/lexers/rust.rb +191 -0
- data/lib/rouge/lexers/sass.rb +74 -0
- data/lib/rouge/lexers/sass/common.rb +180 -0
- data/lib/rouge/lexers/scala.rb +142 -0
- data/lib/rouge/lexers/scheme.rb +112 -0
- data/lib/rouge/lexers/scss.rb +34 -0
- data/lib/rouge/lexers/sed.rb +170 -0
- data/lib/rouge/lexers/shell.rb +152 -0
- data/lib/rouge/lexers/slim.rb +228 -0
- data/lib/rouge/lexers/smalltalk.rb +116 -0
- data/lib/rouge/lexers/sml.rb +347 -0
- data/lib/rouge/lexers/sql.rb +140 -0
- data/lib/rouge/lexers/swift.rb +144 -0
- data/lib/rouge/lexers/tcl.rb +192 -0
- data/lib/rouge/lexers/tex.rb +72 -0
- data/lib/rouge/lexers/toml.rb +71 -0
- data/lib/rouge/lexers/tulip.rb +75 -0
- data/lib/rouge/lexers/vb.rb +164 -0
- data/lib/rouge/lexers/viml.rb +101 -0
- data/lib/rouge/lexers/viml/keywords.rb +12 -0
- data/lib/rouge/lexers/xml.rb +59 -0
- data/lib/rouge/lexers/yaml.rb +364 -0
- data/lib/rouge/plugins/redcarpet.rb +30 -0
- data/lib/rouge/regex_lexer.rb +439 -0
- data/lib/rouge/template_lexer.rb +22 -0
- data/lib/rouge/text_analyzer.rb +48 -0
- data/lib/rouge/theme.rb +195 -0
- data/lib/rouge/themes/base16.rb +130 -0
- data/lib/rouge/themes/colorful.rb +67 -0
- data/lib/rouge/themes/github.rb +71 -0
- data/lib/rouge/themes/molokai.rb +82 -0
- data/lib/rouge/themes/monokai.rb +92 -0
- data/lib/rouge/themes/monokai_sublime.rb +90 -0
- data/lib/rouge/themes/thankful_eyes.rb +71 -0
- data/lib/rouge/token.rb +182 -0
- data/lib/rouge/util.rb +101 -0
- data/lib/rouge/version.rb +7 -0
- 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
|
data/lib/rouge/theme.rb
ADDED
@@ -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
|