jekyll_href 1.2.7 → 1.2.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9419e6938b722e6707825cca7dad7e1fe17393cdc5cf4af11b66b39c0a64d368
4
- data.tar.gz: f9dcabb8b9ba97cfc61de15cb7692143d5eb781e6089b8d3bef43e9dfa1569c4
3
+ metadata.gz: 8927ecf8ccf707335285be9467677e70958b442a80d26b64dd218e5364a7d3d0
4
+ data.tar.gz: a8676a2ba7eca1e6e69e76c56b688bbd7b9afcefce89a8ca95cdd7510125f2e5
5
5
  SHA512:
6
- metadata.gz: 1fa6194e1d9edbd1600b12196ea62e4b7665b7c64c64f5341028f572b2a9660c2f8aa02c269771e8af60652af084a37e44616ea76cae8489141bf0f5da26a33b
7
- data.tar.gz: 19845ac86ce700501d3b6a0217202597ba60c0a01994ef39c3190dc5c5f8f15d799660aa1a81c9e12f6a281430e997c92458b6342d52df6cc36e73dc9fd68c0e
6
+ metadata.gz: 48288f3dfb9a59461c402bf6bc9632a1d80a1f7a05384f86d2673c31c6bc739f7f375e4843fb5a370b82a404754988a3eac48873a7cf3460e90f516035b860c2
7
+ data.tar.gz: fbca9027c22d67524d50872fa7fd91a8230cb3c88110eb60cb4a06110e1050b8db4689730e7861d972394148740b2439f6f8c88d01b79b6a2590cf0d6001c377
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  # Change Log
2
2
 
3
3
 
4
+ ## 1.2.9 / 2024-07-17
5
+
6
+ * Fixed missing ` target="_blank"` for links without labels, when `blank` was specified.
7
+
8
+
9
+ ## 1.2.8 / 2023-12-31
10
+
11
+ * Fixed missing ` rel="nofollow"` for links without labels.
12
+
13
+
4
14
  ## 1.2.7 / 2023-12-09
5
15
 
6
16
  * Implements the `page_title` option.
data/jekyll_href.gemspec CHANGED
@@ -33,5 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'ipaddress'
34
34
  spec.add_dependency 'jekyll', '>= 3.5.0'
35
35
  spec.add_dependency 'jekyll_all_collections', '>= 0.3.3'
36
- spec.add_dependency 'jekyll_plugin_support', '>= 0.8.1'
36
+ spec.add_dependency 'jekyll_plugin_support', '>= 0.8.5'
37
+ spec.add_dependency 'typesafe_enum'
37
38
  end
data/lib/enums.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'typesafe_enum'
2
+
3
+ class LinkType < TypesafeEnum::Base
4
+ new :EXTERNAL
5
+ new :FRAGMENT
6
+ new :LOCAL
7
+ new :MAILTO
8
+ new :UNKNOWN
9
+ end
10
+
11
+ class LabelSource < TypesafeEnum::Base
12
+ new :FROM_PAGE_TITLE
13
+ new :FROM_EXPLICIT_LABEL
14
+ new :FROM_IMPLICIT_LABEL
15
+ end
16
+
17
+ class Hyphenation < TypesafeEnum::Base
18
+ new :NONE
19
+ new :SHY
20
+ new :WBR
21
+ end
data/lib/hash_array.rb CHANGED
@@ -10,7 +10,11 @@ module HashArray
10
10
  pre_existing = hash[enclosing_page].find { |h| h.link_save == href.link_save }
11
11
  if pre_existing
12
12
  if pre_existing.follow != href.follow
13
- @logger.warn "HRef tags for '#{href.link}' have inconsistent 'follow' keyword options on line #{href.line_number} of #{enclosing_page}"
13
+ @logger.warn <<~END_WARN
14
+ HRef tags for '#{href.link}' have inconsistent 'follow' keyword options on line #{href.line_number} of #{enclosing_page}:
15
+ Previous value: #{pre_existing.follow}
16
+ Current value: #{href.follow}
17
+ END_WARN
14
18
  end
15
19
  else
16
20
  hash[enclosing_page] << href unless href.summary_exclude
data/lib/href_match.rb CHANGED
@@ -18,15 +18,10 @@ module MSlinn
18
18
  end
19
19
  end
20
20
 
