madness 0.5.3 → 0.5.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8d588bd83b38718c29c92738d5a9ea5876ecfff30acbd02937eaba053a96a5f6
4
- data.tar.gz: d198ff98538fcb2696ccc14e492e94432a92e162b6cb96276d938d2169232c9d
3
+ metadata.gz: bc38f5937c9626dc9ffd8ff0973f409b0f634fc4198ce81a24687aa55a93c947
4
+ data.tar.gz: 0733b8d283049083904edd685af32429a62bac858ea9859174f0e31fe3cf5a20
5
5
  SHA512:
6
- metadata.gz: 21c4ce8b9c7c93679cd6b296b1279ba9c07c62598f7cb175a235cb86c4e688819be2fd53e07be7d7d34519af292fa0c769e77e366ac9e61ce797fd93939c1572
7
- data.tar.gz: 5c9d769becbfa0e337433ebcf3e237f1c26a8d354c6032b64211762f6bc466525e04650a0aa56ee52dbbdc227146ce6317f6e6fcfc9cab63378175d055a53987
6
+ metadata.gz: 8d33e289c6691f68ae596195e01a123fc784c98eb757b7f646d9e3ee50039d03a0eadfc4fc196ffcb1d31966f9cbe577b958ebb606eddccda238532bfb6a8276
7
+ data.tar.gz: 42700e360e958040e78500e3e7a6430ae85514f125440c52d5e2d19633a6fd4d3b9160c2c605a62efe07ce2d3f2132efab356055089a111f976f4cde1f29d39f
@@ -14,7 +14,9 @@ require 'sinatra/base'
14
14
  require 'sinatra/reloader'
15
15
  require 'slim'
16
16
 
17
- require'byebug' if ENV['BYEBUG']
17
+ require 'byebug' if ENV['BYEBUG']
18
+
19
+ require 'madness/refinements/string_refinements'
18
20
 
19
21
  require 'madness/server_helper'
20
22
 
@@ -3,6 +3,7 @@ module Madness
3
3
  # Handle a single markdown document.
4
4
  class Document
5
5
  include ServerHelper
6
+ using StringRefinements
6
7
 
7
8
  attr_reader :file, :dir, :path, :type
8
9
 
@@ -59,11 +60,27 @@ module Madness
59
60
 
60
61
  private
61
62
 
62
- # Convert markdown to HTML, wit hsome additional processing:
63
- # 1. Syntax highilghting
64
- # 2. Prepend H1 if needed
63
+ def markdown
64
+ @markdown ||= File.read file
65
+ end
66
+
67
+ # Convert markdown to HTML, with some additional processing:
68
+ # 1. Add anchors to headers
69
+ # 2. Syntax highilghting
70
+ # 3. Prepend H1 if needed
65
71
  def markdown_to_html
66
- html = CommonMarker.render_html File.read(file), :DEFAULT, [:table]
72
+ doc = CommonMarker.render_doc markdown, :DEFAULT, [:table]
73
+
74
+ doc.walk do |node|
75
+ if node.type == :header
76
+ anchor = CommonMarker::Node.new(:inline_html)
77
+ anchor_id = node.first_child.string_content.to_slug
78
+ anchor.string_content = "<a id='#{anchor_id}'></a>"
79
+ node.prepend_child anchor
80
+ end
81
+ end
82
+
83
+ html = doc.to_html
67
84
  html = syntax_highlight(html) if config.highlighter
68
85
  html = prepend_h1(html) if config.autoh1
69
86
  html
@@ -0,0 +1,9 @@
1
+ module Madness
2
+ module StringRefinements
3
+ refine String do
4
+ def to_slug
5
+ downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Madness
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: madness
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-20 00:00:00.000000000 Z
11
+ date: 2018-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -179,19 +179,33 @@ dependencies:
179
179
  - !ruby/object:Gem::Version
180
180
  version: '2.1'
181
181
  - !ruby/object:Gem::Dependency
