docwatch-bin 1.0.8 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e525886a59746464f8ba5986e89bdcb343acbd1a96378bb56521f8e20bcf0288
4
- data.tar.gz: a6829868d17db749392a11db8418519298e80bbfa386add54e2258bf72e59079
3
+ metadata.gz: 7ab45880b0ec4a3dabedeec7ba8480d7201035a06ba11b90f7a7bd103ecd725f
4
+ data.tar.gz: 27d24ba2beea3a03d344584313a1735668607afc5a04c5ee69d95786afc35921
5
5
  SHA512:
6
- metadata.gz: e7e12d6b4188d3d29964d9c842bad38454c383aec54b2a55d38fe8ace8de68a21065abb7f1ade4cabe5ec88263d4790d1d3a8e63bccb40bd3bc4ee22f7095172
7
- data.tar.gz: 270e381c2bbf7f2b28ecfbfccc407050a6aab5ed2c44342ba0f60a2c16d0227f00d33d8ba14be11e4820e27b60c085af83e039be2cd777fd7c54e9fb3bed641f
6
+ metadata.gz: 783df445e617e2896b9180f49a36af08c8adfee6b59224b9ef3fe18326cd6bc0033688ad3bce1aa06f1d492dc2b111de0a59f7c2d56126cf3ca70aad94cad34c
7
+ data.tar.gz: 15ec12b7fc4d432d84b4c6202ee021b2a29c7c60fa85a412ba763a012a7362601a960fb9c5ca30fbf08343cd06072d07f5e9019c9fa124a5f798b74f867beefd
data/bin/docwatch CHANGED
@@ -2,28 +2,7 @@
2
2
  require_relative '../lib/docwatch'
3
3
  include Docwatch
4
4
 
5
- DOCS = <<~EOF
6
- #{'Usage:'.bold}
7
- #{File.basename($0)} [options] [<file-path>]
8
-
9
- #{'Options:'.bold}
10
- -p, --port=VALUE Listen port [default: 8888]
11
- -v, --verbose Verbose
12
- -h, --help Help
13
- -V, --version Version
14
-
15
- #{'Renderers:'.bold}
16
- markdown (.md)
17
- html (.html)
18
-
19
- If #{'--port'.bold} is #{'random'.bold} a random port will be chosen, otherwise
20
- the specified one will be used. The default is 8888.
21
-
22
- In #{'--verbose'.bold} mode, incoming HTTP requests and file change event
23
- notifications will be printed to standard output.
24
- EOF
25
-
26
- class App
5
+ class Main
27
6
  def initialize(opts)
28
7
  @opts = opts
29
8
  end
@@ -68,11 +47,6 @@ class App
68
47
  exit 0
69
48
  end
70
49
 
71
- def exit_invalid_arguments
72
- puts 'Invalid arguments'.red
73
- exit 1
74
- end
75
-
76
50
  def exit_invalid_file
77
51
  puts 'File does not exist: %s'.red % params.file_path
78
52
  exit 2
@@ -90,7 +64,6 @@ class App
90
64
  def run
91
65
  exit_version if params.version
92
66
  exit_usage if params.help
93
- exit_invalid_arguments unless params.file_path
94
67
  exit_invalid_file unless File.exist?(params.file_path)
95
68
  exit_invalid_port unless port_valid
96
69
 
@@ -107,7 +80,6 @@ class App
107
80
  Connection.handle(
108
81
  renderer,
109
82
  watcher,
110
- logger,
111
83
  Session.new(socket, logger)
112
84
  )
113
85
  end
@@ -128,9 +100,30 @@ class App
128
100
  end
129
101
  end
130
102
 
103
+ docs = <<~EOF
104
+ #{'Usage:'.bold}
105
+ #{File.basename($0)} [options] <file-path>
106
+
107
+ #{'Options:'.bold}
108
+ -p, --port=VALUE Listen port [default: 8888]
109
+ -v, --verbose Be verbose
110
+ -V, --version Show version
111
+ -h, --help Show this help
112
+
113
+ #{'Renderers:'.bold}
114
+ markdown (.md)
115
+ html (.html)
116
+
117
+ If #{'--port'.bold} is #{'random'.bold} a random port will be chosen, otherwise
118
+ the specified one will be used. The default is 8888.
119
+
120
+ In #{'--verbose'.bold} mode, incoming HTTP requests and file change event
121
+ notifications will be printed to standard output.
122
+ EOF
123
+
131
124
  begin