21
- def handle_match
22
- match_post
21
+ def handle_match(link)
23
22
  @follow = ''
24
23
  @target = '' unless @blank
25
- end
26
-
27
- # Might set @link and @text
28
- def match_post
29
- @path, @fragment = @link.split('#')
24
+ @path, @fragment = link.split('#')
30
25
 
31
26
  @logger.debug do
32
27
  <<~END_DEBUG
@@ -8,17 +8,17 @@ module MSlinn
8
8
  all_pages = @site.all_collections + @site.pages
9
9
  pages = if @match
10
10
  all_pages.select { |page| page.url&.include? path }
11
- elsif @label_source == :from_page_title
11
+ elsif @label_source == LabelSource::FROM_PAGE_TITLE
12
12
  all_pages.select { |page| page.url == path }
13
13
  end
14
14
  pages&.first
15
15
  end
16
16
 
17
+ # Handles links to Jekyll pages
18
+ # Uses the linked page title as the link text
17
19
  def handle_page_title(linkk)
18
20
  @follow = @target = ''
19
- @external_link = linkk.start_with? 'http'
20
- @local_link = !@external_link
21
- raise HRefError, 'href tags with page_title require local links.' unless @local_link
21
+ raise HRefError, 'href tags with page_title require local links.' unless @link_type == LinkType::LOCAL
22
22
 
23
23
  page = find_page linkk
24
24
  unless page
@@ -27,22 +27,7 @@ module MSlinn
27
27
  raise HRefError, msg
28
28
  end
29
29
  @text = @label = page.title
30
- rescue HRefError => e
31
- msg = format_error_message "#{e.message}\n<pre> {% href #{@argument_string.strip} %}</pre>"
32
- @text = "<div class='href_error'>#{msg}</div>"
33
- @link = linkk
34
-
35
- e.shorten_backtrace
36
- @logger.error { "#{e.class} raised #{JekyllPluginHelper.remove_html_tags msg}" }
37
- raise e if @die_on_href_error
38
-
39
- "<div class='href_error'>HRefError raised in #{self.class};\n#{msg}</div>"
40
- ensure
41
- if @text.to_s.empty?
42
- handle_empty_text linkk
43
- else
44
- handle_text linkk
45
- end
30
+ handle_empty_text linkk if @text.to_s.empty?
46
31
  @label
47
32
  end
48
33
  end
data/lib/href_private.rb CHANGED
@@ -10,7 +10,7 @@ module MSlinn
10
10
  if linkk.nil? || !linkk
11
11
  linkk = @helper.argv&.shift
12
12
  @helper.params&.shift
13
- @helper.keys_values&.delete(linkk)
13
+ @helper.keys_values&.delete linkk
14
14
  return nil, error_no_uri if linkk.nil?
15
15
  elsif @url.to_s.empty?
16
16
  return nil, error_no_uri
@@ -29,32 +29,42 @@ module MSlinn
29
29
  "<div class='href_error'>HRefError: #{msg}</div>"
30
30
  end
31
31
 
32
- # Sets @follow, @helper, @match, @path, @shy, @target, @url, @wbr
32
+ # Sets @follow, @helper, @match, @path, @target, @url, @hyphenation
33
33
  def globals_initial
34
34
  @path = @page['path']
