downr 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5dd1fcfb23290ed74c8e46b7747dcb3d820ac3f5
4
+ data.tar.gz: 77f9aa37c349fdc99a0a8624e2ca2246efefdda9
5
+ SHA512:
6
+ metadata.gz: defa69e00ac664b0781467ac50b684edd3329106c3e3de0f67ddf34bc361846b9f58d3e3d6848be3b91c3f3cc53ec3da00546455b212d5967da6acf9339cd7e9
7
+ data.tar.gz: 3629d2631649c4839227b40f3c433b16989096651fc577de4e2c9f2fc59e3cde6506f730431ff4ef40fd69cc32d55986e9a79a296b4a1d73de04cab74a4e7f26
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Downr
2
- [![Build Status](https://travis-ci.org/davidrivera/Downr.svg?branch=master)](https://travis-ci.org/davidrivera/Downr) [![Code Climate](https://codeclimate.com/github/davidrivera/Downr.png)](https://codeclimate.com/github/davidrivera/Downr) [![Inline docs](http://inch-pages.github.io/github/davidrivera/Downr.png)](http://inch-pages.github.io/github/davidrivera/Downr) [![Gem Version](https://badge.fury.io/rb/downr.svg)](http://badge.fury.io/rb/downr) [![Dependency Status](https://gemnasium.com/davidrivera/Downr.svg)](https://gemnasium.com/davidrivera/Downr)
2
+ [![Build Status](https://travis-ci.org/davidrivera/Downr.svg?branch=master)](https://travis-ci.org/davidrivera/Downr) [![Code Climate](https://codeclimate.com/github/davidrivera/Downr.png)](https://codeclimate.com/github/davidrivera/Downr) [![Inline docs](http://inch-ci.org/github/davidrivera/Downr.png)](http://inch-ci.org/github/davidrivera/Downr) [![Gem Version](https://badge.fury.io/rb/downr.svg)](http://badge.fury.io/rb/downr) [![Dependency Status](https://gemnasium.com/davidrivera/Downr.svg)](https://gemnasium.com/davidrivera/Downr)
3
3
 
4
4
  Downr is an easy to use rails wrapper around a couple of different notable gems
5
5
  * [Redcarpet](https://github.com/vmg/redcarpet)
@@ -27,4 +27,6 @@ Gem::Specification.new do |spec|
27
27
  spec.add_dependency "rails_emoji", "~> 1.7.1"
28
28
  spec.add_dependency "pygmentize", "~>0.0.3"
29
29
  spec.add_dependency "redcarpet", "~>3.1.1"
30
+ spec.add_dependency "html-pipeline", "~> 1.9.0"
31
+ spec.add_dependency "sanitize", "~> 3.0.0"
30
32
  end
@@ -1,3 +1,5 @@
1
+ require 'html/pipeline'
2
+
1
3
  module Downr
2
4
 
3
5
  # This class is a wrapper for the
@@ -8,15 +10,18 @@ module Downr
8
10
  # static renderer
9
11
  @@renderer
10
12
 
13
+ # static options
14
+ @@options
15
+
11
16
  attr_accessor :renderer
12
17
 
13
18
  # Creates a new Markdown object
14
19
  def initialize
15
- options = Downr.configuration.options
20
+ @@options = Downr.configuration.options
16
21
 
17
- render = Render.new(options)
22
+ render = Render.new(@@options)
18
23
 
19
- @@renderer = Redcarpet::Markdown.new(render, options)
24
+ @@renderer = Redcarpet::Markdown.new(render, @@options)
20
25
  end
21
26
 
22
27
  # Renders markdown
@@ -24,7 +29,23 @@ module Downr
24
29
  #
25
30
  # @return [String] html
26
31
  def self.render text
27
- @@renderer.render(text)
32
+ html = @@renderer.render(text)
33
+
34
+ if(@@options[:sanitize_html].present? && @@options[:sanitize_html])
35
+ html = self.sanitize_html(html)
36
+ end
37
+
38
+ html
39
+ end
40
+
41
+ # Sanitizes html input removing tags
42
+ # that are considered "unsafe"
43
+ #
44
+ # @param [String] html
45
+ #
46
+ # @return [String] html
47
+ def self.sanitize_html(html)
48
+ HTML::Pipeline::SanitizationFilter.new(html).call.to_s
28
49
  end
29
50
  end
30
51
  end
@@ -43,12 +43,12 @@ module Downr
43
43
  # @param [String] full_document the complete doc
44
44
  #
45
45
  # @return [String] html
46
- def postprocess(full_document)
46
+ def preprocess(full_document)
47
47
  if(@options[:emojify])
48
48
  return emojify(full_document)
49
49
  end
50
50
 
51
- full_document
51
+ super full_document
52
52
  end
53
53
 
54
54
  private
@@ -1,4 +1,4 @@
1
1
  # Gem Version
2
2
  module Downr
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
@@ -17,6 +17,9 @@ Downr.configure do |config|
17
17
  # use emojify for icons
18
18
  emojify: true,
19
19
 
20
+ # should we strip out "unsafe" html elements
21
+ html_sanitization: true,
22
+
20
23
  ########################################################
21
24
  # The following options are for Redcarpet and can be found at
22
25
  # https://github.com/vmg/redcarpet
metadata CHANGED
@@ -1,144 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: downr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
5
- prerelease:
4
+ version: 0.0.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Rivera
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-30 00:00:00.000000000 Z
11
+ date: 2014-07-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.5'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.5'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
47
  version: '2.14'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
54
  version: '2.14'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: yard
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rails
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: 3.1.0
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: 3.1.0
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rails_emoji
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ~>
87
+ - - "~>"
100
88
  - !ruby/object:Gem::Version
101
89
  version: 1.7.1
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ~>
94
+ - - "~>"
108
95
  - !ruby/object:Gem::Version
109
96
  version: 1.7.1
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: pygmentize
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ~>
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
103
  version: 0.0.3
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ~>
108
+ - - "~>"
124
109
  - !ruby/object:Gem::Version
125
110
  version: 0.0.3
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: redcarpet
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ~>
115
+ - - "~>"
132
116
  - !ruby/object:Gem::Version
133
117
  version: 3.1.1
134
118
  type: :runtime
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ~>
122
+ - - "~>"
140
123
  - !ruby/object:Gem::Version
141
124
  version: 3.1.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: html-pipeline
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.9.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.9.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: sanitize
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 3.0.0
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 3.0.0
142
153
  description: Wrapper for RedCarpet, adding syntax highlighting, emojis etc.
143
154
  email:
144
155
  - david.r.rivera193@gmail.com
@@ -146,10 +157,10 @@ executables: []
146
157
  extensions: []
147
158
  extra_rdoc_files: []
148
159
  files:
149
- - .gitignore
150
- - .rspec
151
- - .travis.yml
152
- - .yardopts
160
+ - ".gitignore"
161
+ - ".rspec"
162
+ - ".travis.yml"
163
+ - ".yardopts"
153
164
  - Gemfile
154
165
  - LICENSE.txt
155
166
  - README.md
@@ -175,27 +186,26 @@ files:
175
186
  homepage: https://github.com/davidrivera/Downr
176
187
  licenses:
177
188
  - MIT
189
+ metadata: {}
178
190
  post_install_message:
179
191
  rdoc_options: []
180
192
  require_paths:
181
193
  - lib
182
194
  required_ruby_version: !ruby/object:Gem::Requirement
183
- none: false
184
195
  requirements:
185
- - - ! '>='
196
+ - - ">="
186
197
  - !ruby/object:Gem::Version
187
198
  version: '0'
188
199
  required_rubygems_version: !ruby/object:Gem::Requirement
189
- none: false
190
200
  requirements:
191
- - - ! '>='
201
+ - - ">="
192
202
  - !ruby/object:Gem::Version
193
203
  version: '0'
194
204
  requirements: []
195
205
  rubyforge_project:
196
- rubygems_version: 1.8.23
206
+ rubygems_version: 2.4.0
197
207
  signing_key:
198
- specification_version: 3
208
+ specification_version: 4
199
209
  summary: Rails friendly Github Falvored Markdown
200
210
  test_files:
201
211
  - spec/lib/downr/action_view/helpers_spec.rb