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 +4 -4
- data/devcenter-parser.gemspec +1 -1
- data/lib/devcenter-parser/github_parser.rb +27 -0
- data/lib/devcenter-parser/version.rb +1 -1
- data/test/devcenter-parser_test.rb +25 -3
- metadata +7 -8
- data/Gemfile.lock +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9323d479100078d86f42ebf2e3a5f5a116dcdd8c
|
4
|
+
data.tar.gz: 846ec0bcbb813a92d30553b3d76ff9a86e3fc0c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6836facfe3d533bb602c485e7d546b01300102ab8bdb1c92f10ba04b634b28e4c8a4d73ea6ad5229936ce4b5487b44b52811f1d43627c98d3dea7c06ede2b2da
|
7
|
+
data.tar.gz: 24886b57546343ff56f90b18b37fd32658d9c3a8aff1f0d96d2298dbe7c3c16c7624bd2459a9e2583e1f3e1d6f5576e68f4356214559ffcf5ab091fca0c0c547
|
data/devcenter-parser.gemspec
CHANGED
@@ -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.
|
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
|
+
'&' => '&',
|
26
|
+
'<' => '<',
|
27
|
+
'>' => '>',
|
28
|
+
'"' => '"',
|
29
|
+
"'" => ''',
|
30
|
+
"/" => '/',
|
31
|
+
})
|
32
|
+
end
|
6
33
|
end
|
7
34
|
|
8
35
|
def self.parse(markdown)
|
@@ -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
|
< tag1
|
109
108
|
> 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.
|
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-
|
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.
|
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.
|
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:
|
118
|
+
version: 1.3.1
|
120
119
|
requirements: []
|
121
120
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
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
|
data/Gemfile.lock
DELETED
@@ -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
|