132
- App.run(Docopt::docopt(DOCS, help: false))
125
+ Main.run(Docopt::docopt(docs, version: VERSION))
133
126
  rescue Docopt::Exit => e
134
- puts 'Invalid arguments.'.red
127
+ puts e.message
135
128
  exit 1
136
129
  end
data/lib/docwatch.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  require 'require_all'
2
- require 'colorize'
3
- require 'docopt'
4
2
  require 'redcarpet'
3
+ require 'colorize'
5
4
  require 'nokogiri'
5
+ require 'docopt'
6
6
 
7
- require 'socket'
8
7
  require 'ostruct'
9
-
10
- require_rel 'docwatch'
8
+ require 'socket'
11
9
 
12
10
  module Docwatch
13
- def self.root
11
+ def self.root_dir
14
12
  File.expand_path('../..', __FILE__)
15
13
  end
16
14
  end
15
+
16
+ require_rel 'docwatch'
@@ -1,9 +1,8 @@
1
1
  module Docwatch
2
2
  class Connection
3
- def initialize(renderer, watcher, logger, session)
3
+ def initialize(renderer, watcher, session)
4
4
  @renderer = renderer
5
5
  @watcher = watcher
6
- @logger = logger
7
6
  @session = session
8
7
  end
9
8
 
@@ -18,7 +18,7 @@ module Docwatch
18
18
  end
19
19
 
20
20
  def js
21
- File.read(Docwatch.root + '/res/inject.js')
21
+ File.read(Docwatch.root_dir + '/res/inject.js')
22
22
  end
23
23
 
24
24
  def to_html
@@ -29,7 +29,9 @@ module Docwatch
29
29
  #{head}
30
30
  </head>
31
31
  <body>
32
+ <div class="container">
32
33
  #{body}
34
+ </div>
33
35
  <script>