182
- name: runfile
182
+ name: byebug
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '0.9'
187
+ version: '10.0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '0.9'
194
+ version: '10.0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: github_changelog_generator
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '1.14'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.14'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: rack-test
197
211
  requirement: !ruby/object:Gem::Requirement
@@ -207,105 +221,105 @@ dependencies:
207
221
  - !ruby/object:Gem::Version
208
222
  version: '1.0'
209
223
  - !ruby/object:Gem::Dependency
210
- name: runfile-tasks
224
+ name: rdoc
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '0.4'
229
+ version: '6.0'
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
- version: '0.4'
236
+ version: '6.0'
223
237
  - !ruby/object:Gem::Dependency
224
- name: rspec_fixtures
238
+ name: rspec
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: '0.4'
243
+ version: '3.7'
230
244
  type: :development
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
248
  - - "~>"
235
249
  - !ruby/object:Gem::Version
236
- version: '0.4'
250
+ version: '3.7'
237
251
  - !ruby/object:Gem::Dependency
238
- name: byebug
252
+ name: rspec-html-matchers
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: '10.0'
257
+ version: '0.9'
244
258
  type: :development
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
262
  - - "~>"
249
263
  - !ruby/object:Gem::Version
250
- version: '10.0'
264
+ version: '0.9'
251
265
  - !ruby/object:Gem::Dependency
252
- name: rspec
266
+ name: rspec_fixtures
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: '3.7'
271
+ version: '0.4'
258
272
  type: :development
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
- version: '3.7'
278
+ version: '0.4'
265
279
  - !ruby/object:Gem::Dependency
266
- name: rdoc
280
+ name: runfile
267
281
  requirement: !ruby/object:Gem::Requirement
268
282
  requirements:
269
283
  - - "~>"
270
284
  - !ruby/object:Gem::Version
271
- version: '6.0'
285
+ version: '0.9'
272
286
  type: :development
273
287
  prerelease: false
274
288
  version_requirements: !ruby/object:Gem::Requirement
275
289
  requirements:
276
290
  - - "~>"
277
291
  - !ruby/object:Gem::Version
278
- version: '6.0'
292
+ version: '0.9'
279
293
  - !ruby/object:Gem::Dependency
280
- name: simplecov
294
+ name: runfile-tasks
281
295
  requirement: !ruby/object:Gem::Requirement
282
296
  requirements:
283
297
  - - "~>"
284
298
  - !ruby/object:Gem::Version
285
- version: '0.15'
299
+ version: '0.4'
286
300
  type: :development
287
301
  prerelease: false
288
302
  version_requirements: !ruby/object:Gem::Requirement
289
303
  requirements:
290
304
  - - "~>"
291
305
  - !ruby/object:Gem::Version
292
- version: '0.15'
306
+ version: '0.4'
293
307
  - !ruby/object:Gem::Dependency
294
- name: yard
308
+ name: simplecov
295
309
  requirement: !ruby/object:Gem::Requirement
296
310
  requirements:
297
311
  - - "~>"
298
312
  - !ruby/object:Gem::Version
299
- version: '0.9'
313
+ version: '0.15'
300
314
  type: :development
301
315
  prerelease: false
302
316
  version_requirements: !ruby/object:Gem::Requirement
303
317
  requirements:
304
318
  - - "~>"
305
319
  - !ruby/object:Gem::Version
306
- version: '0.9'
320
+ version: '0.15'
307
321
  - !ruby/object:Gem::Dependency
308
- name: rspec-html-matchers
322
+ name: yard
309
323
  requirement: !ruby/object:Gem::Requirement
310
324
  requirements:
311
325
  - - "~>"
@@ -360,6 +374,7 @@ files:
360
374
  - lib/madness/document.rb
361
375
  - lib/madness/item.rb
362
376
  - lib/madness/navigation.rb
377
+ - lib/madness/refinements/string_refinements.rb
363
378
  - lib/madness/search.rb
364
379
  - lib/madness/server.rb
365
380
  - lib/madness/server_base.rb