html-pipeline 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.3.0
4
+
5
+ * Add support for manually specified default language in SyntaxHighlightFilter #81 jbarnette
6
+
3
7
  ## 0.2.1
4
8
 
5
9
  * Moves ActiveSupport as a development dependency #79
@@ -11,14 +11,19 @@ module HTML
11
11
  class SyntaxHighlightFilter < Filter
12
12
  def call
13
13
  doc.search('pre').each do |node|
14
- next unless lang = node['lang']
14
+ default = context[:highlight] && context[:highlight].to_s
15
+ next unless lang = node['lang'] || default
15
16
  next unless lexer = Pygments::Lexer[lang]
16
17
  text = node.inner_text
17
18
 
18
19
  html = highlight_with_timeout_handling(lexer, text)
19
20
  next if html.nil?
20
21
 
21
- node.replace(html)
22
+ node = node.replace(html).first
23
+ klass = node["class"]
24
+ klass = [klass, "highlight-#{lang}"].compact.join " "
25
+
26
+ node["class"] = klass
22
27
  end
23
28
  doc
24
29
  end
@@ -30,4 +35,4 @@ module HTML
30
35
  end
31
36
  end
32
37
  end
33
- end
38
+ end
@@ -1,5 +1,5 @@
1
1
  module HTML
2
2
  class Pipeline
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -0,0 +1,22 @@
1
+ require "test_helper"
2
+
3
+ SyntaxHighlightFilter = HTML::Pipeline::SyntaxHighlightFilter
4
+
5
+ class HTML::Pipeline::SyntaxHighlightFilterTest < Test::Unit::TestCase
6
+ def test_highlight_default
7
+ filter = SyntaxHighlightFilter.new \
8
+ "<pre>hello</pre>", :highlight => "coffeescript"
9
+
10
+ doc = filter.call
11
+ assert !doc.css(".highlight-coffeescript").empty?
12
+ end
13
+
14
+ def test_highlight_default_will_not_override
15
+ filter = SyntaxHighlightFilter.new \
16
+ "<pre lang='c'>hello</pre>", :highlight => "coffeescript"
17
+
18
+ doc = filter.call
19
+ assert doc.css(".highlight-coffeescript").empty?
20
+ assert !doc.css(".highlight-c").empty?
21
+ end
22
+ end
metadata CHANGED
@@ -1,136 +1,175 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: html-pipeline
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Ryan Tomayko
8
14
  - Jerry Cheung
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
- date: 2013-08-20 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: gemoji
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
+
19
+ date: 2013-08-31 00:00:00 -07:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
18
26
  - - ~>
19
- - !ruby/object:Gem::Version
20
- version: '1.0'
27
+ - !ruby/object:Gem::Version
28
+ hash: 15
29
+ segments:
30
+ - 1
31
+ - 0
32
+ version: "1.0"
21
33
  type: :runtime
34
+ name: gemoji
35
+ version_requirements: *id001
22
36
  prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ~>
26
- - !ruby/object:Gem::Version
27
- version: '1.0'
28
- - !ruby/object:Gem::Dependency
29
- name: nokogiri
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: '1.4'
37
+ - !ruby/object:Gem::Dependency
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 7
44
+ segments:
45
+ - 1
46
+ - 4
47
+ version: "1.4"
48
+ - - <
49
+ - !ruby/object:Gem::Version
50
+ hash: 3
51
+ segments:
52
+ - 1
53
+ - 6
54
+ version: "1.6"
35
55
  type: :runtime
56
+ name: nokogiri
57
+ version_requirements: *id002
36
58
  prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
59
+ - !ruby/object:Gem::Dependency
60
+ requirement: &id003 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
39
63
  - - ~>
40
- - !ruby/object:Gem::Version
41
- version: '1.4'
42
- - !ruby/object:Gem::Dependency
43
- name: github-markdown
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - ~>
47
- - !ruby/object:Gem::Version
48
- version: '0.5'
64
+ - !ruby/object:Gem::Version
65
+ hash: 1
66
+ segments:
67
+ - 0
68
+ - 5
69
+ version: "0.5"
49
70
  type: :runtime
71
+ name: github-markdown
72
+ version_requirements: *id003
50
73
  prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ~>
54
- - !ruby/object:Gem::Version
55
- version: '0.5'
56
- - !ruby/object:Gem::Dependency
57
- name: sanitize
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: '2.0'
74
+ - !ruby/object:Gem::Dependency
75
+ requirement: &id004 !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ hash: 7
81
+ segments:
82
+ - 2
83
+ version: "2"
84
+ - - <
85
+ - !ruby/object:Gem::Version
86
+ hash: 7
87
+ segments:
88
+ - 2
89
+ - 0
90
+ - 4
91
+ version: 2.0.4
63
92
  type: :runtime
93
+ name: sanitize
94
+ version_requirements: *id004
64
95
  prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
96
+ - !ruby/object:Gem::Dependency
97
+ requirement: &id005 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
67
100
  - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '2.0'
70
- - !ruby/object:Gem::Dependency
71
- name: rinku
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ~>
75
- - !ruby/object:Gem::Version
76
- version: '1.7'
101
+ - !ruby/object:Gem::Version
102
+ hash: 1
103
+ segments:
104
+ - 1
105
+ - 7
106
+ version: "1.7"
77
107
  type: :runtime