35
- AllCollectionsHooks.compute(@site)
36
-
37
- @blank = @helper.parameter_specified? 'blank'
38
- @klass = @helper.parameter_specified? 'class'
39
- @follow = @helper.parameter_specified?('follow') ? '' : " rel='nofollow'"
40
- @label = @helper.parameter_specified? 'label'
41
- @match = @helper.parameter_specified? 'match'
42
- @shy = @helper.parameter_specified? 'shy'
43
- @style = @helper.parameter_specified? 'style'
44
- @summary = @helper.parameter_specified? 'summary'
45
- @summary_exclude = @helper.parameter_specified? 'summary_exclude'
46
- @target = @blank ? " target='_blank'" : nil
47
- @target ||= @helper.parameter_specified?('notarget') ? '' : " target='_blank'"
48
- @url = @helper.parameter_specified? 'url'
49
- @wbr = @helper.parameter_specified? 'wbr'
50
-
51
- @label_source = if @helper.parameter_specified? 'page_title'
52
- :from_page_title
53
- elsif @label
54
- :from_explicit_label
55
- else
56
- :from_implicit_label
57
- end
35
+ AllCollectionsHooks.compute @site
36
+ @hyphenation = Hyphenation::NONE
37
+
38
+ @blank = @helper.parameter_specified? 'blank'
39
+ @klass = @helper.parameter_specified? 'class'
40
+ @follow_specified = @helper.parameter_specified?('follow')
41
+ @follow = @follow_specified ? '' : ' rel="nofollow"'
42
+ @label = @helper.parameter_specified? 'label'
43
+ @match = @helper.parameter_specified? 'match'
44
+ @hyphenation = Hyphenation::SHY if @helper.parameter_specified? 'shy'
45
+ @style = @helper.parameter_specified? 'style'
46
+ @summary = @helper.parameter_specified? 'summary'
47
+ @summary_exclude = @helper.parameter_specified? 'summary_exclude'
48
+ @target = @blank ? " target='_blank'" : nil
49
+ @target ||= @helper.parameter_specified?('notarget') ? '' : " target='_blank'"
50
+ @url = @helper.parameter_specified? 'url'
51
+
52
+ if @helper.parameter_specified? 'wbr' # <wbr> has precedence over &shy;
53
+ if @hyphenation == Hyphenation::SHY
54
+ @logger.info do
55
+ "Warning: wbr and shy were both specified for the href tag on line #{@line_number} (after front matter) of #{@page['path']}"
56
+ end
57
+ end
58
+ @hyphenation = Hyphenation::WBR
59
+ end
60
+
61
+ @label_source = if @helper.parameter_specified? 'page_title'
62
+ LabelSource::FROM_PAGE_TITLE
63
+ elsif @label
64
+ LabelSource::FROM_EXPLICIT_LABEL
65
+ else
66
+ LabelSource::FROM_IMPLICIT_LABEL
67
+ end
58
68
 
59
69
  return unless @tag_config
60
70
 
@@ -63,42 +73,46 @@ module MSlinn
63
73
  @pry_on_href_error = @tag_config['pry_on_href_error'] == true
64
74
  end
65
75
 
66
- # Might set @external_link, @follow, @local_link, @linkk, @target, and @text
76
+ # Sets @link_type
77
+ # Might set @follow, @link, @link_save and @text
67
78
  def globals_update(tokens, linkk)
79
+ @link_type = LinkType::UNKNOWN
80
+
68
81
  if linkk.start_with? 'mailto:'
69
82
  handle_mailto linkk
70
83
  return
71
- else
72
- if @label_source == :from_page_title
73
- handle_page_title linkk
74
- return
75
- end
76
- @text = @label || tokens.join(' ').strip
77
- if @text.to_s.empty?
78
- handle_empty_text linkk
79
- else
80
- handle_text linkk
81
- end
82
- @link_save = @link
83
84
  end
84
85
 
85
- if @external_link
86
- @target = ''
87
- return
88
- end
86
+ @link_type = if linkk.start_with? 'http'
87
+ LinkType::EXTERNAL
88
+ elsif linkk.start_with? '#'
89
+ LinkType::FRAGMENT
90
+ else
91
+ LinkType::LOCAL
92
+ end
93
+
94
+ @follow = !@follow_specified && @link_type == LinkType::EXTERNAL ? ' rel="nofollow"' : ''
95
+
96
+ handle_page_title linkk if @label_source == LabelSource::FROM_PAGE_TITLE
97
+ @text = @label || tokens.join(' ').strip
98
+ @link = if @text.to_s.empty?
99
+ handle_empty_text linkk
100
+ else
101
+ linkk
102
+ end
103
+ @link_save = @link
104
+ return if @link_type == LinkType::EXTERNAL
105
+
89
106
  @follow = ''
90
107
  @target = '' unless @blank
108
+ nil
91
109
  end
92
110
 
111
+ # Sets @text and @link
93
112
  def handle_empty_text(linkk)
94
- text = linkk
95
- text = linkk&.gsub('/', '/&shy;') if @shy
96
- text = linkk&.gsub('/', '/<wbr>') if @wbr
113
+ text = hyphenate linkk
97
114
  @text = "<code>#{text}</code>"
98
- @external_link = linkk.start_with? 'http'
99
- @local_link = !@external_link
100
- @mailto_link = false
101
- @link = if @external_link
115
+ @link = if linkk.start_with? '#'
102
116
  linkk
