jekyll-mentions 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/jekyll-mentions.rb +20 -6
  3. metadata +23 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b515aa7b27b314a2816ada8cd789f8184f4c7e95
4
- data.tar.gz: b131642ac041798fda9cff29d25d4b716b77658b
2
+ SHA256:
3
+ metadata.gz: 8090d5f034e3e6580ba8532ddf6994019a3ac65bdba51124958ddee7fe20dfcf
4
+ data.tar.gz: 0a6dad4a4ef00908d9773e408efe169c11b9958f1c1aa36461a0a2c32ae817f0
5
5
  SHA512:
6
- metadata.gz: efbfd53ad4d2992e2c0424f75cc803c2fe1b1aca7a81275ce27ecb20ca0c9ec21221306e53694c5d3f4845cdac6c428c11b1a7c18b2960f1883825252cc3ad45
7
- data.tar.gz: 616f14c534cb4e7b38a28332dcb026aa7f0c3c7a310aa2a93bea0c4d44334a3d3db189cf309c61143a65bfd0815f7860bcf190cff041a3044ad8265b26f2d916
6
+ metadata.gz: a3979cd66900184782818d1ddb829d8029dd25c7fc27d8c9e7e6677c992aa10ff8a33d35d64a4c9508ceb9dce369719f870ee0f0fc5dc4bced0c82a85c551e50
7
+ data.tar.gz: 2ee4a7702dfc3a34afcff5004e150069874c2ab84c759228d41138942a72317fc1e9da80d7ae46424dfd1367255c2b8b945ea9034d4586605d2b5e55f9892674
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "jekyll"
2
4
  require "html/pipeline"
3
5
 
@@ -16,12 +18,17 @@ module Jekyll
16
18
  if doc.output.include? BODY_START_TAG
17
19
  parsed_doc = Nokogiri::HTML::Document.parse(doc.output)
18
20
  body = parsed_doc.at_css("body")
21
+
22
+ return unless body.to_html =~ filter_regex
23
+
19
24
  body.children = filter_with_mention(src).call(body.inner_html)[:output].to_s
20
25
  doc.output = parsed_doc.to_html
21
26
  else
27
+ return unless doc.output =~ filter_regex
22
28
  doc.output = filter_with_mention(src).call(doc.output)[:output].to_s
23
29
  end
24
30
  end
31
+ # rubocop:enable Metrics/AbcSize
25
32
 
26
33
  # Public: Create or fetch the filter for the given {{src}} base URL.
27
34
  #
@@ -30,15 +37,12 @@ module Jekyll
30
37
  # Returns an HTML::Pipeline instance for the given base URL.
31
38
  def filter_with_mention(src)
32
39
  filters[src] ||= HTML::Pipeline.new([
33
- HTML::Pipeline::MentionFilter
40
+ HTML::Pipeline::MentionFilter,
34
41
  ], { :base_url => src, :username_pattern => mention_username_pattern })
35
42
  end
36
43
 
37
44
  def mention_username_pattern
38
- Regexp.new(
39
- HTML::Pipeline::MentionFilter::UsernamePattern.source,
40
- Regexp::IGNORECASE
41
- )
45
+ @mention_username_pattern ||= %r![\w][\w-]*!
42
46
  end
43
47
 
44
48
  # Public: Filters hash where the key is the mention base URL.
@@ -85,6 +89,16 @@ module Jekyll
85
89
 
86
90
  private
87
91
 
92
+ def filter_regex
93
+ @filter_regex ||= begin
94
+ Regexp.new(
95
+ HTML::Pipeline::MentionFilter::MentionPatterns[mention_username_pattern]
96
+ )
97
+ rescue TypeError
98
+ %r!@\w+!
99
+ end
100
+ end
101
+
88
102
  def default_mention_base
89
103
  if !ENV["SSL"].to_s.empty? && !ENV["GITHUB_HOSTNAME"].to_s.empty?
90
104
  scheme = ENV["SSL"] == "true" ? "https://" : "http://"
@@ -97,6 +111,6 @@ module Jekyll
97
111
  end
98
112
  end
99
113
 
100
- Jekyll::Hooks.register [:pages, :documents], :post_render do |doc|
114
+ Jekyll::Hooks.register %i[pages documents], :post_render do |doc|
101
115
  Jekyll::Mentions.mentionify(doc) if Jekyll::Mentions.mentionable?(doc)
102
116
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-mentions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-29 00:00:00.000000000 Z
11
+ date: 2018-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: jekyll
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '4.0'
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
- version: '3.0'
26
+ version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: html-pipeline
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,61 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.3'
41
41
  - !ruby/object:Gem::Dependency
42
- name: activesupport
42
+ name: jekyll
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '4.0'
47
+ version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '4.0'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '12.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '12.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rdoc
70
+ name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '3.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '3.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: '0.51'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: '0.51'
97
97
  description:
98
98
  email: support@github.com
99
99
  executables: []
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  version: '0'
122
122
  requirements: []
123
123
  rubyforge_project:
124
- rubygems_version: 2.6.6
124
+ rubygems_version: 2.7.6
125
125
  signing_key:
126
126
  specification_version: 4
127
127
  summary: "@mention support for your Jekyll site"