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.
- 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
|