html-pipeline-gitlab 0.1.2 → 0.1.3
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/README.md +20 -6
- data/html-pipeline-gitlab.gemspec +3 -3
- data/lib/html/pipeline/gitlab.rb +3 -3
- data/lib/html/pipeline/gitlab/gitlab_emoji_filter.rb +9 -5
- data/lib/html/pipeline/gitlab/version.rb +1 -1
- data/test/html/pipeline/gitlab_gemoji_filter_test.rb +6 -6
- metadata +20 -20
- data/.travis.yml +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c84b06ddf12420f2ccdb9d2eb4e8704f6f4f5745
|
4
|
+
data.tar.gz: c5ad5e05767490da93d8a840698c3f1f29c9cb8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f86ed1f0880c9dc13d7fafc6e4a28afd803443d0676a19e7aeb0bc7178bcc5b3397f4476df95cdd63bbb79bf47b5b7c8f5c22d39f67175b77003e448d91eb63e
|
7
|
+
data.tar.gz: c3230cf3e24f63dc94688c6e365bed5647ce00e6a83a3094457ecf2c0e21c7548d20eb6240ad295758801a0761dee8b82abcc1febc10cb397aa38395c590e952
|
data/README.md
CHANGED
@@ -21,15 +21,29 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
$ gem install html-pipeline-gitlab
|
23
23
|
|
24
|
+
## Testing
|
25
|
+
|
26
|
+
Install required gems
|
27
|
+
|
28
|
+
```bash
|
29
|
+
bundle
|
30
|
+
```
|
31
|
+
|
32
|
+
and then run the test suite:
|
33
|
+
|
34
|
+
```bash
|
35
|
+
bundle exec rake test
|
36
|
+
```
|
37
|
+
|
24
38
|
## Filters
|
25
39
|
|
26
|
-
* `
|
40
|
+
* `GitlabEmojiFilter` - replaces emoji references with images from
|
27
41
|
[PhantomOpenEmoji](https://github.com/Genshin/PhantomOpenEmoji)
|
28
42
|
|
29
43
|
## Contributing
|
30
44
|
|
31
|
-
1. Fork it
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
45
|
+
1. Fork it
|
46
|
+
1. Create your feature branch (`git checkout -b my-new-feature`)
|
47
|
+
1. Commit your changes (`git commit -am 'Add some feature'`)
|
48
|
+
1. Push to the branch (`git push origin my-new-feature`)
|
49
|
+
1. Create a new Merge Request
|
@@ -6,11 +6,11 @@ require 'html/pipeline/gitlab/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'html-pipeline-gitlab'
|
8
8
|
spec.version = Html::Pipeline::Gitlab::VERSION
|
9
|
-
spec.authors = ['Robert Schilling']
|
9
|
+
spec.authors = ['Robert Schilling', 'Marin Jankovski']
|
10
10
|
spec.email = ['schilling.ro@gmail.com']
|
11
11
|
spec.summary = %q{Extension filters for html-pipeline used by GitLab}
|
12
12
|
spec.description = %q{Extension filters for html-pipeline used by GitLab}
|
13
|
-
spec.homepage = 'https://
|
13
|
+
spec.homepage = 'https://gitlab.com/gitlab-org/html-pipeline-gitlab'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'html-pipeline', '~> 1.11.0'
|
25
|
-
spec.add_runtime_dependency 'gitlab_emoji', '~> 0.0.1
|
25
|
+
spec.add_runtime_dependency 'gitlab_emoji', '~> 0.0.1'
|
26
26
|
spec.add_runtime_dependency 'sanitize', '~> 2.1'
|
27
27
|
end
|
data/lib/html/pipeline/gitlab.rb
CHANGED
@@ -3,17 +3,17 @@ require 'html/pipeline/gitlab/version'
|
|
3
3
|
|
4
4
|
module HTML
|
5
5
|
class Pipeline
|
6
|
-
class
|
6
|
+
class Gitlab
|
7
7
|
# GitLab related filters for html-pipeline. Implements new filters used
|
8
8
|
# by GitLab.
|
9
9
|
|
10
10
|
# Custom filter implementations
|
11
|
-
autoload :
|
11
|
+
autoload :GitlabEmojiFilter, 'html/pipeline/gitlab/gitlab_emoji_filter'
|
12
12
|
|
13
13
|
# Most used markdown pipeline in GitLab. Performs emoji replacement.
|
14
14
|
MarkdownPipeline = HTML::Pipeline.new [
|
15
15
|
SanitizationFilter,
|
16
|
-
|
16
|
+
GitlabEmojiFilter
|
17
17
|
]
|
18
18
|
end
|
19
19
|
end
|
@@ -2,10 +2,9 @@ require 'cgi'
|
|
2
2
|
require 'gitlab_emoji'
|
3
3
|
require 'html/pipeline/filter'
|
4
4
|
|
5
|
-
|
6
5
|
module HTML
|
7
6
|
class Pipeline
|
8
|
-
class
|
7
|
+
class Gitlab
|
9
8
|
# HTML filter that replaces :emoji: with images.
|
10
9
|
#
|
11
10
|
# Context:
|
@@ -13,7 +12,7 @@ module HTML
|
|
13
12
|
# :asset_path (optional) - url path to link to emoji sprite.
|
14
13
|
# :file_name can be used as a placeholder for the sprite file name.
|
15
14
|
# If no asset_path is set "emoji/:file_name" is used.
|
16
|
-
class
|
15
|
+
class GitlabEmojiFilter < Filter
|
17
16
|
def call
|
18
17
|
search_text_nodes(doc).each do |node|
|
19
18
|
content = node.to_html
|
@@ -57,7 +56,7 @@ module HTML
|
|
57
56
|
private
|
58
57
|
|
59
58
|
def emoji_url(name)
|
60
|
-
|
59
|
+
ActionController::Base.helpers.url_to_image("emoji/#{emoji_filename(name)}")
|
61
60
|
end
|
62
61
|
|
63
62
|
# Build a regexp that matches all valid :emoji: names.
|
@@ -74,7 +73,12 @@ module HTML
|
|
74
73
|
end
|
75
74
|
|
76
75
|
def emoji_filename(name)
|
77
|
-
|
76
|
+
# CGI.escape makes + into %20, skip that in this case
|
77
|
+
if name == "+1"
|
78
|
+
"+1.png"
|
79
|
+
else
|
80
|
+
"#{::CGI.escape(name)}.png"
|
81
|
+
end
|
78
82
|
end
|
79
83
|
end
|
80
84
|
end
|
@@ -1,31 +1,31 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'html/pipeline/gitlab'
|
3
3
|
|
4
|
-
class HTML::Pipeline::
|
5
|
-
|
4
|
+
class HTML::Pipeline::GitlabEmojiFilterTest < Minitest::Test
|
5
|
+
GitlabEmojiFilter = HTML::Pipeline::Gitlab::GitlabEmojiFilter
|
6
6
|
|
7
7
|
def test_emojify
|
8
|
-
filter =
|
8
|
+
filter = GitlabEmojiFilter.new('<p>:heart:</p>', { asset_root: 'https://foo.com' })
|
9
9
|
doc = filter.call
|
10
10
|
assert_match 'https://foo.com/emoji/heart.png', doc.search('img').attr('src').value
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_unsupported_emoji
|
14
14
|
block = '<p>:sheep:</p>'
|
15
|
-
filter =
|
15
|
+
filter = GitlabEmojiFilter.new(block, { asset_root: 'https://foo.com' })
|
16
16
|
doc = filter.call
|
17
17
|
assert_match block, doc.to_html
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_uri_encoding
|
21
|
-
filter =
|
21
|
+
filter = GitlabEmojiFilter.new('<p>:+1:</p>', { asset_root: 'https://foo.com' })
|
22
22
|
doc = filter.call
|
23
23
|
assert_match 'https://foo.com/emoji/%2B1.png', doc.search('img').attr('src').value
|
24
24
|
end
|
25
25
|
|
26
26
|
def test_required_context_validation
|
27
27
|
exception = assert_raises(ArgumentError) {
|
28
|
-
|
28
|
+
GitlabEmojiFilter.call("", {})
|
29
29
|
}
|
30
30
|
assert_match /:asset_root/, exception.message
|
31
31
|
end
|
metadata
CHANGED
@@ -1,83 +1,84 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-pipeline-gitlab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Schilling
|
8
|
+
- Marin Jankovski
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - ~>
|
18
|
+
- - "~>"
|
18
19
|
- !ruby/object:Gem::Version
|
19
20
|
version: '1.6'
|
20
21
|
type: :development
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
|
-
- - ~>
|
25
|
+
- - "~>"
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: '1.6'
|
27
28
|
- !ruby/object:Gem::Dependency
|
28
29
|
name: rake
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
30
31
|
requirements:
|
31
|
-
- - ~>
|
32
|
+
- - "~>"
|
32
33
|
- !ruby/object:Gem::Version
|
33
34
|
version: '10.0'
|
34
35
|
type: :development
|
35
36
|
prerelease: false
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
37
38
|
requirements:
|
38
|
-
- - ~>
|
39
|
+
- - "~>"
|
39
40
|
- !ruby/object:Gem::Version
|
40
41
|
version: '10.0'
|
41
42
|
- !ruby/object:Gem::Dependency
|
42
43
|
name: html-pipeline
|
43
44
|
requirement: !ruby/object:Gem::Requirement
|
44
45
|
requirements:
|
45
|
-
- - ~>
|
46
|
+
- - "~>"
|
46
47
|
- !ruby/object:Gem::Version
|
47
48
|
version: 1.11.0
|
48
49
|
type: :runtime
|
49
50
|
prerelease: false
|
50
51
|
version_requirements: !ruby/object:Gem::Requirement
|
51
52
|
requirements:
|
52
|
-
- - ~>
|
53
|
+
- - "~>"
|
53
54
|
- !ruby/object:Gem::Version
|
54
55
|
version: 1.11.0
|
55
56
|
- !ruby/object:Gem::Dependency
|
56
57
|
name: gitlab_emoji
|
57
58
|
requirement: !ruby/object:Gem::Requirement
|
58
59
|
requirements:
|
59
|
-
- - ~>
|
60
|
+
- - "~>"
|
60
61
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.0.1
|
62
|
+
version: 0.0.1
|
62
63
|
type: :runtime
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- - ~>
|
67
|
+
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.0.1
|
69
|
+
version: 0.0.1
|
69
70
|
- !ruby/object:Gem::Dependency
|
70
71
|
name: sanitize
|
71
72
|
requirement: !ruby/object:Gem::Requirement
|
72
73
|
requirements:
|
73
|
-
- - ~>
|
74
|
+
- - "~>"
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '2.1'
|
76
77
|
type: :runtime
|
77
78
|
prerelease: false
|
78
79
|
version_requirements: !ruby/object:Gem::Requirement
|
79
80
|
requirements:
|
80
|
-
- - ~>
|
81
|
+
- - "~>"
|
81
82
|
- !ruby/object:Gem::Version
|
82
83
|
version: '2.1'
|
83
84
|
description: Extension filters for html-pipeline used by GitLab
|
@@ -87,8 +88,7 @@ executables: []
|
|
87
88
|
extensions: []
|
88
89
|
extra_rdoc_files: []
|
89
90
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- .travis.yml
|
91
|
+
- ".gitignore"
|
92
92
|
- CHANGELOG
|
93
93
|
- Gemfile
|
94
94
|
- LICENSE
|
@@ -100,7 +100,7 @@ files:
|
|
100
100
|
- lib/html/pipeline/gitlab/version.rb
|
101
101
|
- test/html/pipeline/gitlab_gemoji_filter_test.rb
|
102
102
|
- test/test_helper.rb
|
103
|
-
homepage: https://
|
103
|
+
homepage: https://gitlab.com/gitlab-org/html-pipeline-gitlab
|
104
104
|
licenses:
|
105
105
|
- MIT
|
106
106
|
metadata: {}
|
@@ -110,17 +110,17 @@ require_paths:
|
|
110
110
|
- lib
|
111
111
|
required_ruby_version: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
|
-
- -
|
113
|
+
- - ">="
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
117
|
requirements:
|
118
|
-
- -
|
118
|
+
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.2.2
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Extension filters for html-pipeline used by GitLab
|
data/.travis.yml
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.1.0
|
4
|
-
- 2.0.0
|
5
|
-
- 1.9.3
|
6
|
-
before_install:
|
7
|
-
- sudo apt-get install -y libicu-dev
|
8
|
-
install:
|
9
|
-
- travis_retry bundle config build.nokogiri --use-system-libraries
|
10
|
-
- travis_retry bundle install
|
11
|
-
script: rake test
|
12
|
-
notifications:
|
13
|
-
email: false
|