34
36
  (function() {
35
37
  #{js}
@@ -3,13 +3,11 @@ module Docwatch
3
3
  extension :md
4
4
 
5
5
  def head
6
+ css = File.read(Docwatch.root_dir + '/res/github-markdown.css')
6
7
  return <<~EOF
7
8
  <title>#{file_path} - docwatch</title>
8
9
  <style>
9
- body {
10
- font-family: Ubuntu;
11
- font-size: 15px;
12
- }
10
+ #{css}
13
11
  </style>
14
12
  EOF
15
13
  end
@@ -12,6 +12,7 @@ module Docwatch
12
12
  end
13
13
 
14
14
  def path
15
+ return if first_request_line.length == 0
15
16
  first_request_line.split(' ')[1]
16
17
  end
17
18
 
@@ -40,7 +41,7 @@ module Docwatch
40
41
  end
41
42
 
42
43
  def first_request_line
43
- input_lines.first.chomp
44
+ input_lines.each(&:chomp).first
44
45
  end
45
46
 
46
47
  def print(msg)
@@ -1,3 +1,3 @@
1
1
  module Docwatch
2
- VERSION = "1.0.8"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -0,0 +1,457 @@
1
+ .container {
2
+ font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
3
+ font-size: 16px;
4
+ line-height: 1.5;
5
+ word-wrap: break-word;
6
+ width: 900px;
7
+ margin: 0 auto;
8
+ }
9
+
10
+ .container:after,
11
+ .container:before {
12
+ display: table;
13
+ content: ""
14
+ }
15
+
16
+ .container:after {
17
+ clear: both
18
+ }
19
+
20
+ .container>:first-child {
21
+ margin-top: 0!important
22
+ }
23
+
24
+ .container>:last-child {
25
+ margin-bottom: 0!important
26
+ }
27
+
28
+ .container a:not([href]) {
29
+ color: inherit;
30
+ text-decoration: none
31
+ }
32
+
33
+ .container .absent {
34
+ color: #cb2431
35
+ }
36
+
37
+ .container .anchor {
38
+ float: left;
39
+ padding-right: 4px;
40
+ margin-left: -20px;
41
+ line-height: 1
42
+ }
43
+
44
+ .container .anchor:focus {
45
+ outline: none
46
+ }
47
+
48
+ .container blockquote,
49
+ .container details,
50
+ .container dl,
51
+ .container ol,
52
+ .container p,
53
+ .container pre,
54
+ .container table,
55
+ .container ul {
56
+ margin-top: 0;
57
+ margin-bottom: 16px
58
+ }
59
+
60
+ .container hr {
61
+ height: .25em;
62
+ padding: 0;
63
+ margin: 24px 0;
64
+ background-color: #e1e4e8;
65
+ border: 0
66
+ }
67
+
68
+ .container blockquote {
69
+ padding: 0 1em;
70
+ color: #6a737d;
71
+ border-left: .25em solid #dfe2e5
72
+ }
73
+
74
+ .container blockquote>:first-child {
75
+ margin-top: 0
76
+ }
77
+
78
+ .container blockquote>:last-child {
79
+ margin-bottom: 0
80
+ }
81
+
82
+ .container kbd {
83
+ display: inline-block;
84
+ padding: 3px 5px;
85
+ font-size: 11px;
86
+ line-height: 10px;
87
+ color: #444d56;
88
+ vertical-align: middle;
89
+ background-color: #fafbfc;
90
+ border: 1px solid #c6cbd1;
91
+ border-bottom-color: #959da5;
92
+ border-radius: 3px;
93
+ box-shadow: inset 0 -1px 0 #959da5
94
+ }
95
+
96
+ .container h1,
97
+ .container h2,
98
+ .container h3,
99
+ .container h4,
100
+ .container h5,
101
+ .container h6 {
102
+ margin-top: 24px;
103
+ margin-bottom: 16px;
104
+ font-weight: 600;
105
+ line-height: 1.25
106
+ }
107
+
108
+ .container h1 .octicon-link,
109
+ .container h2 .octicon-link,
110
+ .container h3 .octicon-link,
111
+ .container h4 .octicon-link,
112
+ .container h5 .octicon-link,
113
+ .container h6 .octicon-link {
114
+ color: #1b1f23;
115
+ vertical-align: middle;
116
+ visibility: hidden
117
+ }
118
+
119
+ .container h1:hover .anchor,
120
+ .container h2:hover .anchor,
121
+ .container h3:hover .anchor,
122
+ .container h4:hover .anchor,
123
+ .container h5:hover .anchor,
124
+ .container h6:hover .anchor {
125
+ text-decoration: none
126
+ }
127
+
128
+ .container h1:hover .anchor .octicon-link,
129
+ .container h2:hover .anchor .octicon-link,
130
+ .container h3:hover .anchor .octicon-link,
131
+ .container h4:hover .anchor .octicon-link,
132
+ .container h5:hover .anchor .octicon-link,
133
+ .container h6:hover .anchor .octicon-link {
134
+ visibility: visible
135
+ }
136
+
137
+ .container h1 code,
138
+ .container h1 tt,
139
+ .container h2 code,
140
+ .container h2 tt,
141
+ .container h3 code,
142
+ .container h3 tt,
143
+ .container h4 code,
144
+ .container h4 tt,
145
+ .container h5 code,
146
+ .container h5 tt,
147
+ .container h6 code,
148
+ .container h6 tt {
149
+ font-size: inherit
150
+ }
151
+
152
+ .container h1 {
153
+ font-size: 2em
154
+ }
155
+
156
+ .container h1,
157
+ .container h2 {
158
+ padding-bottom: .3em;
159
+ border-bottom: 1px solid #eaecef
160
+ }
161
+
162
+ .container h2 {
163
+ font-size: 1.5em
164
+ }
165
+
166
+ .container h3 {
167
+ font-size: 1.25em
168
+ }
169
+
170
+ .container h4 {
171
+ font-size: 1em
172
+ }
173
+
174
+ .container h5 {
175
+ font-size: .875em
176
+ }
177
+
178
+ .container h6 {
179
+ font-size: .85em;
180
+ color: #6a737d
181
+ }
182
+
183
+ .container ol,
184
+ .container ul {
185
+ padding-left: 2em
186
+ }
187
+
188
+ .container ol.no-list,
189
+ .container ul.no-list {
190
+ padding: 0;
191
+ list-style-type: none
192
+ }
193
+
194
+ .container ol ol,
195
+ .container ol ul,
196
+ .container ul ol,
197
+ .container ul ul {
198
+ margin-top: 0;
199
+ margin-bottom: 0
200
+ }
201
+
202
+ .container li {
203
+ word-wrap: break-all
204
+ }
205
+
206
+ .container li>p {
207
+ margin-top: 16px
208
+ }
209
+
210
+ .container li+li {
211
+ margin-top: .25em
212
+ }
213
+
214
+ .container dl {
215
+ padding: 0
216
+ }
217
+
218
+ .container dl dt {
219
+ padding: 0;
220
+ margin-top: 16px;
221
+ font-size: 1em;
222
+ font-style: italic;
223
+ font-weight: 600
224
+ }
225
+
226
+ .container dl dd {
227
+ padding: 0 16px;
228
+ margin-bottom: 16px
229
+ }
230
+
231
+ .container table {
232
+ display: block;
233
+ width: 100%;
234
+ overflow: auto
235
+ }
236
+
237
+ .container table th {
238
+ font-weight: 600
239
+ }
240
+
241
+ .container table td,
242
+ .container table th {
243
+ padding: 6px 13px;
244
+ border: 1px solid #dfe2e5
245
+ }
246
+
247
+ .container table tr {
248
+ background-color: #fff;
249
+ border-top: 1px solid #c6cbd1
250
+ }
251
+
252
+ .container table tr:nth-child(2n) {
253
+ background-color: #f6f8fa
254
+ }
255
+
256
+ .container table img {
257
+ background-color: initial
258
+ }
259
+
260
+ .container img {
261
+ max-width: 100%;
262
+ box-sizing: initial;
263
+ background-color: #fff
264
+ }
265
+
266
+ .container img[align=right] {
267
+ padding-left: 20px
268
+ }
269
+
270
+ .container img[align=left] {
271
+ padding-right: 20px
272
+ }
273
+
274
+ .container .emoji {
275
+ max-width: none;
276
+ vertical-align: text-top;
277
+ background-color: initial
278
+ }
279
+
280
+ .container span.frame {
281
+ display: block;
282
+ overflow: hidden
283
+ }
284
+
285
+ .container span.frame>span {
286
+ display: block;
287
+ float: left;
288
+ width: auto;
289
+ padding: 7px;
290
+ margin: 13px 0 0;
291
+ overflow: hidden;
292
+ border: 1px solid #dfe2e5
293
+ }
294
+
295
+ .container span.frame span img {
296
+ display: block;
297
+ float: left
298
+ }
299
+
300
+ .container span.frame span span {
301
+ display: block;
302
+ padding: 5px 0 0;
303
+ clear: both;
304
+ color: #24292e
305
+ }
306
+
307
+ .container span.align-center {
308
+ display: block;
309
+ overflow: hidden;
310
+ clear: both
311
+ }
312
+
313
+ .container span.align-center>span {
314
+ display: block;
315
+ margin: 13px auto 0;
316
+ overflow: hidden;
317
+ text-align: center
318
+ }
319
+
320
+ .container span.align-center span img {
321
+ margin: 0 auto;
322
+ text-align: center
323
+ }
324
+
325
+ .container span.align-right {
326
+ display: block;
327
+ overflow: hidden;
328
+ clear: both
329
+ }
330
+
331
+ .container span.align-right>span {
332
+ display: block;
333
+ margin: 13px 0 0;
334
+ overflow: hidden;
335
+ text-align: right
336
+ }
337
+
338
+ .container span.align-right span img {
339
+ margin: 0;
340
+ text-align: right
341
+ }
342
+
343
+ .container span.float-left {
344
+ display: block;
345
+ float: left;
346
+ margin-right: 13px;
347
+ overflow: hidden
348
+ }
349
+
350
+ .container span.float-left span {
351
+ margin: 13px 0 0
352
+ }
353
+
354
+ .container span.float-right {
355
+ display: block;
356
+ float: right;
357
+ margin-left: 13px;
358
+ overflow: hidden
359
+ }
360
+
361
+ .container span.float-right>span {
362
+ display: block;
363
+ margin: 13px auto 0;
364
+ overflow: hidden;
365
+ text-align: right
366
+ }
367
+
368
+ .container code,
369
+ .container tt {
370
+ padding: .2em .4em;
371
+ margin: 0;
372
+ font-size: 85%;
373
+ background-color: rgba(27, 31, 35, .05);
374
+ border-radius: 3px
375
+ }
376
+
377
+ .container code br,
378
+ .container tt br {
379
+ display: none
380
+ }
381
+
382
+ .container del code {
383
+ text-decoration: inherit
384
+ }
385
+
386
+ .container pre {
387
+ word-wrap: normal
388
+ }
389
+
390
+ .container pre>code {
391
+ padding: 0;
392
+ margin: 0;
393
+ font-size: 100%;
394
+ word-break: normal;
395
+ white-space: pre;
396
+ background: transparent;
397
+ border: 0
398
+ }
399
+
400
+ .container .highlight {
401
+ margin-bottom: 16px
402
+ }
403
+
404
+ .container .highlight pre {
405
+ margin-bottom: 0;
406
+ word-break: normal
407
+ }
408
+
409
+ .container .highlight pre,
410
+ .container pre {
411
+ padding: 16px;
412
+ overflow: auto;
413
+ font-size: 85%;
414
+ line-height: 1.45;
415
+ background-color: #f6f8fa;
416
+ border-radius: 3px
417
+ }
418
+
419
+ .container pre code,
420
+ .container pre tt {
421
+ display: inline;
422
+ max-width: auto;
423
+ padding: 0;
424
+ margin: 0;
425
+ overflow: visible;
426
+ line-height: inherit;
427
+ word-wrap: normal;
428
+ background-color: initial;
429
+ border: 0
430
+ }
431
+
432
+ .container .csv-data td,
433
+ .container .csv-data th {
434
+ padding: 5px;
435
+ overflow: hidden;
436
+ font-size: 12px;
437
+ line-height: 1;
438
+ text-align: left;
439
+ white-space: nowrap
440
+ }
441
+
442
+ .container .csv-data .blob-num {
443
+ padding: 10px 8px 9px;
444
+ text-align: right;
445
+ background: #fff;
446
+ border: 0
447
+ }
448
+
449
+ .container .csv-data tr {
450
+ border-top: 0
451
+ }
452
+
453
+ .container .csv-data th {
454
+ font-weight: 600;
455
+ background: #f6f8fa;
456
+ border-top: 0
457
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docwatch-bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - crdx
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2021-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: require_all
@@ -16,84 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: colorize
28
+ name: redcarpet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.8.1
33
+ version: '3.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.8.1
40
+ version: '3.5'
41
41
  - !ruby/object:Gem::Dependency
42
- name: docopt
42
+ name: colorize
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.6.1
47
+ version: 0.8.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.6.1
54
+ version: 0.8.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: redcarpet
56
+ name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.5'
61
+ version: '1.10'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.5'
68
+ version: '1.10'
69
69
  - !ruby/object:Gem::Dependency
70
- name: nokogiri
70
+ name: docopt
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.10'
75
+ version: 0.6.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.10'
82
+ version: 0.6.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.17.0
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 0.17.0
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,16 +114,16 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '12.3'
117
+ version: '13.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '12.3'
125
- description:
126
- email:
124
+ version: '13.0'
125
+ description:
126
+ email:
127
127
  executables:
128
128
  - docwatch
129
129
  extensions: []
@@ -139,12 +139,13 @@ files:
139
139
  - lib/docwatch/session.rb
140
140
  - lib/docwatch/version.rb
141
141
  - lib/docwatch/watcher.rb
142
+ - res/github-markdown.css
142
143
  - res/inject.js
143
144
  homepage: https://github.com/crdx/docwatch
144
145
  licenses:
145
146
  - MIT
146
147
  metadata: {}
147
- post_install_message:
148
+ post_install_message:
148
149
  rdoc_options: []
149
150
  require_paths:
150
151
  - lib
@@ -159,8 +160,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
160
  - !ruby/object:Gem::Version
160
161
  version: '0'
161
162
  requirements: []
162
- rubygems_version: 3.0.6
163
- signing_key:
163
+ rubygems_version: 3.2.7
164
+ signing_key:
164
165
  specification_version: 4
165
- summary: preview markdown documents in the browser with reload on change
166
+ summary: Preview markdown documents in the browser with reload on change
166
167
  test_files: []