103
117
  elsif insecure_ip_address linkk
104
118
  "http://#{linkk}"
@@ -108,29 +122,28 @@ module MSlinn
108
122
  end
109
123
 
110
124
  def handle_mailto(linkk)
111
- @mailto_link = true
112
- @local_link = @external_link = false
125
+ @link_type = LinkType::MAILTO
113
126
  @link = linkk
114
127
  @target = @follow = ''
115
- @text = @helper.argv.join(' ')
128
+ @text = @label || @helper.argv.join(' ')
116
129
  return unless @text.empty?
117
130
 
118
- text = linkk.delete_prefix('mailto:')
131
+ text = hyphenate(linkk.delete_prefix('mailto:'))
119
132
  @text = "<code>#{text}</code>"
120
133
  end
121
134
 
122
- def handle_text(linkk)
123
- @link = if @shy
124
- linkk&.gsub('/', '/&shy;')
125
- elsif @wbr
126
- linkk&.gsub('/', '/<wbr>')
127
- else
128
- linkk
129
- end
135
+ def hyphenate(linkk)
136
+ if @hyphenation == Hyphenation::WBR
137
+ linkk&.gsub('/', '/<wbr>')
138
+ elsif @hyphenation == Hyphenation::SHY
139
+ linkk&.gsub('/', '/&shy;')
140
+ else
141
+ linkk
142
+ end
130
143
  end
131
144
 
132
145
  def insecure_ip_address(string)
133
- return true if string.start_with? 'localhost'
146
+ return true if string.start_with?('localhost', 'http://localhost')
134
147
 
135
148
  return false unless IPAddress.valid? string
136
149
 
data/lib/href_summary.rb CHANGED
@@ -6,9 +6,9 @@ module MSlinn
6
6
  return if @summary_exclude || @link_save.start_with?('mailto:') || @link_save.start_with?('#')
7
7
 
8
8
  @summary = @summary.to_s.empty? ? @text : @summary.to_s
9
- if @summary == true
9
+ if @summary.to_s == 'true'
10
10
  warning = <<~END_WARNING
11
- Warning: a href plugin keyword option was detected in the link text for #{@path} on line #{line_number}.
11
+ Warning: The 'summary' href plugin keyword option was detected in the link text for #{@path} on line #{line_number}.
12
12
  The href tag will not be included in the summary, and the link text will not have the word summary included.
13
13
  This is probably unintentional. Consider using the label option to correct this problem."
14
14
  END_WARNING
data/lib/href_tag.rb CHANGED
@@ -3,6 +3,7 @@ require 'jekyll_all_collections'
3
3
  require 'jekyll_plugin_logger'
4
4
  require 'jekyll_plugin_support'
5
5
  require 'liquid'
6
+ require_relative 'enums'
6
7
  require_relative 'jekyll_href/version'
7
8
  require_relative 'hash_array'
8
9
 
@@ -45,14 +46,17 @@ module MSlinn
45
46
 
46
47
  @helper_save = @helper.clone
47
48
  globals_update(@helper.argv, linkk) # Sets @link and @text, might clear @follow and @target
48
- handle_match if @match
49
+ handle_match(@link) if @match
50
+ raise HrefError, "@link_type was not set" if @link_type == LinkType::UNKNOWN
51
+
49
52
  save_summary
50
53
  klass = " class='#{@klass}'" if @klass
51
54
  style = " style='#{@style}'" if @style
52
55
  "<a href='#{@link}'#{klass}#{style}#{@target}#{@follow}>#{@text}</a>"
53
56
  rescue HRefError => e # jekyll_plugin_support handles StandardError
57
+ msg = format_error_message "#{e.message}\n<pre> {% href #{@argument_string.strip} %}</pre>"
58
+ @text = "<div class='href_error'>#{msg}</div>"
54
59
  e.shorten_backtrace
55
- msg = format_error_message e.message
56
60
  @logger.error "#{e.class} raised #{msg}"
57
61
  binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
58
62
  raise e if @die_on_href_error
@@ -1,3 +1,3 @@
1
1
  module JekyllHrefVersion
2
- VERSION = '1.2.7'.freeze
2
+ VERSION = '1.2.9'.freeze
3
3
  end
