rouge-alda 3.3.0
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 +28 -0
- data/LICENSE +186 -0
- data/bin/rougify +18 -0
- data/lib/rouge/cli.rb +432 -0
- data/lib/rouge/demos/abap +6 -0
- data/lib/rouge/demos/actionscript +4 -0
- data/lib/rouge/demos/alda +10 -0
- data/lib/rouge/demos/apache +21 -0
- data/lib/rouge/demos/apiblueprint +33 -0
- data/lib/rouge/demos/applescript +2 -0
- data/lib/rouge/demos/awk +4 -0
- data/lib/rouge/demos/biml +38 -0
- data/lib/rouge/demos/bsl +7 -0
- data/lib/rouge/demos/c +8 -0
- data/lib/rouge/demos/ceylon +7 -0
- data/lib/rouge/demos/cfscript +18 -0
- data/lib/rouge/demos/clojure +5 -0
- data/lib/rouge/demos/cmake +7 -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/console +6 -0
- data/lib/rouge/demos/coq +13 -0
- data/lib/rouge/demos/cpp +8 -0
- data/lib/rouge/demos/crystal +45 -0
- data/lib/rouge/demos/csharp +5 -0
- data/lib/rouge/demos/css +4 -0
- data/lib/rouge/demos/d +16 -0
- data/lib/rouge/demos/dart +6 -0
- data/lib/rouge/demos/diff +7 -0
- data/lib/rouge/demos/digdag +19 -0
- data/lib/rouge/demos/docker +9 -0
- data/lib/rouge/demos/dot +5 -0
- data/lib/rouge/demos/eiffel +30 -0
- data/lib/rouge/demos/elixir +1 -0
- data/lib/rouge/demos/elm +4 -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/fortran +22 -0
- data/lib/rouge/demos/fsharp +12 -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/gradle +10 -0
- data/lib/rouge/demos/graphql +17 -0
- data/lib/rouge/demos/groovy +9 -0
- data/lib/rouge/demos/hack +5 -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/hcl +7 -0
- data/lib/rouge/demos/html +8 -0
- data/lib/rouge/demos/http +14 -0
- data/lib/rouge/demos/hylang +10 -0
- data/lib/rouge/demos/idlang +8 -0
- data/lib/rouge/demos/igorpro +9 -0
- data/lib/rouge/demos/ini +4 -0
- data/lib/rouge/demos/io +11 -0
- data/lib/rouge/demos/irb +4 -0
- data/lib/rouge/demos/irb_output +2 -0
- data/lib/rouge/demos/java +5 -0
- data/lib/rouge/demos/javascript +1 -0
- data/lib/rouge/demos/jinja +9 -0
- data/lib/rouge/demos/json +1 -0
- data/lib/rouge/demos/json-doc +1 -0
- data/lib/rouge/demos/jsonnet +28 -0
- data/lib/rouge/demos/jsp +29 -0
- data/lib/rouge/demos/jsx +17 -0
- data/lib/rouge/demos/julia +11 -0
- data/lib/rouge/demos/kotlin +3 -0
- data/lib/rouge/demos/lasso +12 -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/m68k +16 -0
- data/lib/rouge/demos/make +6 -0
- data/lib/rouge/demos/markdown +4 -0
- data/lib/rouge/demos/mathematica +8 -0
- data/lib/rouge/demos/matlab +6 -0
- data/lib/rouge/demos/moonscript +16 -0
- data/lib/rouge/demos/mosel +10 -0
- data/lib/rouge/demos/mxml +22 -0
- data/lib/rouge/demos/nasm +26 -0
- data/lib/rouge/demos/nginx +5 -0
- data/lib/rouge/demos/nim +27 -0
- data/lib/rouge/demos/nix +19 -0
- data/lib/rouge/demos/objective_c +18 -0
- data/lib/rouge/demos/ocaml +12 -0
- data/lib/rouge/demos/pascal +14 -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/plist +142 -0
- data/lib/rouge/demos/pony +17 -0
- data/lib/rouge/demos/powershell +49 -0
- data/lib/rouge/demos/praat +26 -0
- data/lib/rouge/demos/prolog +9 -0
- data/lib/rouge/demos/prometheus +9 -0
- data/lib/rouge/demos/properties +7 -0
- data/lib/rouge/demos/protobuf +5 -0
- data/lib/rouge/demos/puppet +6 -0
- data/lib/rouge/demos/python +6 -0
- data/lib/rouge/demos/q +2 -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/sieve +10 -0
- data/lib/rouge/demos/slim +17 -0
- data/lib/rouge/demos/smalltalk +6 -0
- data/lib/rouge/demos/smarty +12 -0
- data/lib/rouge/demos/sml +4 -0
- data/lib/rouge/demos/sqf +14 -0
- data/lib/rouge/demos/sql +1 -0
- data/lib/rouge/demos/swift +5 -0
- data/lib/rouge/demos/tap +5 -0
- data/lib/rouge/demos/tcl +1 -0
- data/lib/rouge/demos/terraform +31 -0
- data/lib/rouge/demos/tex +1 -0
- data/lib/rouge/demos/toml +9 -0
- data/lib/rouge/demos/tsx +17 -0
- data/lib/rouge/demos/tulip +13 -0
- data/lib/rouge/demos/turtle +26 -0
- data/lib/rouge/demos/twig +9 -0
- data/lib/rouge/demos/typescript +1 -0
- data/lib/rouge/demos/vala +8 -0
- data/lib/rouge/demos/vb +4 -0
- data/lib/rouge/demos/verilog +27 -0
- data/lib/rouge/demos/vhdl +23 -0
- data/lib/rouge/demos/viml +14 -0
- data/lib/rouge/demos/vue +11 -0
- data/lib/rouge/demos/wollok +11 -0
- data/lib/rouge/demos/xml +2 -0
- data/lib/rouge/demos/yaml +4 -0
- data/lib/rouge/formatter.rb +76 -0
- data/lib/rouge/formatters/html.rb +38 -0
- data/lib/rouge/formatters/html_inline.rb +31 -0
- data/lib/rouge/formatters/html_legacy.rb +45 -0
- data/lib/rouge/formatters/html_linewise.rb +28 -0
- data/lib/rouge/formatters/html_pygments.rb +18 -0
- data/lib/rouge/formatters/html_table.rb +62 -0
- data/lib/rouge/formatters/null.rb +20 -0
- data/lib/rouge/formatters/terminal256.rb +181 -0
- data/lib/rouge/guesser.rb +57 -0
- data/lib/rouge/guessers/disambiguation.rb +106 -0
- data/lib/rouge/guessers/filename.rb +27 -0
- data/lib/rouge/guessers/glob_mapping.rb +45 -0
- data/lib/rouge/guessers/mimetype.rb +16 -0
- data/lib/rouge/guessers/modeline.rb +46 -0
- data/lib/rouge/guessers/source.rb +31 -0
- data/lib/rouge/guessers/util.rb +34 -0
- data/lib/rouge/lexer.rb +462 -0
- data/lib/rouge/lexers/abap.rb +240 -0
- data/lib/rouge/lexers/actionscript.rb +196 -0
- data/lib/rouge/lexers/alda.rb +43 -0
- data/lib/rouge/lexers/apache/keywords.yml +764 -0
- data/lib/rouge/lexers/apache.rb +73 -0
- data/lib/rouge/lexers/apiblueprint.rb +49 -0
- data/lib/rouge/lexers/apple_script.rb +369 -0
- data/lib/rouge/lexers/awk.rb +162 -0
- data/lib/rouge/lexers/biml.rb +43 -0
- data/lib/rouge/lexers/bsl.rb +82 -0
- data/lib/rouge/lexers/c.rb +213 -0
- data/lib/rouge/lexers/ceylon.rb +124 -0
- data/lib/rouge/lexers/cfscript.rb +154 -0
- data/lib/rouge/lexers/clojure.rb +113 -0
- data/lib/rouge/lexers/cmake.rb +207 -0
- data/lib/rouge/lexers/coffeescript.rb +175 -0
- data/lib/rouge/lexers/common_lisp.rb +346 -0
- data/lib/rouge/lexers/conf.rb +25 -0
- data/lib/rouge/lexers/console.rb +137 -0
- data/lib/rouge/lexers/coq.rb +188 -0
- data/lib/rouge/lexers/cpp.rb +79 -0
- data/lib/rouge/lexers/crystal.rb +430 -0
- data/lib/rouge/lexers/csharp.rb +115 -0
- data/lib/rouge/lexers/css.rb +274 -0
- data/lib/rouge/lexers/d.rb +177 -0
- data/lib/rouge/lexers/dart.rb +105 -0
- data/lib/rouge/lexers/diff.rb +33 -0
- data/lib/rouge/lexers/digdag.rb +70 -0
- data/lib/rouge/lexers/docker.rb +51 -0
- data/lib/rouge/lexers/dot.rb +69 -0
- data/lib/rouge/lexers/eiffel.rb +66 -0
- data/lib/rouge/lexers/elixir.rb +134 -0
- data/lib/rouge/lexers/elm.rb +90 -0
- data/lib/rouge/lexers/erb.rb +53 -0
- data/lib/rouge/lexers/erlang.rb +115 -0
- data/lib/rouge/lexers/factor.rb +303 -0
- data/lib/rouge/lexers/fortran.rb +178 -0
- data/lib/rouge/lexers/fsharp.rb +119 -0
- data/lib/rouge/lexers/gherkin/keywords.rb +16 -0
- data/lib/rouge/lexers/gherkin.rb +138 -0
- data/lib/rouge/lexers/glsl.rb +136 -0
- data/lib/rouge/lexers/go.rb +175 -0
- data/lib/rouge/lexers/gradle.rb +38 -0
- data/lib/rouge/lexers/graphql.rb +254 -0
- data/lib/rouge/lexers/groovy.rb +113 -0
- data/lib/rouge/lexers/hack.rb +49 -0
- data/lib/rouge/lexers/haml.rb +230 -0
- data/lib/rouge/lexers/handlebars.rb +80 -0
- data/lib/rouge/lexers/haskell.rb +198 -0
- data/lib/rouge/lexers/hcl.rb +163 -0
- data/lib/rouge/lexers/html.rb +140 -0
- data/lib/rouge/lexers/http.rb +81 -0
- data/lib/rouge/lexers/hylang.rb +94 -0
- data/lib/rouge/lexers/idlang.rb +312 -0
- data/lib/rouge/lexers/igorpro.rb +664 -0
- data/lib/rouge/lexers/ini.rb +54 -0
- data/lib/rouge/lexers/io.rb +69 -0
- data/lib/rouge/lexers/irb.rb +67 -0
- data/lib/rouge/lexers/java.rb +88 -0
- data/lib/rouge/lexers/javascript.rb +283 -0
- data/lib/rouge/lexers/jinja.rb +138 -0
- data/lib/rouge/lexers/json.rb +30 -0
- data/lib/rouge/lexers/json_doc.rb +24 -0
- data/lib/rouge/lexers/jsonnet.rb +152 -0
- data/lib/rouge/lexers/jsp.rb +120 -0
- data/lib/rouge/lexers/jsx.rb +104 -0
- data/lib/rouge/lexers/julia.rb +167 -0
- data/lib/rouge/lexers/kotlin.rb +127 -0
- data/lib/rouge/lexers/lasso/keywords.yml +446 -0
- data/lib/rouge/lexers/lasso.rb +215 -0
- data/lib/rouge/lexers/liquid.rb +288 -0
- data/lib/rouge/lexers/literate_coffeescript.rb +34 -0
- data/lib/rouge/lexers/literate_haskell.rb +37 -0
- data/lib/rouge/lexers/llvm.rb +81 -0
- data/lib/rouge/lexers/lua/builtins.rb +24 -0
- data/lib/rouge/lexers/lua.rb +126 -0
- data/lib/rouge/lexers/m68k.rb +144 -0
- data/lib/rouge/lexers/make.rb +113 -0
- data/lib/rouge/lexers/markdown.rb +155 -0
- data/lib/rouge/lexers/mathematica/builtins.rb +13 -0
- data/lib/rouge/lexers/mathematica.rb +96 -0
- data/lib/rouge/lexers/matlab/builtins.rb +13 -0
- data/lib/rouge/lexers/matlab.rb +72 -0
- data/lib/rouge/lexers/moonscript.rb +115 -0
- data/lib/rouge/lexers/mosel.rb +232 -0
- data/lib/rouge/lexers/mxml.rb +69 -0
- data/lib/rouge/lexers/nasm.rb +199 -0
- data/lib/rouge/lexers/nginx.rb +72 -0
- data/lib/rouge/lexers/nim.rb +153 -0
- data/lib/rouge/lexers/nix.rb +211 -0
- data/lib/rouge/lexers/objective_c.rb +195 -0
- data/lib/rouge/lexers/ocaml.rb +101 -0
- data/lib/rouge/lexers/pascal.rb +67 -0
- data/lib/rouge/lexers/perl.rb +201 -0
- data/lib/rouge/lexers/php/builtins.rb +196 -0
- data/lib/rouge/lexers/php.rb +194 -0
- data/lib/rouge/lexers/plain_text.rb +27 -0
- data/lib/rouge/lexers/plist.rb +47 -0
- data/lib/rouge/lexers/pony.rb +94 -0
- data/lib/rouge/lexers/powershell.rb +679 -0
- data/lib/rouge/lexers/praat.rb +351 -0
- data/lib/rouge/lexers/prolog.rb +61 -0
- data/lib/rouge/lexers/prometheus.rb +123 -0
- data/lib/rouge/lexers/properties.rb +52 -0
- data/lib/rouge/lexers/protobuf.rb +71 -0
- data/lib/rouge/lexers/puppet.rb +129 -0
- data/lib/rouge/lexers/python.rb +247 -0
- data/lib/rouge/lexers/q.rb +125 -0
- data/lib/rouge/lexers/qml.rb +74 -0
- data/lib/rouge/lexers/r.rb +90 -0
- data/lib/rouge/lexers/racket.rb +545 -0
- data/lib/rouge/lexers/ruby.rb +439 -0
- data/lib/rouge/lexers/rust.rb +198 -0
- data/lib/rouge/lexers/sass/common.rb +181 -0
- data/lib/rouge/lexers/sass.rb +75 -0
- data/lib/rouge/lexers/scala.rb +143 -0
- data/lib/rouge/lexers/scheme.rb +113 -0
- data/lib/rouge/lexers/scss.rb +35 -0
- data/lib/rouge/lexers/sed.rb +173 -0
- data/lib/rouge/lexers/shell.rb +190 -0
- data/lib/rouge/lexers/sieve.rb +97 -0
- data/lib/rouge/lexers/slim.rb +229 -0
- data/lib/rouge/lexers/smalltalk.rb +117 -0
- data/lib/rouge/lexers/smarty.rb +81 -0
- data/lib/rouge/lexers/sml.rb +345 -0
- data/lib/rouge/lexers/sqf/commands.rb +15 -0
- data/lib/rouge/lexers/sqf.rb +109 -0
- data/lib/rouge/lexers/sql.rb +141 -0
- data/lib/rouge/lexers/swift.rb +182 -0
- data/lib/rouge/lexers/tap.rb +89 -0
- data/lib/rouge/lexers/tcl.rb +193 -0
- data/lib/rouge/lexers/terraform.rb +105 -0
- data/lib/rouge/lexers/tex.rb +70 -0
- data/lib/rouge/lexers/toml.rb +68 -0
- data/lib/rouge/lexers/tsx.rb +20 -0
- data/lib/rouge/lexers/tulip.rb +108 -0
- data/lib/rouge/lexers/turtle.rb +64 -0
- data/lib/rouge/lexers/twig.rb +40 -0
- data/lib/rouge/lexers/typescript/common.rb +34 -0
- data/lib/rouge/lexers/typescript.rb +23 -0
- data/lib/rouge/lexers/vala.rb +78 -0
- data/lib/rouge/lexers/vb.rb +165 -0
- data/lib/rouge/lexers/verilog.rb +165 -0
- data/lib/rouge/lexers/vhdl.rb +98 -0
- data/lib/rouge/lexers/viml/keywords.rb +14 -0
- data/lib/rouge/lexers/viml.rb +102 -0
- data/lib/rouge/lexers/vue.rb +124 -0
- data/lib/rouge/lexers/wollok.rb +104 -0
- data/lib/rouge/lexers/xml.rb +58 -0
- data/lib/rouge/lexers/yaml.rb +374 -0
- data/lib/rouge/plugins/redcarpet.rb +31 -0
- data/lib/rouge/regex_lexer.rb +442 -0
- data/lib/rouge/template_lexer.rb +21 -0
- data/lib/rouge/text_analyzer.rb +50 -0
- data/lib/rouge/theme.rb +214 -0
- data/lib/rouge/themes/base16.rb +131 -0
- data/lib/rouge/themes/colorful.rb +68 -0
- data/lib/rouge/themes/github.rb +72 -0
- data/lib/rouge/themes/gruvbox.rb +168 -0
- data/lib/rouge/themes/igor_pro.rb +21 -0
- data/lib/rouge/themes/molokai.rb +83 -0
- data/lib/rouge/themes/monokai.rb +93 -0
- data/lib/rouge/themes/monokai_sublime.rb +92 -0
- data/lib/rouge/themes/pastie.rb +70 -0
- data/lib/rouge/themes/thankful_eyes.rb +75 -0
- data/lib/rouge/themes/tulip.rb +70 -0
- data/lib/rouge/token.rb +183 -0
- data/lib/rouge/util.rb +102 -0
- data/lib/rouge/version.rb +8 -0
- data/lib/rouge.rb +84 -0
- data/rouge.gemspec +25 -0
- metadata +384 -0
data/lib/rouge/theme.rb
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
class Theme
|
|
6
|
+
include Token::Tokens
|
|
7
|
+
|
|
8
|
+
class Style < Hash
|
|
9
|
+
def initialize(theme, hsh={})
|
|
10
|
+
super()
|
|
11
|
+
@theme = theme
|
|
12
|
+
merge!(hsh)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
[:fg, :bg].each do |mode|
|
|
16
|
+
define_method mode do
|
|
17
|
+
return self[mode] unless @theme
|
|
18
|
+
@theme.palette(self[mode]) if self[mode]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def render(selector, &b)
|
|
23
|
+
return enum_for(:render, selector).to_a.join("\n") unless b
|
|
24
|
+
|
|
25
|
+
return if empty?
|
|
26
|
+
|
|
27
|
+
yield "#{selector} {"
|
|
28
|
+
rendered_rules.each do |rule|
|
|
29
|
+
yield " #{rule};"
|
|
30
|
+
end
|
|
31
|
+
yield "}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def rendered_rules(&b)
|
|
35
|
+
return enum_for(:rendered_rules) unless b
|
|
36
|
+
yield "color: #{fg}" if fg
|
|
37
|
+
yield "background-color: #{bg}" if bg
|
|
38
|
+
yield "font-weight: bold" if self[:bold]
|
|
39
|
+
yield "font-style: italic" if self[:italic]
|
|
40
|
+
yield "text-decoration: underline" if self[:underline]
|
|
41
|
+
|
|
42
|
+
(self[:rules] || []).each(&b)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def styles
|
|
47
|
+
@styles ||= self.class.styles.dup
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
@palette = {}
|
|
51
|
+
def self.palette(arg={})
|
|
52
|
+
@palette ||= InheritableHash.new(superclass.palette)
|
|
53
|
+
|
|
54
|
+
if arg.is_a? Hash
|
|
55
|
+
@palette.merge! arg
|
|
56
|
+
@palette
|
|
57
|
+
else
|
|
58
|
+
case arg
|
|
59
|
+
when /#[0-9a-f]+/i
|
|
60
|
+
arg
|
|
61
|
+
else
|
|
62
|
+
@palette[arg] or raise "not in palette: #{arg.inspect}"
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def palette(*a) self.class.palette(*a) end
|
|
68
|
+
|
|
69
|
+
@styles = {}
|
|
70
|
+
def self.styles
|
|
71
|
+
@styles ||= InheritableHash.new(superclass.styles)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def self.render(opts={}, &b)
|
|
75
|
+
new(opts).render(&b)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def get_own_style(token)
|
|
79
|
+
self.class.get_own_style(token)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def get_style(token)
|
|
83
|
+
self.class.get_style(token)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
class << self
|
|
87
|
+
def style(*tokens)
|
|
88
|
+
style = tokens.last.is_a?(Hash) ? tokens.pop : {}
|
|
89
|
+
|
|
90
|
+
tokens.each do |tok|
|
|
91
|
+
styles[tok] = style
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def get_own_style(token)
|
|
96
|
+
token.token_chain.reverse_each do |anc|
|
|
97
|
+
return Style.new(self, styles[anc]) if styles[anc]
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
nil
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def get_style(token)
|
|
104
|
+
get_own_style(token) || base_style
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def base_style
|
|
108
|
+
get_own_style(Token::Tokens::Text)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def name(n=nil)
|
|
112
|
+
return @name if n.nil?
|
|
113
|
+
|
|
114
|
+
@name = n.to_s
|
|
115
|
+
register(@name)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def register(name)
|
|
119
|
+
Theme.registry[name.to_s] = self
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def find(n)
|
|
123
|
+
registry[n.to_s]
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def registry
|
|
127
|
+
@registry ||= {}
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
module HasModes
|
|
133
|
+
def mode(arg=:absent)
|
|
134
|
+
return @mode if arg == :absent
|
|
135
|
+
|
|
136
|
+
@modes ||= {}
|
|
137
|
+
@modes[arg] ||= get_mode(arg)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def get_mode(mode)
|
|
141
|
+
return self if self.mode == mode
|
|
142
|
+
|
|
143
|
+
new_name = "#{self.name}.#{mode}"
|
|
144
|
+
Class.new(self) { name(new_name); set_mode!(mode) }
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def set_mode!(mode)
|
|
148
|
+
@mode = mode
|
|
149
|
+
send("make_#{mode}!")
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def mode!(arg)
|
|
153
|
+
alt_name = "#{self.name}.#{arg}"
|
|
154
|
+
register(alt_name)
|
|
155
|
+
set_mode!(arg)
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
class CSSTheme < Theme
|
|
160
|
+
def initialize(opts={})
|
|
161
|
+
@scope = opts[:scope] || '.highlight'
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def render(&b)
|
|
165
|
+
return enum_for(:render).to_a.join("\n") unless b
|
|
166
|
+
|
|
167
|
+
# shared styles for tableized line numbers
|
|
168
|
+
yield "#{@scope} table td { padding: 5px; }"
|
|
169
|
+
yield "#{@scope} table pre { margin: 0; }"
|
|
170
|
+
|
|
171
|
+
styles.each do |tok, style|
|
|
172
|
+
Style.new(self, style).render(css_selector(tok), &b)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def render_base(selector, &b)
|
|
177
|
+
self.class.base_style.render(selector, &b)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def style_for(tok)
|
|
181
|
+
self.class.get_style(tok)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
private
|
|
185
|
+
def css_selector(token)
|
|
186
|
+
inflate_token(token).map do |tok|
|
|
187
|
+
raise "unknown token: #{tok.inspect}" if tok.shortname.nil?
|
|
188
|
+
|
|
189
|
+
single_css_selector(tok)
|
|
190
|
+
end.join(', ')
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
def single_css_selector(token)
|
|
194
|
+
return @scope if token == Text
|
|
195
|
+
|
|
196
|
+
"#{@scope} .#{token.shortname}"
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# yield all of the tokens that should be styled the same
|
|
200
|
+
# as the given token. Essentially this recursively all of
|
|
201
|
+
# the subtokens, except those which are more specifically
|
|
202
|
+
# styled.
|
|
203
|
+
def inflate_token(tok, &b)
|
|
204
|
+
return enum_for(:inflate_token, tok) unless block_given?
|
|
205
|
+
|
|
206
|
+
yield tok
|
|
207
|
+
tok.sub_tokens.each do |(_, st)|
|
|
208
|
+
next if styles[st]
|
|
209
|
+
|
|
210
|
+
inflate_token(st, &b)
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Themes
|
|
6
|
+
# default base16 theme
|
|
7
|
+
# by Chris Kempson (http://chriskempson.com)
|
|
8
|
+
class Base16 < CSSTheme
|
|
9
|
+
name 'base16'
|
|
10
|
+
|
|
11
|
+
palette base00: "#151515"
|
|
12
|
+
palette base01: "#202020"
|
|
13
|
+
palette base02: "#303030"
|
|
14
|
+
palette base03: "#505050"
|
|
15
|
+
palette base04: "#b0b0b0"
|
|
16
|
+
palette base05: "#d0d0d0"
|
|
17
|
+
palette base06: "#e0e0e0"
|
|
18
|
+
palette base07: "#f5f5f5"
|
|
19
|
+
palette base08: "#ac4142"
|
|
20
|
+
palette base09: "#d28445"
|
|
21
|
+
palette base0A: "#f4bf75"
|
|
22
|
+
palette base0B: "#90a959"
|
|
23
|
+
palette base0C: "#75b5aa"
|
|
24
|
+
palette base0D: "#6a9fb5"
|
|
25
|
+
palette base0E: "#aa759f"
|
|
26
|
+
palette base0F: "#8f5536"
|
|
27
|
+
|
|
28
|
+
extend HasModes
|
|
29
|
+
|
|
30
|
+
def self.light!
|
|
31
|
+
mode :dark # indicate that there is a dark variant
|
|
32
|
+
mode! :light
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.dark!
|
|
36
|
+
mode :light # indicate that there is a light variant
|
|
37
|
+
mode! :dark
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.make_dark!
|
|
41
|
+
style Text, :fg => :base05, :bg => :base00
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.make_light!
|
|
45
|
+
style Text, :fg => :base02
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
light!
|
|
49
|
+
|
|
50
|
+
style Error, :fg => :base00, :bg => :base08
|
|
51
|
+
style Comment, :fg => :base03
|
|
52
|
+
|
|
53
|
+
style Comment::Preproc,
|
|
54
|
+
Name::Tag, :fg => :base0A
|
|
55
|
+
|
|
56
|
+
style Operator,
|
|
57
|
+
Punctuation, :fg => :base05
|
|
58
|
+
|
|
59
|
+
style Generic::Inserted, :fg => :base0B
|
|
60
|
+
style Generic::Deleted, :fg => :base08
|
|
61
|
+
style Generic::Heading, :fg => :base0D, :bg => :base00, :bold => true
|
|
62
|
+
|
|
63
|
+
style Keyword, :fg => :base0E
|
|
64
|
+
style Keyword::Constant,
|
|
65
|
+
Keyword::Type, :fg => :base09
|
|
66
|
+
|
|
67
|
+
style Keyword::Declaration, :fg => :base09
|
|
68
|
+
|
|
69
|
+
style Literal::String, :fg => :base0B
|
|
70
|
+
style Literal::String::Regex, :fg => :base0C
|
|
71
|
+
|
|
72
|
+
style Literal::String::Interpol,
|
|
73
|
+
Literal::String::Escape, :fg => :base0F
|
|
74
|
+
|
|
75
|
+
style Name::Namespace,
|
|
76
|
+
Name::Class,
|
|
77
|
+
Name::Constant, :fg => :base0A
|
|
78
|
+
|
|
79
|
+
style Name::Attribute, :fg => :base0D
|
|
80
|
+
|
|
81
|
+
style Literal::Number,
|
|
82
|
+
Literal::String::Symbol, :fg => :base0B
|
|
83
|
+
|
|
84
|
+
class Solarized < Base16
|
|
85
|
+
name 'base16.solarized'
|
|
86
|
+
light!
|
|
87
|
+
# author "Ethan Schoonover (http://ethanschoonover.com/solarized)"
|
|
88
|
+
|
|
89
|
+
palette base00: "#002b36"
|
|
90
|
+
palette base01: "#073642"
|
|
91
|
+
palette base02: "#586e75"
|
|
92
|
+
palette base03: "#657b83"
|
|
93
|
+
palette base04: "#839496"
|
|
94
|
+
palette base05: "#93a1a1"
|
|
95
|
+
palette base06: "#eee8d5"
|
|
96
|
+
palette base07: "#fdf6e3"
|
|
97
|
+
palette base08: "#dc322f"
|
|
98
|
+
palette base09: "#cb4b16"
|
|
99
|
+
palette base0A: "#b58900"
|
|
100
|
+
palette base0B: "#859900"
|
|
101
|
+
palette base0C: "#2aa198"
|
|
102
|
+
palette base0D: "#268bd2"
|
|
103
|
+
palette base0E: "#6c71c4"
|
|
104
|
+
palette base0F: "#d33682"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
class Monokai < Base16
|
|
108
|
+
name 'base16.monokai'
|
|
109
|
+
dark!
|
|
110
|
+
|
|
111
|
+
# author "Wimer Hazenberg (http://www.monokai.nl)"
|
|
112
|
+
palette base00: "#272822"
|
|
113
|
+
palette base01: "#383830"
|
|
114
|
+
palette base02: "#49483e"
|
|
115
|
+
palette base03: "#75715e"
|
|
116
|
+
palette base04: "#a59f85"
|
|
117
|
+
palette base05: "#f8f8f2"
|
|
118
|
+
palette base06: "#f5f4f1"
|
|
119
|
+
palette base07: "#f9f8f5"
|
|
120
|
+
palette base08: "#f92672"
|
|
121
|
+
palette base09: "#fd971f"
|
|
122
|
+
palette base0A: "#f4bf75"
|
|
123
|
+
palette base0B: "#a6e22e"
|
|
124
|
+
palette base0C: "#a1efe4"
|
|
125
|
+
palette base0D: "#66d9ef"
|
|
126
|
+
palette base0E: "#ae81ff"
|
|
127
|
+
palette base0F: "#cc6633"
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Themes
|
|
6
|
+
# stolen from pygments
|
|
7
|
+
class Colorful < CSSTheme
|
|
8
|
+
name 'colorful'
|
|
9
|
+
|
|
10
|
+
style Text, :fg => "#bbbbbb", :bg => '#000'
|
|
11
|
+
|
|
12
|
+
style Comment, :fg => "#888"
|
|
13
|
+
style Comment::Preproc, :fg => "#579"
|
|
14
|
+
style Comment::Special, :fg => "#cc0000", :bold => true
|
|
15
|
+
|
|
16
|
+
style Keyword, :fg => "#080", :bold => true
|
|
17
|
+
style Keyword::Pseudo, :fg => "#038"
|
|
18
|
+
style Keyword::Type, :fg => "#339"
|
|
19
|
+
|
|
20
|
+
style Operator, :fg => "#333"
|
|
21
|
+
style Operator::Word, :fg => "#000", :bold => true
|
|
22
|
+
|
|
23
|
+
style Name::Builtin, :fg => "#007020"
|
|
24
|
+
style Name::Function, :fg => "#06B", :bold => true
|
|
25
|
+
style Name::Class, :fg => "#B06", :bold => true
|
|
26
|
+
style Name::Namespace, :fg => "#0e84b5", :bold => true
|
|
27
|
+
style Name::Exception, :fg => "#F00", :bold => true
|
|
28
|
+
style Name::Variable, :fg => "#963"
|
|
29
|
+
style Name::Variable::Instance, :fg => "#33B"
|
|
30
|
+
style Name::Variable::Class, :fg => "#369"
|
|
31
|
+
style Name::Variable::Global, :fg => "#d70", :bold => true
|
|
32
|
+
style Name::Constant, :fg => "#036", :bold => true
|
|
33
|
+
style Name::Label, :fg => "#970", :bold => true
|
|
34
|
+
style Name::Entity, :fg => "#800", :bold => true
|
|
35
|
+
style Name::Attribute, :fg => "#00C"
|
|
36
|
+
style Name::Tag, :fg => "#070"
|
|
37
|
+
style Name::Decorator, :fg => "#555", :bold => true
|
|
38
|
+
|
|
39
|
+
style Literal::String, :bg => "#fff0f0"
|
|
40
|
+
style Literal::String::Char, :fg => "#04D"
|
|
41
|
+
style Literal::String::Doc, :fg => "#D42"
|
|
42
|
+
style Literal::String::Interpol, :bg => "#eee"
|
|
43
|
+
style Literal::String::Escape, :fg => "#666", :bold => true
|
|
44
|
+
style Literal::String::Regex, :fg => "#000", :bg => "#fff0ff"
|
|
45
|
+
style Literal::String::Symbol, :fg => "#A60"
|
|
46
|
+
style Literal::String::Other, :fg => "#D20"
|
|
47
|
+
|
|
48
|
+
style Literal::Number, :fg => "#60E", :bold => true
|
|
49
|
+
style Literal::Number::Integer, :fg => "#00D", :bold => true
|
|
50
|
+
style Literal::Number::Float, :fg => "#60E", :bold => true
|
|
51
|
+
style Literal::Number::Hex, :fg => "#058", :bold => true
|
|
52
|
+
style Literal::Number::Oct, :fg => "#40E", :bold => true
|
|
53
|
+
|
|
54
|
+
style Generic::Heading, :fg => "#000080", :bold => true
|
|
55
|
+
style Generic::Subheading, :fg => "#800080", :bold => true
|
|
56
|
+
style Generic::Deleted, :fg => "#A00000"
|
|
57
|
+
style Generic::Inserted, :fg => "#00A000"
|
|
58
|
+
style Generic::Error, :fg => "#FF0000"
|
|
59
|
+
style Generic::Emph, :italic => true
|
|
60
|
+
style Generic::Strong, :bold => true
|
|
61
|
+
style Generic::Prompt, :fg => "#c65d09", :bold => true
|
|
62
|
+
style Generic::Output, :fg => "#888"
|
|
63
|
+
style Generic::Traceback, :fg => "#04D"
|
|
64
|
+
|
|
65
|
+
style Error, :fg => "#F00", :bg => "#FAA"
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Themes
|
|
6
|
+
class Github < CSSTheme
|
|
7
|
+
name 'github'
|
|
8
|
+
|
|
9
|
+
style Comment::Multiline, :fg => '#999988', :italic => true
|
|
10
|
+
style Comment::Preproc, :fg => '#999999', :bold => true
|
|
11
|
+
style Comment::Single, :fg => '#999988', :italic => true
|
|
12
|
+
style Comment::Special, :fg => '#999999', :italic => true, :bold => true
|
|
13
|
+
style Comment, :fg => '#999988', :italic => true
|
|
14
|
+
style Error, :fg => '#a61717', :bg => '#e3d2d2'
|
|
15
|
+
style Generic::Deleted, :fg => '#000000', :bg => '#ffdddd'
|
|
16
|
+
style Generic::Emph, :fg => '#000000', :italic => true
|
|
17
|
+
style Generic::Error, :fg => '#aa0000'
|
|
18
|
+
style Generic::Heading, :fg => '#999999'
|
|
19
|
+
style Generic::Inserted, :fg => '#000000', :bg => '#ddffdd'
|
|
20
|
+
style Generic::Output, :fg => '#888888'
|
|
21
|
+
style Generic::Prompt, :fg => '#555555'
|
|
22
|
+
style Generic::Strong, :bold => true
|
|
23
|
+
style Generic::Subheading, :fg => '#aaaaaa'
|
|
24
|
+
style Generic::Traceback, :fg => '#aa0000'
|
|
25
|
+
style Keyword::Constant, :fg => '#000000', :bold => true
|
|
26
|
+
style Keyword::Declaration, :fg => '#000000', :bold => true
|
|
27
|
+
style Keyword::Namespace, :fg => '#000000', :bold => true
|
|
28
|
+
style Keyword::Pseudo, :fg => '#000000', :bold => true
|
|
29
|
+
style Keyword::Reserved, :fg => '#000000', :bold => true
|
|
30
|
+
style Keyword::Type, :fg => '#445588', :bold => true
|
|
31
|
+
style Keyword, :fg => '#000000', :bold => true
|
|
32
|
+
style Literal::Number::Float, :fg => '#009999'
|
|
33
|
+
style Literal::Number::Hex, :fg => '#009999'
|
|
34
|
+
style Literal::Number::Integer::Long, :fg => '#009999'
|
|
35
|
+
style Literal::Number::Integer, :fg => '#009999'
|
|
36
|
+
style Literal::Number::Oct, :fg => '#009999'
|
|
37
|
+
style Literal::Number, :fg => '#009999'
|
|
38
|
+
style Literal::String::Backtick, :fg => '#d14'
|
|
39
|
+
style Literal::String::Char, :fg => '#d14'
|
|
40
|
+
style Literal::String::Doc, :fg => '#d14'
|
|
41
|
+
style Literal::String::Double, :fg => '#d14'
|
|
42
|
+
style Literal::String::Escape, :fg => '#d14'
|
|
43
|
+
style Literal::String::Heredoc, :fg => '#d14'
|
|
44
|
+
style Literal::String::Interpol, :fg => '#d14'
|
|
45
|
+
style Literal::String::Other, :fg => '#d14'
|
|
46
|
+
style Literal::String::Regex, :fg => '#009926'
|
|
47
|
+
style Literal::String::Single, :fg => '#d14'
|
|
48
|
+
style Literal::String::Symbol, :fg => '#990073'
|
|
49
|
+
style Literal::String, :fg => '#d14'
|
|
50
|
+
style Name::Attribute, :fg => '#008080'
|
|
51
|
+
style Name::Builtin::Pseudo, :fg => '#999999'
|
|
52
|
+
style Name::Builtin, :fg => '#0086B3'
|
|
53
|
+
style Name::Class, :fg => '#445588', :bold => true
|
|
54
|
+
style Name::Constant, :fg => '#008080'
|
|
55
|
+
style Name::Decorator, :fg => '#3c5d5d', :bold => true
|
|
56
|
+
style Name::Entity, :fg => '#800080'
|
|
57
|
+
style Name::Exception, :fg => '#990000', :bold => true
|
|
58
|
+
style Name::Function, :fg => '#990000', :bold => true
|
|
59
|
+
style Name::Label, :fg => '#990000', :bold => true
|
|
60
|
+
style Name::Namespace, :fg => '#555555'
|
|
61
|
+
style Name::Tag, :fg => '#000080'
|
|
62
|
+
style Name::Variable::Class, :fg => '#008080'
|
|
63
|
+
style Name::Variable::Global, :fg => '#008080'
|
|
64
|
+
style Name::Variable::Instance, :fg => '#008080'
|
|
65
|
+
style Name::Variable, :fg => '#008080'
|
|
66
|
+
style Operator::Word, :fg => '#000000', :bold => true
|
|
67
|
+
style Operator, :fg => '#000000', :bold => true
|
|
68
|
+
style Text::Whitespace, :fg => '#bbbbbb'
|
|
69
|
+
style Text, :bg => '#f8f8f8'
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# TODO how are we going to handle soft/hard contrast?
|
|
5
|
+
|
|
6
|
+
module Rouge
|
|
7
|
+
module Themes
|
|
8
|
+
# Based on https://github.com/morhetz/gruvbox, with help from
|
|
9
|
+
# https://github.com/daveyarwood/gruvbox-pygments
|
|
10
|
+
class Gruvbox < CSSTheme
|
|
11
|
+
name 'gruvbox'
|
|
12
|
+
|
|
13
|
+
# global Gruvbox colours {{{
|
|
14
|
+
C_dark0_hard = '#1d2021'
|
|
15
|
+
C_dark0 ='#282828'
|
|
16
|
+
C_dark0_soft = '#32302f'
|
|
17
|
+
C_dark1 = '#3c3836'
|
|
18
|
+
C_dark2 = '#504945'
|
|
19
|
+
C_dark3 = '#665c54'
|
|
20
|
+
C_dark4 = '#7c6f64'
|
|
21
|
+
C_dark4_256 = '#7c6f64'
|
|
22
|
+
|
|
23
|
+
C_gray_245 = '#928374'
|
|
24
|
+
C_gray_244 = '#928374'
|
|
25
|
+
|
|
26
|
+
C_light0_hard = '#f9f5d7'
|
|
27
|
+
C_light0 = '#fbf1c7'
|
|
28
|
+
C_light0_soft = '#f2e5bc'
|
|
29
|
+
C_light1 = '#ebdbb2'
|
|
30
|
+
C_light2 = '#d5c4a1'
|
|
31
|
+
C_light3 = '#bdae93'
|
|
32
|
+
C_light4 = '#a89984'
|
|
33
|
+
C_light4_256 = '#a89984'
|
|
34
|
+
|
|
35
|
+
C_bright_red = '#fb4934'
|
|
36
|
+
C_bright_green = '#b8bb26'
|
|
37
|
+
C_bright_yellow = '#fabd2f'
|
|
38
|
+
C_bright_blue = '#83a598'
|
|
39
|
+
C_bright_purple = '#d3869b'
|
|
40
|
+
C_bright_aqua = '#8ec07c'
|
|
41
|
+
C_bright_orange = '#fe8019'
|
|
42
|
+
|
|
43
|
+
C_neutral_red = '#cc241d'
|
|
44
|
+
C_neutral_green = '#98971a'
|
|
45
|
+
C_neutral_yellow = '#d79921'
|
|
46
|
+
C_neutral_blue = '#458588'
|
|
47
|
+
C_neutral_purple = '#b16286'
|
|
48
|
+
C_neutral_aqua = '#689d6a'
|
|
49
|
+
C_neutral_orange = '#d65d0e'
|
|
50
|
+
|
|
51
|
+
C_faded_red = '#9d0006'
|
|
52
|
+
C_faded_green = '#79740e'
|
|
53
|
+
C_faded_yellow = '#b57614'
|
|
54
|
+
C_faded_blue = '#076678'
|
|
55
|
+
C_faded_purple = '#8f3f71'
|
|
56
|
+
C_faded_aqua = '#427b58'
|
|
57
|
+
C_faded_orange = '#af3a03'
|
|
58
|
+
# }}}
|
|
59
|
+
|
|
60
|
+
extend HasModes
|
|
61
|
+
|
|
62
|
+
def self.light!
|
|
63
|
+
mode :dark # indicate that there is a dark variant
|
|
64
|
+
mode! :light
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def self.dark!
|
|
68
|
+
mode :light # indicate that there is a light variant
|
|
69
|
+
mode! :dark
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def self.make_dark!
|
|
73
|
+
palette bg0: C_dark0
|
|
74
|
+
palette bg1: C_dark1
|
|
75
|
+
palette bg2: C_dark2
|
|
76
|
+
palette bg3: C_dark3
|
|
77
|
+
palette bg4: C_dark4
|
|
78
|
+
|
|
79
|
+
palette gray: C_gray_245
|
|
80
|
+
|
|
81
|
+
palette fg0: C_light0
|
|
82
|
+
palette fg1: C_light1
|
|
83
|
+
palette fg2: C_light2
|
|
84
|
+
palette fg3: C_light3
|
|
85
|
+
palette fg4: C_light4
|
|
86
|
+
|
|
87
|
+
palette fg4_256: C_light4_256
|
|
88
|
+
|
|
89
|
+
palette red: C_bright_red
|
|
90
|
+
palette green: C_bright_green
|
|
91
|
+
palette yellow: C_bright_yellow
|
|
92
|
+
palette blue: C_bright_blue
|
|
93
|
+
palette purple: C_bright_purple
|
|
94
|
+
palette aqua: C_bright_aqua
|
|
95
|
+
palette orange: C_bright_orange
|
|
96
|
+
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def self.make_light!
|
|
100
|
+
palette bg0: C_light0
|
|
101
|
+
palette bg1: C_light1
|
|
102
|
+
palette bg2: C_light2
|
|
103
|
+
palette bg3: C_light3
|
|
104
|
+
palette bg4: C_light4
|
|
105
|
+
|
|
106
|
+
palette gray: C_gray_244
|
|
107
|
+
|
|
108
|
+
palette fg0: C_dark0
|
|
109
|
+
palette fg1: C_dark1
|
|
110
|
+
palette fg2: C_dark2
|
|
111
|
+
palette fg3: C_dark3
|
|
112
|
+
palette fg4: C_dark4
|
|
113
|
+
|
|
114
|
+
palette fg4_256: C_dark4_256
|
|
115
|
+
|
|
116
|
+
palette red: C_faded_red
|
|
117
|
+
palette green: C_faded_green
|
|
118
|
+
palette yellow: C_faded_yellow
|
|
119
|
+
palette blue: C_faded_blue
|
|
120
|
+
palette purple: C_faded_purple
|
|
121
|
+
palette aqua: C_faded_aqua
|
|
122
|
+
palette orange: C_faded_orange
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
dark!
|
|
126
|
+
mode :light
|
|
127
|
+
|
|
128
|
+
style Text, :fg => :fg0, :bg => :bg0
|
|
129
|
+
style Error, :fg => :red, :bg => :bg0, :bold => true
|
|
130
|
+
style Comment, :fg => :gray, :italic => true
|
|
131
|
+
|
|
132
|
+
style Comment::Preproc, :fg => :aqua
|
|
133
|
+
|
|
134
|
+
style Name::Tag, :fg => :red
|
|
135
|
+
|
|
136
|
+
style Operator,
|
|
137
|
+
Punctuation, :fg => :fg0
|
|
138
|
+
|
|
139
|
+
style Generic::Inserted, :fg => :green, :bg => :bg0
|
|
140
|
+
style Generic::Deleted, :fg => :red, :bg => :bg0
|
|
141
|
+
style Generic::Heading, :fg => :green, :bold => true
|
|
142
|
+
|
|
143
|
+
style Keyword, :fg => :red
|
|
144
|
+
style Keyword::Constant, :fg => :purple
|
|
145
|
+
style Keyword::Type, :fg => :yellow
|
|
146
|
+
|
|
147
|
+
style Keyword::Declaration, :fg => :orange
|
|
148
|
+
|
|
149
|
+
style Literal::String,
|
|
150
|
+
Literal::String::Interpol,
|
|
151
|
+
Literal::String::Regex, :fg => :green, :italic => true
|
|
152
|
+
|
|
153
|
+
style Literal::String::Escape, :fg => :orange
|
|
154
|
+
|
|
155
|
+
style Name::Namespace,
|
|
156
|
+
Name::Class, :fg => :aqua
|
|
157
|
+
|
|
158
|
+
style Name::Constant, :fg => :purple
|
|
159
|
+
|
|
160
|
+
style Name::Attribute, :fg => :green
|
|
161
|
+
|
|
162
|
+
style Literal::Number, :fg => :purple
|
|
163
|
+
|
|
164
|
+
style Literal::String::Symbol, :fg => :blue
|
|
165
|
+
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*- #
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
module Rouge
|
|
5
|
+
module Themes
|
|
6
|
+
class IgorPro < CSSTheme
|
|
7
|
+
name 'igorpro'
|
|
8
|
+
|
|
9
|
+
style Text, :fg => '#444444'
|
|
10
|
+
style Comment::Preproc, :fg => '#CC00A3'
|
|
11
|
+
style Comment::Special, :fg => '#CC00A3'
|
|
12
|
+
style Comment, :fg => '#FF0000'
|
|
13
|
+
style Keyword::Constant, :fg => '#C34E00'
|
|
14
|
+
style Keyword::Declaration, :fg => '#0000FF'
|
|
15
|
+
style Keyword::Reserved, :fg => '#007575'
|
|
16
|
+
style Keyword, :fg => '#0000FF'
|
|
17
|
+
style Literal::String, :fg => '#009C00'
|
|
18
|
+
style Name::Builtin, :fg => '#C34E00'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|