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