devcenter-parser 2.1.2 → 2.2.0

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: b01d9f34400a51f943f040525996d6e674436631
4
- data.tar.gz: 0fe36dd152d0d96092d6874a7e01a43c2291e4ff
3
+ metadata.gz: f2f8e036f620a0e3ac39aa533bebd4df0ba6dd83
4
+ data.tar.gz: 22ab56166bc5b1cff3e544edd51811327b6e77a4
5
5
  SHA512:
6
- metadata.gz: 53cf30e7a354202b4e679f018e807494081d27d2de0ebef1aab0be6f88d3b312203696c76bbbd13546f0b5d4b2849a83ca80014f0c1810fe79e5947262be2d18
7
- data.tar.gz: 5233abeaa204e0b36f1db64bc3cf9f1e229493f0bc942d9d653ad589a44bb5a9f914287bef3e9eac3b3ccdad0315300fbc16f0fc009154e5b78b1d10f1df723d
6
+ metadata.gz: e00495906e58f897e4159bdb1bd417430f7be40ec5e3aea5c3ef049ac514d6b80f9307dcc9169a9c7403c3eaa9bf7b1295a19e7fac127e749ddbaad5da82815d
7
+ data.tar.gz: aff646f4472e5141643fc210cdf31f89e8b3ba2deffa385148be6b0c99af7c861d72066491e5d9da3e702688a09109e78a6e310afbde8ed8b04085981556dc64
data/README.md CHANGED
@@ -23,5 +23,12 @@ $ bundle exec rake
23
23
  ## License
24
24
  See the LICENSE file included in the distribution.
25
25
 
26
+ ## Release a new version
27
+ 1. Update the `lib/version.rb` file and commit
28
+ 2. Ensure you that you are an owner on [the gem's RubyGems
29
+ page](https://rubygems.org/gems/devcenter-parser)
30
+ 3. `rake release`
31
+ 4. Profit
32
+
26
33
  ## Copyright
27
34
  Copyright (C) 2013 Heroku <raul@heroku.com>.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rubygems'
1
3
  require 'rake/testtask'
2
4
 
3
5
  Rake::TestTask.new do |t|
@@ -68,7 +68,7 @@ class HeaderIdGenerator
68
68
  end
69
69
 
70
70
  def conflicts(hash)
71
- hash.select{ |node1, id1| hash.select{ |node1, id2| id1 == id2 }.size > 1 }
71
+ hash.select{ |node1, id1| hash.select{ |_node1, id2| id1 == id2 }.size > 1 }
72
72
  end
73
73
 
74
74
  def add_default_ids
@@ -1,3 +1,3 @@
1
1
  module DevcenterParser
2
- VERSION = '2.1.2'
2
+ VERSION = '2.2.0'.freeze
3
3
  end
@@ -58,7 +58,7 @@ module DevcenterParser
58
58
  end
59
59
 
60
60
  def self.remove_tags_inside_html_comments(markdown)
61
- markdown.gsub /<!--((.|\s)*?)-->/ do
61
+ markdown.gsub(/<!--((.|\s)*?)-->/) do
62
62
  inner = $1
63
63
  inner.gsub!(/\[|\]|\(|\)|\<|\>/,'')
64
64
  "<!--#{inner}-->"
@@ -115,7 +115,8 @@ module DevcenterParser
115
115
  def self.iframe_sanitizer
116
116
  lambda do |env|
117
117
  return unless env[:node].attributes['src']
118
- env[:node].unlink if env[:node].attributes['src'].value =~ /\Ajavascript:/i
118
+ # allow iframes if they have src that is from vimeo
119
+ env[:node].unlink unless env[:node].attributes['src'].value =~ /\Ahttps:\/\/player.vimeo.com\//i
119
120
  end
120
121
  end
121
122
  end
@@ -30,6 +30,12 @@ describe 'DevcenterParser' do
30
30
  assert_parsing_result 'foo_bar_baz', '<p>foo_bar_baz</p>'
31
31
  end
32
32
 
33
+ it 'removes iframes with script tags in the src' do
34
+ md = '<iframe src="data:text/html,<script>alert(document.domain)</script>"></iframe>'
35
+ html = ''
36
+ assert_parsing_result md, html
37
+ end
38
+
33
39
  it 'removes script tags and their content' do
34
40
  md = '<strong>clean<script>alert("hack!")</script></strong>'
35
41
  html = '<p><strong>clean</strong></p>'
@@ -37,9 +43,7 @@ describe 'DevcenterParser' do
37
43
  end
38
44
 
39
45
  it 'allows embedding vimeo videos' do
40
- src = <<-SRC
41
- <iframe src=\"https://player.vimeo.com/video/61044807?title=0&amp;byline=0&amp;portrait=0&amp;color=a086ee\" width=\"500\" height=\"281\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
42
- SRC
46
+ src = '<iframe src="https://player.vimeo.com/video/61044807?title=0&amp;byline=0&amp;portrait=0&amp;color=a086ee" width="50" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'
43
47
  assert_parsing_result src, src
44
48
  end
45
49
 
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.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heroku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-27 00:00:00.000000000 Z
11
+ date: 2017-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  version: '0'
118
118
  requirements: []
119
119
  rubyforge_project:
120
- rubygems_version: 2.5.1
120
+ rubygems_version: 2.6.8
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: Parser for Heroku Dev Center's content