data/lib/jekyll_href.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require_relative 'href_tag'
2
2
  require_relative 'href_summary_tag'
3
3
 
4
- HrefError = Class.new(Liquid::Error)
4
+ HrefError = Class.new Liquid::Error
5
5
 
6
6
  module JekyllHrefModule
7
7
  include MSlinn
@@ -1,15 +1,29 @@
1
1
  example_id | status | run_time |
2
2
  ----------------------------------------------------------------- | ------ | --------------- |
3
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:1] | passed | 0.00938 seconds |
4
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:2] | failed | 0.01389 seconds |
5
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:3] | failed | 0.00319 seconds |
6
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:4] | failed | 0.00211 seconds |
7
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:5] | failed | 0.00196 seconds |
8
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:6] | failed | 0.00205 seconds |
9
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:7] | passed | 0.00212 seconds |
10
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:8] | failed | 0.00209 seconds |
11
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:9] | failed | 0.0021 seconds |
12
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:10] | passed | 0.00278 seconds |
13
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:11] | passed | 0.00237 seconds |
14
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:12] | passed | 0.00218 seconds |
15
- /mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:13] | passed | 0.00211 seconds |
3
+ ./spec/hash_array_spec.rb[1:1] | passed | 0.17104 seconds |
4
+ ./spec/href_spec.rb[1:1] | passed | 0.03236 seconds |
5
+ ./spec/href_spec.rb[1:2] | passed | 0.02884 seconds |
6
+ ./spec/href_spec.rb[1:3] | passed | 0.02956 seconds |
7
+ ./spec/href_spec.rb[1:4] | passed | 0.02841 seconds |
8
+ ./spec/href_spec.rb[1:5] | passed | 0.02897 seconds |
9
+ ./spec/href_spec.rb[1:6] | passed | 0.02866 seconds |
10
+ ./spec/href_spec.rb[1:7] | passed | 0.02966 seconds |
11
+ ./spec/href_spec.rb[1:8] | passed | 0.02983 seconds |
12
+ ./spec/href_spec.rb[1:9] | passed | 0.02735 seconds |
13
+ ./spec/href_spec.rb[1:10] | passed | 0.02928 seconds |
14
+ ./spec/href_spec.rb[1:11] | passed | 0.02861 seconds |
15
+ ./spec/href_spec.rb[1:12] | passed | 0.02958 seconds |
16
+ ./spec/href_spec.rb[1:13] | passed | 0.02714 seconds |
17
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:1] | passed | 0.02582 seconds |
18
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:2] | passed | 0.01031 seconds |
19
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:3] | passed | 0.01045 seconds |
20
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:4] | passed | 0.01038 seconds |
21
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:5] | passed | 0.01081 seconds |
22
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:6] | passed | 0.01053 seconds |
23
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:7] | passed | 0.01125 seconds |
24
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:8] | passed | 0.01113 seconds |
25
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:9] | passed | 0.01088 seconds |
26
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:10] | passed | 0.01066 seconds |
27
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:11] | failed | 0.06099 seconds |
28
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:12] | passed | 0.01096 seconds |
29
+ /mnt/_/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:13] | passed | 0.01028 seconds |
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll_href
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.7
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-27 00:00:00.000000000 Z
11
+ date: 2024-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ipaddress
@@ -58,14 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.8.1
61
+ version: 0.8.5
62
62
  type: :runtime
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.8.1
68
+ version: 0.8.5
69
+ - !ruby/object:Gem::Dependency
70
+ name: typesafe_enum
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: 'Generates an ''a href'' tag, possibly with target=''_blank'' and rel=''nofollow''.
70
84
 
71
85
  '
@@ -81,6 +95,7 @@ files:
81
95
  - README.md
82
96
  - Rakefile
83
97
  - jekyll_href.gemspec
98
+ - lib/enums.rb
84
99
  - lib/hash_array.rb
85
100
  - lib/href_match.rb
86
101
  - lib/href_page_title.rb
@@ -121,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
136
  - !ruby/object:Gem::Version
122
137
  version: '0'
123
138
  requirements: []
124
- rubygems_version: 3.3.7
139
+ rubygems_version: 3.4.22
125
140
  signing_key:
126
141
  specification_version: 4
127
142
  summary: Generates an 'a href' tag, possibly with target='_blank' and rel='nofollow'.