108
+ name: rinku
109
+ version_requirements: *id005
78
110
  prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
111
+ - !ruby/object:Gem::Dependency
112
+ requirement: &id006 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
81
115
  - - ~>
82
- - !ruby/object:Gem::Version
83
- version: '1.7'
84
- - !ruby/object:Gem::Dependency
85
- name: escape_utils
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- version: '0.3'
116
+ - !ruby/object:Gem::Version
117
+ hash: 13
118
+ segments:
119
+ - 0
120
+ - 3
121
+ version: "0.3"
91
122
  type: :runtime
123
+ name: escape_utils
124
+ version_requirements: *id006
92
125
  prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ~>
96
- - !ruby/object:Gem::Version
97
- version: '0.3'
98
- - !ruby/object:Gem::Dependency
99
- name: activesupport
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - '>='
103
- - !ruby/object:Gem::Version
104
- version: '2'
126
+ - !ruby/object:Gem::Dependency
127
+ requirement: &id007 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 7
133
+ segments:
134
+ - 2
135
+ version: "2"
136
+ - - <
137
+ - !ruby/object:Gem::Version
138
+ hash: 11
139
+ segments:
140
+ - 4
141
+ version: "4"
105
142
  type: :development
143
+ name: activesupport
144
+ version_requirements: *id007
106
145
  prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - '>='
110
- - !ruby/object:Gem::Version
111
- version: '2'
112
- - !ruby/object:Gem::Dependency
113
- name: github-linguist
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
146
+ - !ruby/object:Gem::Dependency
147
+ requirement: &id008 !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
116
150
  - - ~>
117
- - !ruby/object:Gem::Version
151
+ - !ruby/object:Gem::Version
152
+ hash: 19
153
+ segments:
154
+ - 2
155
+ - 6
156
+ - 2
118
157
  version: 2.6.2
119
158
  type: :development
159
+ name: github-linguist
160
+ version_requirements: *id008
120
161
  prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: 2.6.2
126
162
  description: GitHub HTML processing filters and utilities
127
- email:
163
+ email:
128
164
  - ryan@github.com
129
165
  - jerry@github.com
130
166
  executables: []
167
+
131
168
  extensions: []
169
+
132
170
  extra_rdoc_files: []
133
- files:
171
+
172
+ files:
134
173
  - .gitignore
135
174
  - .travis.yml
136
175
  - CHANGELOG.md
@@ -169,34 +208,45 @@ files:
169
208
  - test/html/pipeline/mention_filter_test.rb
170
209
  - test/html/pipeline/plain_text_input_filter_test.rb
171
210
  - test/html/pipeline/sanitization_filter_test.rb
211
+ - test/html/pipeline/syntax_highlight_filter_test.rb
172
212
  - test/html/pipeline/toc_filter_test.rb
173
213
  - test/html/pipeline_test.rb
174
214
  - test/test_helper.rb
215
+ has_rdoc: true
175
216
  homepage: https://github.com/jch/html-pipeline
176
- licenses:
217
+ licenses:
177
218
  - MIT
178
- metadata: {}
179
219
  post_install_message:
180
220
  rdoc_options: []
181
- require_paths:
221
+
222
+ require_paths:
182
223
  - lib
183
- required_ruby_version: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - '>='
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- required_rubygems_version: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - '>='
191
- - !ruby/object:Gem::Version
192
- version: '0'
224
+ required_ruby_version: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ hash: 3
230
+ segments:
231
+ - 0
232
+ version: "0"
233
+ required_rubygems_version: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ hash: 3
239
+ segments:
240
+ - 0
241
+ version: "0"
193
242
  requirements: []
243
+
194
244
  rubyforge_project:
195
- rubygems_version: 2.0.3
245
+ rubygems_version: 1.6.2
196
246
  signing_key:
197
- specification_version: 4
247
+ specification_version: 3
198
248
  summary: Helpers for processing content through a chain of filters
199
- test_files:
249
+ test_files:
200
250
  - test/helpers/mocked_instrumentation_service.rb
201
251
  - test/html/pipeline/absolute_source_filter_test.rb
202
252
  - test/html/pipeline/autolink_filter_test.rb
@@ -207,6 +257,7 @@ test_files:
207
257
  - test/html/pipeline/mention_filter_test.rb
208
258
  - test/html/pipeline/plain_text_input_filter_test.rb
209
259
  - test/html/pipeline/sanitization_filter_test.rb
260
+ - test/html/pipeline/syntax_highlight_filter_test.rb
210
261
  - test/html/pipeline/toc_filter_test.rb
211
262
  - test/html/pipeline_test.rb
212
263
  - test/test_helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 6e0e0c6ee2235a1a4ce9821e0ad2ff41b4669b31
4
- data.tar.gz: 93da7c411b1d922ac996dfccab1fdca4ce22b8cd
5
- SHA512:
6
- metadata.gz: 3cd39361db40f99caeaae06d9ba8a52efd9e71575d17d44c98d5b4b6a0e251da82096a6d758f524933614e414b15ccbeceb62ead54c5b0fdd9f0bcf58265e20d
7
- data.tar.gz: 9d130010673d83a2cba28bc831b84505635377e291c3cd18642e6b6e910beb5b5db4afdf2d039e2cacb0867edaf1ba96627360f547d667420f1a7d16cd82be06