html-pipeline-rouge_filter 1.0.1 → 1.0.2
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 +4 -4
- data/.travis.yml +15 -3
- data/CHANGELOG.md +4 -0
- data/README.md +16 -7
- data/html-pipeline-rouge_filter.gemspec +3 -1
- data/lib/html/pipeline/rouge_filter.rb +6 -4
- data/lib/html/pipeline/rouge_filter/version.rb +1 -1
- data/test/rouge_filter_test.rb +51 -0
- data/test/test_helper.rb +3 -0
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25d87148900609c8565744a82dff5b2cff7ff67b
|
4
|
+
data.tar.gz: b24f984260a0a56a7f7b93d473aaa488c41259c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 890d96ef33003c9b30ca84c01482debc827991de61c4bcca7972052d6d30cf019fb76477856f78591260ed4a51884be10f5fb3783f765d6a3a1d2e81595968a4
|
7
|
+
data.tar.gz: f6be5266b8d30dc748feafa28afc661c5cb545ae0bc5efef97bbb0f078a5bca6dcbf456df79c7445ac3b287882fb7ab90f6eaf91e5e5cb01eddd0625287cfe07
|
data/.travis.yml
CHANGED
@@ -1,12 +1,24 @@
|
|
1
|
+
bundler_args: --retry=3 --jobs=3
|
2
|
+
cache: bundler
|
1
3
|
language: ruby
|
2
4
|
sudo: false
|
3
|
-
bundler_args: "--retry=3 --jobs=3"
|
4
5
|
rvm:
|
5
|
-
- 2.0
|
6
|
+
- 2.0.0
|
6
7
|
- 2.1
|
7
|
-
- 2.2
|
8
|
+
- 2.2.1
|
9
|
+
- 2.2.0
|
10
|
+
- jruby-head
|
11
|
+
- jruby-9.0.0.0.pre1
|
12
|
+
- rbx-2
|
8
13
|
- ruby-head
|
14
|
+
env:
|
15
|
+
global:
|
16
|
+
- JRUBY_OPTS="-J-Xmx1024M --debug"
|
9
17
|
matrix:
|
10
18
|
allow_failures:
|
19
|
+
- rvm: 2.2.0
|
20
|
+
- rvm: jruby-head
|
21
|
+
- rvm: jruby-9.0.0.0.pre1
|
22
|
+
- rvm: rbx-2
|
11
23
|
- rvm: ruby-head
|
12
24
|
fast_finish: true
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## Unreleased
|
4
4
|
|
5
|
+
## 1.0.2 - 2015.08.06
|
6
|
+
|
7
|
+
- Allow to use with `HTML::Pipeline` >= 1.11 [#3](https://github.com/JuanitoFatas/html-pipeline-rouge_filter/pull/3) by @townsen
|
8
|
+
|
5
9
|
## 1.0.1 - 2015.03.10
|
6
10
|
|
7
11
|
- Fix lexer finding logic [#1](https://github.com/JuanitoFatas/html-pipeline-rouge_filter/pull/1) by @JuanitoFatas
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
[Rouge](https://github.com/jneen/rouge) integration for [HTML::Pipeline](https://github.com/jch/html-pipeline).
|
4
4
|
|
5
|
+
This RubyGem requires Ruby 2.0+.
|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Add this line to your application's Gemfile:
|
@@ -20,22 +22,29 @@ Or install it yourself as:
|
|
20
22
|
|
21
23
|
## Usage
|
22
24
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
25
|
+
```ruby
|
26
|
+
require 'html/pipeline'
|
27
|
+
require 'html/pipeline/rouge_filter'
|
28
|
+
|
29
|
+
pipeline = HTML::Pipeline.new [
|
30
|
+
HTML::Pipeline::MarkdownFilter,
|
31
|
+
HTML::Pipeline::RougeFilter
|
32
|
+
]
|
33
|
+
|
34
|
+
result = pipeline.call <<-CODE.gsub(/^\s*/,'')
|
27
35
|
|
28
|
-
result = pipeline.call <<-CODE
|
29
36
|
```ruby
|
30
37
|
def foo
|
31
38
|
puts "foo"
|
32
39
|
end
|
33
40
|
```
|
41
|
+
|
34
42
|
CODE
|
35
43
|
|
36
|
-
|
44
|
+
puts result[:output]
|
45
|
+
```
|
37
46
|
|
38
|
-
Prints
|
47
|
+
Prints (without the linebreaks):
|
39
48
|
|
40
49
|
```html
|
41
50
|
<pre class="highlight highlight-ruby">
|
@@ -17,7 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "html-pipeline", "
|
20
|
+
spec.add_dependency "html-pipeline", ">= 1.11"
|
21
21
|
spec.add_dependency "rouge", "~> 1.8"
|
22
22
|
spec.add_dependency "activesupport"
|
23
|
+
|
24
|
+
spec.required_ruby_version = "~> 2.0"
|
23
25
|
end
|
@@ -27,10 +27,6 @@ module HTML
|
|
27
27
|
doc
|
28
28
|
end
|
29
29
|
|
30
|
-
def must_str(text)
|
31
|
-
text && text.to_s
|
32
|
-
end
|
33
|
-
|
34
30
|
def highlight_with(lexer, text)
|
35
31
|
formatter.format(lexer.lex(text))
|
36
32
|
end
|
@@ -46,6 +42,12 @@ module HTML
|
|
46
42
|
def lexer_for(lang)
|
47
43
|
Rouge::Lexer.find_fancy(lang) || Rouge::Lexers::PlainText
|
48
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def must_str(text)
|
49
|
+
text && text.to_s
|
50
|
+
end
|
49
51
|
end
|
50
52
|
end
|
51
53
|
end
|
data/test/rouge_filter_test.rb
CHANGED
@@ -23,4 +23,55 @@ class HTML::Pipeline::RougeFilterTest < Minitest::Test
|
|
23
23
|
assert doc.css(".highlight-coffeescript").empty?
|
24
24
|
assert !doc.css(".highlight-ruby").empty?
|
25
25
|
end
|
26
|
+
|
27
|
+
def test_unrecognized_lexer_will_not_raise_error
|
28
|
+
filter = RougeFilter.new \
|
29
|
+
"<pre lang='ruby'>hello</pre>"
|
30
|
+
|
31
|
+
assert_nothing_raised do
|
32
|
+
filter.lexer_for("not_exist")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_highlight_with_ruby
|
37
|
+
filter = RougeFilter.new \
|
38
|
+
"<pre lang='ruby'>hello</pre>"
|
39
|
+
|
40
|
+
assert_equal %(<pre class="highlight"><code><span class="n">hello</span></code></pre>), filter.highlight_with(Rouge::Lexers::Ruby, "hello").chomp
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_default_css_class
|
44
|
+
filter = RougeFilter.new \
|
45
|
+
"<pre lang='ruby'>hello</pre>"
|
46
|
+
|
47
|
+
assert_equal "highlight", filter.default_css_class
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_default_css_class_can_be_specified_by_context
|
51
|
+
filter = RougeFilter.new \
|
52
|
+
"<pre lang='ruby'>hello</pre>", css_class: "superlight"
|
53
|
+
|
54
|
+
assert_equal "superlight", filter.default_css_class
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_default_formatter
|
58
|
+
filter = RougeFilter.new \
|
59
|
+
"<pre lang='ruby'>hello</pre>"
|
60
|
+
|
61
|
+
assert_kind_of Rouge::Formatters::HTML, filter.formatter
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_default_lexer
|
65
|
+
filter = RougeFilter.new \
|
66
|
+
"<pre lang='ruby'>hello</pre>"
|
67
|
+
|
68
|
+
assert_equal Rouge::Lexers::PlainText, filter.lexer_for("not-exist")
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_lexer_can_be_specified
|
72
|
+
filter = RougeFilter.new \
|
73
|
+
"<pre lang='ruby'>hello</pre>"
|
74
|
+
|
75
|
+
assert_kind_of Rouge::Lexers::Shell, filter.lexer_for("shell")
|
76
|
+
end
|
26
77
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-pipeline-rouge_filter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juanito Fatas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: html-pipeline
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.11'
|
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.11'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -81,9 +81,9 @@ require_paths:
|
|
81
81
|
- lib
|
82
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
|
-
- - "
|
84
|
+
- - "~>"
|
85
85
|
- !ruby/object:Gem::Version
|
86
|
-
version: '0'
|
86
|
+
version: '2.0'
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
@@ -91,8 +91,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.4.
|
94
|
+
rubygems_version: 2.4.8
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Rouge integration with html-pipeline.
|
98
98
|
test_files: []
|
99
|
+
has_rdoc:
|