cabbage_doc 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cabbage_doc.rb +2 -0
- data/lib/cabbage_doc/action.rb +14 -3
- data/lib/cabbage_doc/authentication.rb +8 -2
- data/lib/cabbage_doc/configuration.rb +10 -1
- data/lib/cabbage_doc/controller.rb +41 -9
- data/lib/cabbage_doc/version.rb +1 -1
- data/lib/cabbage_doc/web_helper.rb +8 -0
- data/web/public/css/application.css +16 -1
- data/web/views/action.haml +1 -0
- data/web/views/controller.haml +4 -1
- data/web/views/documentation.haml +2 -1
- metadata +2 -41
- data/web/public/css/highlight/atelier-cave-dark.css +0 -83
- data/web/public/css/highlight/atelier-cave-light.css +0 -85
- data/web/public/css/highlight/atelier-dune-dark.css +0 -69
- data/web/public/css/highlight/atelier-dune-light.css +0 -69
- data/web/public/css/highlight/atelier-estuary-dark.css +0 -84
- data/web/public/css/highlight/atelier-estuary-light.css +0 -84
- data/web/public/css/highlight/atelier-forest-dark.css +0 -69
- data/web/public/css/highlight/atelier-forest-light.css +0 -69
- data/web/public/css/highlight/atelier-heath-dark.css +0 -69
- data/web/public/css/highlight/atelier-heath-light.css +0 -69
- data/web/public/css/highlight/atelier-lakeside-dark.css +0 -69
- data/web/public/css/highlight/atelier-lakeside-light.css +0 -69
- data/web/public/css/highlight/atelier-plateau-dark.css +0 -84
- data/web/public/css/highlight/atelier-plateau-light.css +0 -84
- data/web/public/css/highlight/atelier-savanna-dark.css +0 -84
- data/web/public/css/highlight/atelier-savanna-light.css +0 -84
- data/web/public/css/highlight/atelier-seaside-dark.css +0 -69
- data/web/public/css/highlight/atelier-seaside-light.css +0 -69
- data/web/public/css/highlight/atelier-sulphurpool-dark.css +0 -69
- data/web/public/css/highlight/atelier-sulphurpool-light.css +0 -69
- data/web/public/css/highlight/brown-paper.css +0 -64
- data/web/public/css/highlight/color-brewer.css +0 -71
- data/web/public/css/highlight/dark.css +0 -63
- data/web/public/css/highlight/far.css +0 -71
- data/web/public/css/highlight/gruvbox-dark.css +0 -108
- data/web/public/css/highlight/gruvbox-light.css +0 -108
- data/web/public/css/highlight/hopscotch.css +0 -83
- data/web/public/css/highlight/kimbie.dark.css +0 -74
- data/web/public/css/highlight/kimbie.light.css +0 -74
- data/web/public/css/highlight/ocean.css +0 -74
- data/web/public/css/highlight/paraiso-dark.css +0 -72
- data/web/public/css/highlight/paraiso-light.css +0 -72
- data/web/public/css/highlight/pojoaque.css +0 -83
- data/web/public/css/highlight/tomorrow-night-blue.css +0 -75
- data/web/public/css/highlight/tomorrow-night-bright.css +0 -74
- data/web/public/css/highlight/tomorrow-night-eighties.css +0 -74
- data/web/public/css/highlight/tomorrow-night.css +0 -75
- data/web/public/css/highlight/tomorrow.css +0 -72
- data/web/public/css/highlight/xt256.css +0 -92
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f917cf99ef4214b287c6714f7e6d71d1a3f69b04
|
4
|
+
data.tar.gz: aba8fdad553277c3bfed0c2554ea3179a9f3c9d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f080b355f30ac79ec7fc630f5179876fda59ae6e872c76ce120e19723f17da0e91ab074f5fc8d7f9d898f934d4aa14987a54077744d8fe27c6fd25545b19222
|
7
|
+
data.tar.gz: 3da078b0c834baa3c8b0158166cb75f9029939c1782207a1f17857400d32fe56ee6e9df839482e1c70e8d877623174c3a70619beaabbdf9a43d223ef46afb3a1
|
data/lib/cabbage_doc.rb
CHANGED
data/lib/cabbage_doc/action.rb
CHANGED
@@ -5,11 +5,12 @@ module CabbageDoc
|
|
5
5
|
METHODS = %w(GET POST PUT DELETE).freeze
|
6
6
|
METHODS_REGEXP = METHODS.join('|').freeze
|
7
7
|
|
8
|
-
attr_reader :label, :name, :description, :path, :method, :parameters, :examples
|
8
|
+
attr_reader :label, :name, :description, :path, :method, :parameters, :examples, :visibility
|
9
9
|
|
10
10
|
def initialize
|
11
11
|
@parameters = []
|
12
12
|
@examples = []
|
13
|
+
@visibility = VISIBILITY.first
|
13
14
|
end
|
14
15
|
|
15
16
|
def parse(text)
|
@@ -19,6 +20,7 @@ module CabbageDoc
|
|
19
20
|
@name = parse_name(text)
|
20
21
|
@label = parse_label(text)
|
21
22
|
@description = parse_description(text)
|
23
|
+
@visibility = parse_visibility(text)
|
22
24
|
|
23
25
|
@parameters, @examples = parse_parameters_and_examples(text)
|
24
26
|
|
@@ -74,13 +76,22 @@ module CabbageDoc
|
|
74
76
|
end
|
75
77
|
|
76
78
|
def parse_label(text)
|
77
|
-
m = text.match(/#\s*
|
78
|
-
m[
|
79
|
+
m = text.match(/#\s*(#{VISIBILITY_REGEXP}):(.*?)$/)
|
80
|
+
m[2].strip if m
|
79
81
|
end
|
80
82
|
|
81
83
|
def parse_description(text)
|
82
84
|
m = text.match(/#\s*Description:(.*?)$/)
|
83
85
|
m[1].strip if m
|
84
86
|
end
|
87
|
+
|
88
|
+
def parse_visibility(text)
|
89
|
+
m = text.match(/#\s*(#{VISIBILITY_REGEXP}):(.*?)$/)
|
90
|
+
if m
|
91
|
+
m[1].strip.downcase.to_sym
|
92
|
+
else
|
93
|
+
VISIBILITY.first
|
94
|
+
end
|
95
|
+
end
|
85
96
|
end
|
86
97
|
end
|
@@ -20,7 +20,8 @@ module CabbageDoc
|
|
20
20
|
:path,
|
21
21
|
:user_agent,
|
22
22
|
:configurable,
|
23
|
-
:verbose
|
23
|
+
:verbose,
|
24
|
+
:visibility
|
24
25
|
|
25
26
|
def initialize
|
26
27
|
Configuration.instance.tap do |config|
|
@@ -28,14 +29,19 @@ module CabbageDoc
|
|
28
29
|
@scheme = config.scheme
|
29
30
|
@path = config.path
|
30
31
|
@user_agent = config.title
|
32
|
+
@verbose = config.verbose
|
33
|
+
@visibility = config.visibility.dup
|
31
34
|
end
|
32
35
|
|
33
|
-
@verbose = false
|
34
36
|
@subdomains = []
|
35
37
|
@configurable = []
|
36
38
|
@type = :basic
|
37
39
|
end
|
38
40
|
|
41
|
+
def visibility=(value)
|
42
|
+
@visibility = Array(value)
|
43
|
+
end
|
44
|
+
|
39
45
|
def uri
|
40
46
|
if path && path != '/'
|
41
47
|
"#{root_uri}/#{path}"
|
@@ -8,12 +8,13 @@ module CabbageDoc
|
|
8
8
|
scheme: 'https',
|
9
9
|
verbose: false,
|
10
10
|
dev: false,
|
11
|
+
visibility: [VISIBILITY.first],
|
11
12
|
cache: Cache.new,
|
12
13
|
request: proc { |request| request.perform },
|
13
14
|
theme: 'github'
|
14
15
|
}.freeze
|
15
16
|
|
16
|
-
OPTIONAL_ATTRIBUTES = %i(welcome path scheme title verbose authentication dev request cache theme).freeze
|
17
|
+
OPTIONAL_ATTRIBUTES = %i(welcome path scheme title verbose authentication dev request cache theme visibility).freeze
|
17
18
|
REQUIRED_ATTRIBUTES = %i(domain controllers root).freeze
|
18
19
|
ATTRIBUTES = (OPTIONAL_ATTRIBUTES + REQUIRED_ATTRIBUTES).freeze
|
19
20
|
CALLABLE_ATTRIBUTES = %i(controllers authentication request).freeze
|
@@ -30,6 +31,7 @@ module CabbageDoc
|
|
30
31
|
validate_required!
|
31
32
|
validate_callable!
|
32
33
|
validate_root!
|
34
|
+
validate_visibility!
|
33
35
|
end
|
34
36
|
|
35
37
|
private
|
@@ -51,5 +53,12 @@ module CabbageDoc
|
|
51
53
|
def validate_root!
|
52
54
|
raise ArgumentError, "#{root} directory doesn't exist" unless Dir.exists?(root)
|
53
55
|
end
|
56
|
+
|
57
|
+
def validate_visibility!
|
58
|
+
self.visibility = Array(visibility)
|
59
|
+
self.visibility.each do |v|
|
60
|
+
raise ArgumentError, "#{v} invalid visibility" unless VISIBILITY.include?(v)
|
61
|
+
end
|
62
|
+
end
|
54
63
|
end
|
55
64
|
end
|
@@ -3,14 +3,15 @@ module CabbageDoc
|
|
3
3
|
include Parser
|
4
4
|
include Cloneable
|
5
5
|
|
6
|
-
attr_reader :label, :klass, :name, :path, :actions
|
6
|
+
attr_reader :label, :klass, :name, :path, :actions, :visibility
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@actions = []
|
10
|
+
@visibility = VISIBILITY.first
|
10
11
|
end
|
11
12
|
|
12
13
|
def parse(text)
|
13
|
-
@label, @path, @klass =
|
14
|
+
@label, @path, @klass, @visibility = parse_label_path_class_and_visibility(text)
|
14
15
|
return false unless @label && @klass
|
15
16
|
|
16
17
|
@name = compose_name(klass)
|
@@ -67,45 +68,76 @@ module CabbageDoc
|
|
67
68
|
compose_label({}, klass).downcase
|
68
69
|
end
|
69
70
|
|
70
|
-
def
|
71
|
+
def compose_visbility(metadata)
|
72
|
+
metadata[:visibility] || :public
|
73
|
+
end
|
74
|
+
|
75
|
+
def parse_label_path_class_and_visibility(text)
|
71
76
|
klass = parse_class(text)
|
72
77
|
return unless klass
|
73
78
|
|
74
79
|
metadata = parse_metadata(text)
|
75
80
|
|
76
|
-
[
|
81
|
+
[
|
82
|
+
compose_label(metadata, klass),
|
83
|
+
compose_path(metadata, klass),
|
84
|
+
klass,
|
85
|
+
compose_visbility(metadata)
|
86
|
+
]
|
77
87
|
end
|
78
88
|
|
79
89
|
def parse_actions(text)
|
80
90
|
actions = []
|
81
91
|
|
82
|
-
text.scan(/(#\s*
|
83
|
-
actions << Action.parse($1
|
92
|
+
text.scan(/(#\s*(#{VISIBILITY_REGEXP}):\s*.*?(#{Action::METHODS_REGEXP}):.*?def\s+.*?\s*#\s*#{MARKER})/m) do
|
93
|
+
actions << Action.parse(parse_action($1))
|
84
94
|
end
|
85
95
|
|
86
96
|
actions.compact
|
87
97
|
end
|
88
98
|
|
99
|
+
def parse_action(text)
|
100
|
+
new_text = text.strip
|
101
|
+
|
102
|
+
if new_text.scan(/#\s*(#{VISIBILITY_REGEXP}):\s*/).size > 1
|
103
|
+
new_text.sub(/#\s*(#{VISIBILITY_REGEXP}):.*?#\s*(#{VISIBILITY_REGEXP}):/m, '# \2:').strip
|
104
|
+
else
|
105
|
+
new_text
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
89
109
|
def parse_class(text)
|
90
110
|
m = text.match(/class\s+(.*?)\s+?#\s+?#{MARKER}$/)
|
91
111
|
m[1].strip.split('<').first.strip if m
|
92
112
|
end
|
93
113
|
|
94
114
|
def parse_metadata(text)
|
95
|
-
m = text.match(/(#\s*
|
115
|
+
m = text.match(/(#\s*(#{VISIBILITY_REGEXP}):\s*.*?class\s+.*?\s*#\s*#{MARKER})/m)
|
96
116
|
return {} unless m
|
97
117
|
|
98
118
|
metadata = m[1].strip
|
99
119
|
|
100
120
|
{}.tap do |hash|
|
101
|
-
m = metadata.match(/#\s*
|
102
|
-
|
121
|
+
m = metadata.match(/#\s*(#{VISIBILITY_REGEXP}):(.*?)$/)
|
122
|
+
if m
|
123
|
+
hash[:visibility] = parse_visibility(m[1])
|
124
|
+
hash[:label] = m[2].strip
|
125
|
+
end
|
103
126
|
|
104
127
|
m = metadata.match(/#\s*PATH:\s*\/(.*?)$/)
|
105
128
|
hash[:path] = m[1].strip if m
|
106
129
|
end
|
107
130
|
end
|
108
131
|
|
132
|
+
def parse_visibility(text)
|
133
|
+
visibility = text.to_s.strip.downcase
|
134
|
+
if visibility.size > 0
|
135
|
+
visibility.to_sym
|
136
|
+
else
|
137
|
+
VISIBILITY.first
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
109
141
|
def actions?
|
110
142
|
@actions.any?
|
111
143
|
end
|
data/lib/cabbage_doc/version.rb
CHANGED
@@ -40,6 +40,14 @@ module CabbageDoc
|
|
40
40
|
@_auth ||= Authentication.new(request)
|
41
41
|
end
|
42
42
|
|
43
|
+
def visible?(o)
|
44
|
+
auth.visibility.include?(o.visibility)
|
45
|
+
end
|
46
|
+
|
47
|
+
def format_visibility(o)
|
48
|
+
o.visibility.to_s.capitalize if o.visibility != VISIBILITY.first
|
49
|
+
end
|
50
|
+
|
43
51
|
def post_request
|
44
52
|
@_post_request ||= Request.new(request, collection)
|
45
53
|
end
|
@@ -49,11 +49,27 @@ a:hover
|
|
49
49
|
display: none !important;
|
50
50
|
}
|
51
51
|
|
52
|
+
.left
|
53
|
+
{
|
54
|
+
float: left;
|
55
|
+
}
|
56
|
+
|
57
|
+
.right
|
58
|
+
{
|
59
|
+
float: right;
|
60
|
+
}
|
61
|
+
|
52
62
|
.clear
|
53
63
|
{
|
54
64
|
clear: both;
|
55
65
|
}
|
56
66
|
|
67
|
+
.visibility
|
68
|
+
{
|
69
|
+
font-style: italic;
|
70
|
+
float: right;
|
71
|
+
}
|
72
|
+
|
57
73
|
.application
|
58
74
|
{
|
59
75
|
margin: 10px auto;
|
@@ -137,7 +153,6 @@ a:hover
|
|
137
153
|
|
138
154
|
.action .subresource
|
139
155
|
{
|
140
|
-
float: left;
|
141
156
|
line-height: 31px;
|
142
157
|
}
|
143
158
|
|
data/web/views/action.haml
CHANGED
data/web/views/controller.haml
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
.resource
|
3
3
|
%a{ href: 'javascript:void(0);' }= controller.path
|
4
4
|
%span= " : #{controller.label}"
|
5
|
+
%span.visibility= format_visibility(controller)
|
6
|
+
.clear
|
5
7
|
.actions.hidden
|
6
8
|
- controller.actions.each do |action|
|
7
|
-
|
9
|
+
- if visible?(action)
|
10
|
+
= haml :action, locals: { action: action }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cabbage_doc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mihail Szabolcs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redcarpet
|
@@ -159,57 +159,24 @@ files:
|
|
159
159
|
- web/public/css/highlight/arduino-light.css
|
160
160
|
- web/public/css/highlight/arta.css
|
161
161
|
- web/public/css/highlight/ascetic.css
|
162
|
-
- web/public/css/highlight/atelier-cave-dark.css
|
163
|
-
- web/public/css/highlight/atelier-cave-light.css
|
164
|
-
- web/public/css/highlight/atelier-dune-dark.css
|
165
|
-
- web/public/css/highlight/atelier-dune-light.css
|
166
|
-
- web/public/css/highlight/atelier-estuary-dark.css
|
167
|
-
- web/public/css/highlight/atelier-estuary-light.css
|
168
|
-
- web/public/css/highlight/atelier-forest-dark.css
|
169
|
-
- web/public/css/highlight/atelier-forest-light.css
|
170
|
-
- web/public/css/highlight/atelier-heath-dark.css
|
171
|
-
- web/public/css/highlight/atelier-heath-light.css
|
172
|
-
- web/public/css/highlight/atelier-lakeside-dark.css
|
173
|
-
- web/public/css/highlight/atelier-lakeside-light.css
|
174
|
-
- web/public/css/highlight/atelier-plateau-dark.css
|
175
|
-
- web/public/css/highlight/atelier-plateau-light.css
|
176
|
-
- web/public/css/highlight/atelier-savanna-dark.css
|
177
|
-
- web/public/css/highlight/atelier-savanna-light.css
|
178
|
-
- web/public/css/highlight/atelier-seaside-dark.css
|
179
|
-
- web/public/css/highlight/atelier-seaside-light.css
|
180
|
-
- web/public/css/highlight/atelier-sulphurpool-dark.css
|
181
|
-
- web/public/css/highlight/atelier-sulphurpool-light.css
|
182
|
-
- web/public/css/highlight/brown-paper.css
|
183
162
|
- web/public/css/highlight/codepen-embed.css
|
184
|
-
- web/public/css/highlight/color-brewer.css
|
185
|
-
- web/public/css/highlight/dark.css
|
186
163
|
- web/public/css/highlight/darkula.css
|
187
164
|
- web/public/css/highlight/default.css
|
188
165
|
- web/public/css/highlight/docco.css
|
189
166
|
- web/public/css/highlight/dracula.css
|
190
|
-
- web/public/css/highlight/far.css
|
191
167
|
- web/public/css/highlight/foundation.css
|
192
168
|
- web/public/css/highlight/github-gist.css
|
193
169
|
- web/public/css/highlight/github.css
|
194
170
|
- web/public/css/highlight/googlecode.css
|
195
171
|
- web/public/css/highlight/grayscale.css
|
196
|
-
- web/public/css/highlight/gruvbox-dark.css
|
197
|
-
- web/public/css/highlight/gruvbox-light.css
|
198
|
-
- web/public/css/highlight/hopscotch.css
|
199
172
|
- web/public/css/highlight/hybrid.css
|
200
173
|
- web/public/css/highlight/idea.css
|
201
174
|
- web/public/css/highlight/ir-black.css
|
202
|
-
- web/public/css/highlight/kimbie.dark.css
|
203
|
-
- web/public/css/highlight/kimbie.light.css
|
204
175
|
- web/public/css/highlight/magula.css
|
205
176
|
- web/public/css/highlight/mono-blue.css
|
206
177
|
- web/public/css/highlight/monokai-sublime.css
|
207
178
|
- web/public/css/highlight/monokai.css
|
208
179
|
- web/public/css/highlight/obsidian.css
|
209
|
-
- web/public/css/highlight/ocean.css
|
210
|
-
- web/public/css/highlight/paraiso-dark.css
|
211
|
-
- web/public/css/highlight/paraiso-light.css
|
212
|
-
- web/public/css/highlight/pojoaque.css
|
213
180
|
- web/public/css/highlight/purebasic.css
|
214
181
|
- web/public/css/highlight/qtcreator_dark.css
|
215
182
|
- web/public/css/highlight/qtcreator_light.css
|
@@ -219,14 +186,8 @@ files:
|
|
219
186
|
- web/public/css/highlight/solarized-dark.css
|
220
187
|
- web/public/css/highlight/solarized-light.css
|
221
188
|
- web/public/css/highlight/sunburst.css
|
222
|
-
- web/public/css/highlight/tomorrow-night-blue.css
|
223
|
-
- web/public/css/highlight/tomorrow-night-bright.css
|
224
|
-
- web/public/css/highlight/tomorrow-night-eighties.css
|
225
|
-
- web/public/css/highlight/tomorrow-night.css
|
226
|
-
- web/public/css/highlight/tomorrow.css
|
227
189
|
- web/public/css/highlight/vs.css
|
228
190
|
- web/public/css/highlight/xcode.css
|
229
|
-
- web/public/css/highlight/xt256.css
|
230
191
|
- web/public/css/highlight/zenburn.css
|
231
192
|
- web/public/js/application.js
|
232
193
|
- web/public/js/highlight.min.js
|
@@ -1,83 +0,0 @@
|
|
1
|
-
/* Base16 Atelier Cave Dark - Theme */
|
2
|
-
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
|
3
|
-
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
4
|
-
|
5
|
-
/* Atelier-Cave Comment */
|
6
|
-
.hljs-comment,
|
7
|
-
.hljs-quote {
|
8
|
-
color: #7e7887;
|
9
|
-
}
|
10
|
-
|
11
|
-
/* Atelier-Cave Red */
|
12
|
-
.hljs-variable,
|
13
|
-
.hljs-template-variable,
|
14
|
-
.hljs-attribute,
|
15
|
-
.hljs-regexp,
|
16
|
-
.hljs-link,
|
17
|
-
.hljs-tag,
|
18
|
-
.hljs-name,
|
19
|
-
.hljs-selector-id,
|
20
|
-
.hljs-selector-class {
|
21
|
-
color: #be4678;
|
22
|
-
}
|
23
|
-
|
24
|
-
/* Atelier-Cave Orange */
|
25
|
-
.hljs-number,
|
26
|
-
.hljs-meta,
|
27
|
-
.hljs-built_in,
|
28
|
-
.hljs-builtin-name,
|
29
|
-
.hljs-literal,
|
30
|
-
.hljs-type,
|
31
|
-
.hljs-params {
|
32
|
-
color: #aa573c;
|
33
|
-
}
|
34
|
-
|
35
|
-
/* Atelier-Cave Green */
|
36
|
-
.hljs-string,
|
37
|
-
.hljs-symbol,
|
38
|
-
.hljs-bullet {
|
39
|
-
color: #2a9292;
|
40
|
-
}
|
41
|
-
|
42
|
-
/* Atelier-Cave Blue */
|
43
|
-
.hljs-title,
|
44
|
-
.hljs-section {
|
45
|
-
color: #576ddb;
|
46
|
-
}
|
47
|
-
|
48
|
-
/* Atelier-Cave Purple */
|
49
|
-
.hljs-keyword,
|
50
|
-
.hljs-selector-tag {
|
51
|
-
color: #955ae7;
|
52
|
-
}
|
53
|
-
|
54
|
-
.hljs-deletion,
|
55
|
-
.hljs-addition {
|
56
|
-
color: #19171c;
|
57
|
-
display: inline-block;
|
58
|
-
width: 100%;
|
59
|
-
}
|
60
|
-
|
61
|
-
.hljs-deletion {
|
62
|
-
background-color: #be4678;
|
63
|
-
}
|
64
|
-
|
65
|
-
.hljs-addition {
|
66
|
-
background-color: #2a9292;
|
67
|
-
}
|
68
|
-
|
69
|
-
.hljs {
|
70
|
-
display: block;
|
71
|
-
overflow-x: auto;
|
72
|
-
background: #19171c;
|
73
|
-
color: #8b8792;
|
74
|
-
padding: 0.5em;
|
75
|
-
}
|
76
|
-
|
77
|
-
.hljs-emphasis {
|
78
|
-
font-style: italic;
|
79
|
-
}
|
80
|
-
|
81
|
-
.hljs-strong {
|
82
|
-
font-weight: bold;
|
83
|
-
}
|