devcenter-parser 2.2.2 → 2.2.3rc1

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
  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