html-pipeline 0.0.14 → 0.1.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.
- data/.travis.yml +2 -1
- data/CHANGELOG.md +12 -0
- data/README.md +1 -1
- data/html-pipeline.gemspec +3 -3
- data/lib/html/pipeline/autolink_filter.rb +8 -4
- data/lib/html/pipeline/sanitization_filter.rb +6 -5
- data/lib/html/pipeline/syntax_highlight_filter.rb +1 -1
- data/lib/html/pipeline/toc_filter.rb +4 -3
- data/lib/html/pipeline/version.rb +1 -1
- data/test/html/pipeline/absolute_source_filter_test.rb +2 -3
- data/test/html/pipeline/autolink_filter_test.rb +8 -0
- data/test/html/pipeline/sanitization_filter_test.rb +19 -0
- data/test/html/pipeline/toc_filter_test.rb +12 -1
- metadata +151 -120
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.1.0
|
4
|
+
|
5
|
+
I realized I wasn't properly following [semver](http://semver.org) for interface
|
6
|
+
changes and new features. Starting from this release, semver will be followed.
|
7
|
+
|
8
|
+
* Whitelist table section elements in sanitization filter #55 mojavelinux
|
9
|
+
* Update readme typo #57 envygeeks
|
10
|
+
* TOC unicode characters and anchor names for Ruby > 1.9 #64 jakedouglas/non_english_anchors
|
11
|
+
* Add :skip_tags option for AutolinkFilter #65 pengwynn
|
12
|
+
* Fix CI dependency issues #67 jch
|
13
|
+
* Fix ignored test and add Ruby 2.0 to CI. #71, #72 tricknotes
|
14
|
+
|
3
15
|
## 0.0.14
|
4
16
|
|
5
17
|
* Remove unused can_access_repo? method jch
|
data/README.md
CHANGED
@@ -85,7 +85,7 @@ filter.call
|
|
85
85
|
|
86
86
|
* `MentionFilter` - replace `@user` mentions with links
|
87
87
|
* `AbsoluteSourceFilter` - replace relative image urls with fully qualified versions
|
88
|
-
* `
|
88
|
+
* `AutolinkFilter` - auto_linking urls in HTML
|
89
89
|
* `CamoFilter` - replace http image urls with [camo-fied](https://github.com/atmos/camo) https versions
|
90
90
|
* `EmailReplyFilter` - util filter for working with emails
|
91
91
|
* `EmojiFilter` - everyone loves [emoji](http://www.emoji-cheat-sheet.com/)!
|
data/html-pipeline.gemspec
CHANGED
@@ -16,12 +16,12 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.require_paths = ["lib"]
|
17
17
|
|
18
18
|
gem.add_dependency "gemoji", "~> 1.0"
|
19
|
-
gem.add_dependency "nokogiri", "~> 1.4"
|
19
|
+
gem.add_dependency "nokogiri", RUBY_VERSION < "1.9.2" ? [">= 1.4", "< 1.6"] : "~> 1.4"
|
20
20
|
gem.add_dependency "github-markdown", "~> 0.5"
|
21
|
-
gem.add_dependency "sanitize", "~> 2.0"
|
21
|
+
gem.add_dependency "sanitize", RUBY_VERSION < "1.9.2" ? [">= 2", "< 2.0.4"] : "~> 2.0"
|
22
22
|
gem.add_dependency "rinku", "~> 1.7"
|
23
23
|
gem.add_dependency "escape_utils", "~> 0.3"
|
24
|
-
gem.add_dependency "activesupport", ">= 2"
|
24
|
+
gem.add_dependency "activesupport", RUBY_VERSION < "1.9.3" ? [">= 2", "< 4"] : ">= 2"
|
25
25
|
|
26
26
|
gem.add_development_dependency "github-linguist", "~> 2.6.2"
|
27
27
|
end
|
@@ -5,18 +5,22 @@ module HTML
|
|
5
5
|
# HTML Filter for auto_linking urls in HTML.
|
6
6
|
#
|
7
7
|
# Context options:
|
8
|
-
# :autolink
|
9
|
-
# :
|
8
|
+
# :autolink - boolean whether to autolink urls
|
9
|
+
# :skip_tags - HTML tags inside which autolinking will be skipped.
|
10
|
+
# See Rinku.skip_tags
|
11
|
+
# :flags - additional Rinku flags. See https://github.com/vmg/rinku
|
10
12
|
#
|
11
13
|
# This filter does not write additional information to the context.
|
12
14
|
class AutolinkFilter < Filter
|
13
15
|
def call
|
14
16
|
return html if context[:autolink] == false
|
17
|
+
|
18
|
+
skip_tags = context[:skip_tags]
|
15
19
|
flags = 0
|
16
20
|
flags |= context[:flags] if context[:flags]
|
17
21
|
|
18
|
-
Rinku.auto_link(html, :urls, nil,
|
22
|
+
Rinku.auto_link(html, :urls, nil, skip_tags, flags)
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
22
|
-
end
|
26
|
+
end
|
@@ -25,15 +25,16 @@ module HTML
|
|
25
25
|
# of places we're using tables to contain formatted user content (like pull
|
26
26
|
# request review comments).
|
27
27
|
TABLE_ITEMS = Set.new(%w(tr td th).freeze)
|
28
|
-
TABLE
|
28
|
+
TABLE = 'table'.freeze
|
29
|
+
TABLE_SECTIONS = Set.new(%w(thead tbody tfoot).freeze)
|
29
30
|
|
30
31
|
# The main sanitization whitelist. Only these elements and attributes are
|
31
32
|
# allowed through by default.
|
32
33
|
WHITELIST = {
|
33
34
|
:elements => %w(
|
34
35
|
h1 h2 h3 h4 h5 h6 h7 h8 br b i strong em a pre code img tt
|
35
|
-
div ins del sup sub p ol ul table
|
36
|
-
kbd q samp var hr ruby rt rp li tr td th
|
36
|
+
div ins del sup sub p ol ul table thead tbody tfoot blockquote
|
37
|
+
dl dt dd kbd q samp var hr ruby rt rp li tr td th
|
37
38
|
),
|
38
39
|
:remove_contents => ['script'],
|
39
40
|
:attributes => {
|
@@ -75,7 +76,7 @@ module HTML
|
|
75
76
|
# Table child elements that are not contained by a <table> are removed.
|
76
77
|
lambda { |env|
|
77
78
|
name, node = env[:node_name], env[:node]
|
78
|
-
if TABLE_ITEMS.include?(name) && !node.ancestors.any? { |n| n.name == TABLE }
|
79
|
+
if (TABLE_SECTIONS.include?(name) || TABLE_ITEMS.include?(name)) && !node.ancestors.any? { |n| n.name == TABLE }
|
79
80
|
node.replace(node.children)
|
80
81
|
end
|
81
82
|
}
|
@@ -103,4 +104,4 @@ module HTML
|
|
103
104
|
end
|
104
105
|
end
|
105
106
|
end
|
106
|
-
end
|
107
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
begin
|
2
2
|
require 'linguist'
|
3
3
|
rescue LoadError
|
4
|
-
raise LoadError, "You need to install linguist before using the SyntaxHighlightFilter. See README.md for details"
|
4
|
+
raise LoadError, "You need to install 'github-linguist' before using the SyntaxHighlightFilter. See README.md for details"
|
5
5
|
end
|
6
6
|
|
7
7
|
module HTML
|
@@ -7,13 +7,14 @@ module HTML
|
|
7
7
|
# eventually generating the Table of Contents itself, with links
|
8
8
|
# to each header
|
9
9
|
class TableOfContentsFilter < Filter
|
10
|
+
PUNCTUATION_REGEXP = RUBY_VERSION > "1.9" ? /[^\p{Word}\- ]/u : /[^\w\- ]/
|
11
|
+
|
10
12
|
def call
|
11
13
|
headers = Hash.new(0)
|
12
14
|
doc.css('h1, h2, h3, h4, h5, h6').each do |node|
|
13
15
|
name = node.text.downcase
|
14
|
-
name.gsub!(
|
16
|
+
name.gsub!(PUNCTUATION_REGEXP, '') # remove punctuation
|
15
17
|
name.gsub!(' ', '-') # replace spaces with dash
|
16
|
-
name = EscapeUtils.escape_uri(name) # escape extended UTF-8 chars
|
17
18
|
|
18
19
|
uniq = (headers[name] > 0) ? "-#{headers[name]}" : ''
|
19
20
|
headers[name] += 1
|
@@ -25,4 +26,4 @@ module HTML
|
|
25
26
|
end
|
26
27
|
end
|
27
28
|
end
|
28
|
-
end
|
29
|
+
end
|
@@ -12,14 +12,13 @@ class HTML::Pipeline::AbsoluteSourceFilterTest < Test::Unit::TestCase
|
|
12
12
|
}
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def test_rewrites_root_urls
|
16
16
|
orig = %(<p><img src="/img.png"></p>)
|
17
|
-
puts AbsoluteSourceFilter.call(orig, @options).to_s
|
18
17
|
assert_equal "<p><img src=\"#{@image_base_url}/img.png\"></p>",
|
19
18
|
AbsoluteSourceFilter.call(orig, @options).to_s
|
20
19
|
end
|
21
20
|
|
22
|
-
def
|
21
|
+
def test_rewrites_relative_urls
|
23
22
|
orig = %(<p><img src="post/img.png"></p>)
|
24
23
|
assert_equal "<p><img src=\"#{@image_subpage_url}/img.png\"></p>",
|
25
24
|
AbsoluteSourceFilter.call(orig, @options).to_s
|
@@ -19,4 +19,12 @@ class HTML::Pipeline::AutolinkFilterTest < Test::Unit::TestCase
|
|
19
19
|
assert_equal '<p>"<a href="http://github">http://github</a>"</p>',
|
20
20
|
AutolinkFilter.to_html('<p>"http://github"</p>', :flags => Rinku::AUTOLINK_SHORT_DOMAINS)
|
21
21
|
end
|
22
|
+
|
23
|
+
def test_autolink_skip_tags
|
24
|
+
assert_equal '<code>"http://github.com"</code>',
|
25
|
+
AutolinkFilter.to_html('<code>"http://github.com"</code>')
|
26
|
+
|
27
|
+
assert_equal '<code>"<a href="http://github.com">http://github.com</a>"</code>',
|
28
|
+
AutolinkFilter.to_html('<code>"http://github.com"</code>', :skip_tags => %w(kbd script))
|
29
|
+
end
|
22
30
|
end
|
@@ -49,4 +49,23 @@ class HTML::Pipeline::SanitizationFilterTest < Test::Unit::TestCase
|
|
49
49
|
orig = '<script>JavaScript!</script>'
|
50
50
|
assert_equal "", SanitizationFilter.call(orig).to_s
|
51
51
|
end
|
52
|
+
|
53
|
+
def test_table_rows_and_cells_removed_if_not_in_table
|
54
|
+
orig = %(<tr><td>Foo</td></tr><td>Bar</td>)
|
55
|
+
assert_equal 'FooBar', SanitizationFilter.call(orig).to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_table_sections_removed_if_not_in_table
|
59
|
+
orig = %(<thead><tr><td>Foo</td></tr></thead>)
|
60
|
+
assert_equal 'Foo', SanitizationFilter.call(orig).to_s
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_table_sections_are_not_removed
|
64
|
+
orig = %(<table>
|
65
|
+
<thead><tr><th>Column 1</th></tr></thead>
|
66
|
+
<tfoot><tr><td>Sum</td></tr></tfoot>
|
67
|
+
<tbody><tr><td>1</td></tr></tbody>
|
68
|
+
</table>)
|
69
|
+
assert_equal orig, SanitizationFilter.call(orig).to_s
|
70
|
+
end
|
52
71
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require "test_helper"
|
2
3
|
|
3
4
|
class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
|
@@ -42,6 +43,16 @@ class HTML::Pipeline::TableOfContentsFilterTest < Test::Unit::TestCase
|
|
42
43
|
doc = TocFilter.call(orig)
|
43
44
|
assert_equal 6, doc.search('a').size
|
44
45
|
end
|
45
|
-
end
|
46
46
|
|
47
|
+
def test_anchors_with_utf8_characters
|
48
|
+
orig = %(<h1>日本語</h1>
|
49
|
+
<h1>Русский</h1)
|
50
|
+
|
51
|
+
rendered_h1s = TocFilter.call(orig).search('h1').map(&:to_s)
|
47
52
|
|
53
|
+
assert_equal "<h1>\n<a name=\"%E6%97%A5%E6%9C%AC%E8%AA%9E\" class=\"anchor\" href=\"#%E6%97%A5%E6%9C%AC%E8%AA%9E\"><span class=\"octicon octicon-link\"></span></a>日本語</h1>",
|
54
|
+
rendered_h1s[0]
|
55
|
+
assert_equal "<h1>\n<a name=\"%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9\" class=\"anchor\" href=\"#%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9\"><span class=\"octicon octicon-link\"></span></a>Русский</h1>",
|
56
|
+
rendered_h1s[1]
|
57
|
+
end if RUBY_VERSION > "1.9" # not sure how to make this work on 1.8.7
|
58
|
+
end
|
metadata
CHANGED
@@ -1,153 +1,175 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-pipeline
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Ryan Tomayko
|
9
14
|
- Jerry Cheung
|
10
15
|
autorequire:
|
11
16
|
bindir: bin
|
12
17
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
18
|
+
|
19
|
+
date: 2013-07-15 00:00:00 -07:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
16
23
|
name: gemoji
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '1.0'
|
23
|
-
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
|
-
requirements:
|
27
|
+
requirements:
|
28
28
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
requirements:
|
36
|
-
- - ~>
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '1.4'
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 15
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 0
|
34
|
+
version: "1.0"
|
39
35
|
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: nokogiri
|
40
39
|
prerelease: false
|
41
|
-
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
41
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 7
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 4
|
49
|
+
version: "1.4"
|
50
|
+
- - <
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
hash: 3
|
53
|
+
segments:
|
54
|
+
- 1
|
55
|
+
- 6
|
56
|
+
version: "1.6"
|
55
57
|
type: :runtime
|
58
|
+
version_requirements: *id002
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: github-markdown
|
56
61
|
prerelease: false
|
57
|
-
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ~>
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0.5'
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: sanitize
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
66
63
|
none: false
|
67
|
-
requirements:
|
64
|
+
requirements:
|
68
65
|
- - ~>
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
hash: 1
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
- 5
|
71
|
+
version: "0.5"
|
71
72
|
type: :runtime
|
73
|
+
version_requirements: *id003
|
74
|
+
- !ruby/object:Gem::Dependency
|
75
|
+
name: sanitize
|
72
76
|
prerelease: false
|
73
|
-
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '2.0'
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: rinku
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
82
78
|
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 7
|
83
|
+
segments:
|
84
|
+
- 2
|
85
|
+
version: "2"
|
86
|
+
- - <
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 7
|
89
|
+
segments:
|
90
|
+
- 2
|
91
|
+
- 0
|
92
|
+
- 4
|
93
|
+
version: 2.0.4
|
87
94
|
type: :runtime
|
95
|
+
version_requirements: *id004
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: rinku
|
88
98
|
prerelease: false
|
89
|
-
|
99
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
90
100
|
none: false
|
91
|
-
requirements:
|
101
|
+
requirements:
|
92
102
|
- - ~>
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
requirements:
|
100
|
-
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0.3'
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 1
|
105
|
+
segments:
|
106
|
+
- 1
|
107
|
+
- 7
|
108
|
+
version: "1.7"
|
103
109
|
type: :runtime
|
110
|
+
version_requirements: *id005
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: escape_utils
|
104
113
|
prerelease: false
|
105
|
-
|
114
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
106
115
|
none: false
|
107
|
-
requirements:
|
116
|
+
requirements:
|
108
117
|
- - ~>
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
requirements:
|
116
|
-
- - ! '>='
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '2'
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
hash: 13
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
- 3
|
123
|
+
version: "0.3"
|
119
124
|
type: :runtime
|
125
|
+
version_requirements: *id006
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: activesupport
|
120
128
|
prerelease: false
|
121
|
-
|
129
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
122
130
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
hash: 7
|
135
|
+
segments:
|
136
|
+
- 2
|
137
|
+
version: "2"
|
138
|
+
- - <
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
hash: 11
|
141
|
+
segments:
|
142
|
+
- 4
|
143
|
+
version: "4"
|
144
|
+
type: :runtime
|
145
|
+
version_requirements: *id007
|
146
|
+
- !ruby/object:Gem::Dependency
|
128
147
|
name: github-linguist
|
129
|
-
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
|
-
requirements:
|
132
|
-
- - ~>
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 2.6.2
|
135
|
-
type: :development
|
136
148
|
prerelease: false
|
137
|
-
|
149
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
138
150
|
none: false
|
139
|
-
requirements:
|
151
|
+
requirements:
|
140
152
|
- - ~>
|
141
|
-
- !ruby/object:Gem::Version
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
hash: 19
|
155
|
+
segments:
|
156
|
+
- 2
|
157
|
+
- 6
|
158
|
+
- 2
|
142
159
|
version: 2.6.2
|
160
|
+
type: :development
|
161
|
+
version_requirements: *id008
|
143
162
|
description: GitHub HTML processing filters and utilities
|
144
|
-
email:
|
163
|
+
email:
|
145
164
|
- ryan@github.com
|
146
165
|
- jerry@github.com
|
147
166
|
executables: []
|
167
|
+
|
148
168
|
extensions: []
|
169
|
+
|
149
170
|
extra_rdoc_files: []
|
150
|
-
|
171
|
+
|
172
|
+
files:
|
151
173
|
- .gitignore
|
152
174
|
- .travis.yml
|
153
175
|
- CHANGELOG.md
|
@@ -189,32 +211,41 @@ files:
|
|
189
211
|
- test/html/pipeline/toc_filter_test.rb
|
190
212
|
- test/html/pipeline_test.rb
|
191
213
|
- test/test_helper.rb
|
214
|
+
has_rdoc: true
|
192
215
|
homepage: https://github.com/jch/html-pipeline
|
193
|
-
licenses:
|
216
|
+
licenses:
|
194
217
|
- MIT
|
195
218
|
post_install_message:
|
196
219
|
rdoc_options: []
|
197
|
-
|
220
|
+
|
221
|
+
require_paths:
|
198
222
|
- lib
|
199
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
223
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
200
224
|
none: false
|
201
|
-
requirements:
|
202
|
-
- -
|
203
|
-
- !ruby/object:Gem::Version
|
204
|
-
|
205
|
-
|
225
|
+
requirements:
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
hash: 3
|
229
|
+
segments:
|
230
|
+
- 0
|
231
|
+
version: "0"
|
232
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
233
|
none: false
|
207
|
-
requirements:
|
208
|
-
- -
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
|
234
|
+
requirements:
|
235
|
+
- - ">="
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
hash: 3
|
238
|
+
segments:
|
239
|
+
- 0
|
240
|
+
version: "0"
|
211
241
|
requirements: []
|
242
|
+
|
212
243
|
rubyforge_project:
|
213
|
-
rubygems_version: 1.
|
244
|
+
rubygems_version: 1.6.2
|
214
245
|
signing_key:
|
215
246
|
specification_version: 3
|
216
247
|
summary: Helpers for processing content through a chain of filters
|
217
|
-
test_files:
|
248
|
+
test_files:
|
218
249
|
- test/helpers/mocked_instrumentation_service.rb
|
219
250
|
- test/html/pipeline/absolute_source_filter_test.rb
|
220
251
|
- test/html/pipeline/autolink_filter_test.rb
|