jekyll-mentions 1.2.0 → 1.3.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.
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"