devcenter-parser 2.2.2 → 2.2.3rc1

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
  SHA1:
3
- metadata.gz: 1ea6f3dfbbe458648e30b6ef0506c036ffa97eda
4
- data.tar.gz: 27ab4b9db2cc57c07fcd535ff1eb65264b48f2c2
3
+ metadata.gz: 9323d479100078d86f42ebf2e3a5f5a116dcdd8c
4
+ data.tar.gz: 846ec0bcbb813a92d30553b3d76ff9a86e3fc0c9
5
5
  SHA512:
6
- metadata.gz: c84df6ab8e169c1214922ca9ababf311d90a519b3d5be0622171b732020887cf06a211a9fd3558cb1e66b3135a4dbd4be9b4d2899cfe3b9408f517b79091e6eb
7
- data.tar.gz: abfb6b334971ca0a8cb176e530428236123faf36e69b5f4dc02f7935865c7c301bb69b1a30bb9d938b63d21f9e77c93527de5c6a372352923de951ea73ba1b8f
6
+ metadata.gz: 6836facfe3d533bb602c485e7d546b01300102ab8bdb1c92f10ba04b634b28e4c8a4d73ea6ad5229936ce4b5487b44b52811f1d43627c98d3dea7c06ede2b2da
7
+ data.tar.gz: 24886b57546343ff56f90b18b37fd32658d9c3a8aff1f0d96d2298dbe7c3c16c7624bd2459a9e2583e1f3e1d6f5576e68f4356214559ffcf5ab091fca0c0c547
@@ -14,7 +14,7 @@ Gem::Specification.new do |gem|
14
14
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
15
  gem.require_paths = %w{ lib }
16
16
 
17
- gem.add_runtime_dependency 'nokogiri', '>= 1.7.1'
17
+ gem.add_runtime_dependency 'nokogiri', '>= 1.4.4'
18
18
  gem.add_runtime_dependency 'redcarpet', '3.3.4'
19
19
  gem.add_runtime_dependency 'sanitize', '2.0.6'
20
20
 
@@ -3,6 +3,33 @@ module GitHubParser
3
3
 
4
4
  class HTMLWithPantsRenderer < Redcarpet::Render::HTML
5
5
  include Redcarpet::Render::SmartyPants
6
+
7
+ def block_code(code, language)
8
+ if language
9
+ language.sub!(/\Alang(uage)?-/, '')
10
+ %{<pre class="language-#{language}"><code class="language-#{language}">#{html_escape(code)}</code></pre>}
11
+ else
12
+ %{<pre><code>#{html_escape(code)}</code></pre>}
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ # This is a method copy/pasted from redcarpet/lib/redcarpet.rb
19
+ # It's a private instance method on the Render::Safe class which inherits
20
+ # from the HTML renderer.
21
+ # I'm not sure why our tests expect escaped code while we inherit from the
22
+ # HTML renderer and not the Safe renderer though.
23
+ def html_escape(string)
24
+ string.gsub(/['&\"<>\/]/, {
25
+ '&' => '&amp;',
26
+ '<' => '&lt;',
27
+ '>' => '&gt;',
28
+ '"' => '&quot;',
29
+ "'" => '&#x27;',
30
+ "/" => '&#x2F;',
31
+ })
32
+ end
6
33
  end
7
34
 
8
35
  def self.parse(markdown)
@@ -1,3 +1,3 @@
1
1
  module DevcenterParser
2
- VERSION = '2.2.2'.freeze
2
+ VERSION = '2.2.3rc1'.freeze
3
3
  end
@@ -101,14 +101,12 @@ MARKDOWN
101
101
 
102
102
  html = <<-HTML
103
103
  <p>Paragraph</p>
104
-
105
- <pre><code class="term">$ command
104
+ <pre class="language-term"><code class="language-term">$ command
106
105
 
107
106
  indented
108
107
  &lt; tag1
109
108
  &gt; tag2
110
109
  </code></pre>
111
-
112
110
  <p>Another paragraph</p>
113
111
  HTML
114
112
  assert_parsing_result md, html
@@ -313,6 +311,30 @@ more callout</p>
313
311
  assert_parsing_result md, html
314
312
  end
315
313
 
314
+ it "converts code block classes to language-<language>" do
315
+ md = <<-MARKDOWN
316
+ ```lang-ruby
317
+ # a comment
318
+ ```
319
+
320
+ ```language-ruby
321
+ # a comment
322
+ ```
323
+
324
+ ```ruby
325
+ # a comment
326
+ ```
327
+ MARKDOWN
328
+
329
+ html = <<-HTML
330
+ <pre class="language-ruby"><code class="language-ruby"># a comment
331
+ </code></pre><pre class="language-ruby"><code class="language-ruby"># a comment
332
+ </code></pre><pre class="language-ruby"><code class="language-ruby"># a comment
333
+ </code></pre>
334
+ HTML
335
+ assert_parsing_result md, html
336
+ end
337
+
316
338
  it 'converts relative links with missing initial slashes to article links' do
317
339
  ['foo', 'foo/bar', 'foo#bar', '123'].each do |href|
318
340
  md = "[link](#{href})"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devcenter-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.2.3rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heroku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-27 00:00:00.000000000 Z
11
+ date: 2017-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.7.1
19
+ version: 1.4.4
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: 1.7.1
26
+ version: 1.4.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: redcarpet
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -89,7 +89,6 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
91
  - Gemfile
92
- - Gemfile.lock
93
92
  - LICENSE
94
93
  - README.md
95
94
  - Rakefile
@@ -114,12 +113,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
113
  version: '0'
115
114
  required_rubygems_version: !ruby/object:Gem::Requirement
116
115
  requirements:
117
- - - ">="
116
+ - - ">"
118
117
  - !ruby/object:Gem::Version
119
- version: '0'
118
+ version: 1.3.1
120
119
  requirements: []
121
120
  rubyforge_project:
122
- rubygems_version: 2.6.8
121
+ rubygems_version: 2.5.2
123
122
  signing_key:
124
123
  specification_version: 4
125
124
  summary: Parser for Heroku Dev Center's content
@@ -1,30 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- devcenter-parser (2.2.1)
5
- nokogiri (>= 1.7.1)
6
- redcarpet (= 3.3.4)
7
- sanitize (= 2.0.6)
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- mini_portile2 (2.1.0)
13
- minitest (5.10.1)
14
- nokogiri (1.7.1)
15
- mini_portile2 (~> 2.1.0)
16
- rake (12.0.0)
17
- redcarpet (3.3.4)
18
- sanitize (2.0.6)
19
- nokogiri (>= 1.4.4)
20
-
21
- PLATFORMS
22
- ruby
23
-
24
- DEPENDENCIES
25
- devcenter-parser!
26
- minitest (> 2.0)
27
- rake
28
-
29
- BUNDLED WITH
30
- 1.13.6