devcenter-parser 2.0.2 → 2.1.0

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: e9ee5923d033c90c44a0a059d27650d111cb54ee
4
- data.tar.gz: a46dcae3dc64af31c594ce6bfcf195ed5f75dc84
3
+ metadata.gz: 4d95a94b7c9105e23060c78ab4615837110ed790
4
+ data.tar.gz: 388710bb2e60085a1585deec9aaf2d0b91ab3a90
5
5
  SHA512:
6
- metadata.gz: 297348d24ed92f6657583779f9c6fe41d80beecf2c74c15f6402a3312674566eb5edf7667ad4a883b0112ca777ebb8984000cf21417a83db972ed31b9fcb13af
7
- data.tar.gz: b0791de31c6228d364e85728dc150f82dde76ee29800e542b767d68a6c4673829eafc99da09b0973792c8dbc26763950bbfcc9d3d1f861cabe05fecb0d3b7a40
6
+ metadata.gz: afa310e5adb4c2f160a0196144a8588d6a8c284e8e6115bdba8e9844e761fcdfa7aae4e9438f3a4a518872573b715a80f394dc21576bc1e5483a73678d16f35d
7
+ data.tar.gz: 2918139f9658bff3f9ec1746405f70eef5e3681a9e07c7243fafac67126961446a45cc60efc04efe05a2d8807944805c0150fadca772bd5bc9bca796d67c1f7f
@@ -86,6 +86,8 @@ module DevcenterParser
86
86
  # custom
87
87
  config[:elements] += %w{ toolbelt }
88
88
 
89
+ config[:transformers] = Array(config[:transformers]).push(iframe_sanitizer)
90
+
89
91
  @@sanitize_config = config.merge({remove_contents: true, allow_comments: true})
90
92
  end
91
93
 
@@ -109,4 +111,11 @@ module DevcenterParser
109
111
  broken_html = html.match(/REXML could not parse this XML\/HTML\:(.+)<\/pre>/m)[1].strip rescue nil
110
112
  broken_html.nil? ? "Contains broken raw HTML." : "This raw HTML is invalid: #{CGI.unescapeHTML(broken_html)}"
111
113
  end
114
+
115
+ def self.iframe_sanitizer
116
+ lambda do |env|
117
+ return unless env[:node].attributes['src']
118
+ env[:node].unlink if env[:node].attributes['src'].value =~ /\Ajavascript:/
119
+ end
120
+ end
112
121
  end
@@ -1,3 +1,3 @@
1
1
  module DevcenterParser
2
- VERSION = '2.0.2'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -421,6 +421,15 @@ HTML
421
421
 
422
422
  assert_parsing_result md, html
423
423
  end
424
+
425
+ it 'removes elements with src="javascript:"' do
426
+ md = <<-MARKDOWN
427
+ <iframe src="javascript:">alert("foo");</iframe>
428
+ <img src="javascript:" />
429
+ MARKDOWN
430
+
431
+ assert_parsing_result md, "<p></p>"
432
+ end
424
433
  end
425
434
 
426
435
 
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devcenter-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heroku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-22 00:00:00.000000000 Z
11
+ date: 2016-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
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
26
  version: 1.4.4
27
27
  - !ruby/object:Gem::Dependency
@@ -56,28 +56,28 @@ dependencies:
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>'
59
+ - - ">"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>'
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  description: Parser for Heroku Dev Center's content
@@ -107,17 +107,17 @@ require_paths:
107
107
  - lib
108
108
  required_ruby_version: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - '>='
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  requirements: []
119
119
  rubyforge_project:
120
- rubygems_version: 2.0.14
120
+ rubygems_version: 2.4.5.1
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: Parser for Heroku Dev Center's content