jekyll_href 1.2.5 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,143 @@
1
+ module MSlinn
2
+ class HRefTag
3
+ private
4
+
5
+ # Does not look at or compute @link
6
+ def compute_linkk
7
+ return @link, nil if @link
8
+
9
+ linkk = @url
10
+ if linkk.nil? || !linkk
11
+ linkk = @helper.argv&.shift
12
+ @helper.params&.shift
13
+ @helper.keys_values&.delete(linkk)
14
+ return nil, error_no_uri if linkk.nil?
15
+ elsif @url.to_s.empty?
16
+ return nil, error_no_uri
17
+ end
18
+ [linkk, nil]
19
+ rescue HRefError => e
20
+ [nil, e]
21
+ end
22
+
23
+ def error_no_uri
24
+ msg = <<~END_MESSAGE
25
+ No URL was provided on #{@path}:#{@line_number} (after front matter).
26
+ <pre>{% href #{@argument_string.strip} %}</pre>
27
+ END_MESSAGE
28
+ @logger.error { JekyllPluginHelper.remove_html_tags msg.strip }
29
+ "<div class='href_error'>HRefError: #{msg}</div>"
30
+ end
31
+
32
+ # Sets @follow, @helper, @match, @path, @shy, @target, @url, @wbr
33
+ def globals_initial
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
58
+
59
+ return unless @tag_config
60
+
61
+ @die_on_href_error = @tag_config['die_on_href_error'] == true
62
+ @die_on_nomatch = @tag_config['die_on_nomatch'] == true
63
+ @pry_on_href_error = @tag_config['pry_on_href_error'] == true
64
+ end
65
+
66
+ # Might set @external_link, @follow, @local_link, @linkk, @target, and @text
67
+ def globals_update(tokens, linkk)
68
+ if linkk.start_with? 'mailto:'
69
+ handle_mailto linkk
70
+ 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
+ end
84
+
85
+ if @external_link
86
+ @target = ''
87
+ return
88
+ end
89
+ @follow = ''
90
+ @target = '' unless @blank
91
+ end
92
+
93
+ def handle_empty_text(linkk)
94
+ text = linkk
95
+ text = linkk&.gsub('/', '/&shy;') if @shy
96
+ text = linkk&.gsub('/', '/<wbr>') if @wbr
97
+ @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
102
+ linkk
103
+ elsif insecure_ip_address linkk
104
+ "http://#{linkk}"
105
+ else
106
+ "https://#{linkk}"
107
+ end
108
+ end
109
+
110
+ def handle_mailto(linkk)
111
+ @mailto_link = true
112
+ @local_link = @external_link = false
113
+ @link = linkk
114
+ @target = @follow = ''
115
+ @text = @helper.argv.join(' ')
116
+ return unless @text.empty?
117
+
118
+ text = linkk.delete_prefix('mailto:')
119
+ @text = "<code>#{text}</code>"
120
+ end
121
+
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
130
+ end
131
+
132
+ def insecure_ip_address(string)
133
+ return true if string.start_with? 'localhost'
134
+
135
+ return false unless IPAddress.valid? string
136
+
137
+ ip_address = IPAddress string
138
+ true if ip_address.loopback? || ip_address.private?
139
+ ensure
140
+ false
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,39 @@
1
+ module MSlinn
2
+ class HRefTag
3
+ private
4
+
5
+ def save_summary
6
+ return if @summary_exclude || @link_save.start_with?('mailto:') || @link_save.start_with?('#')
7
+
8
+ @summary = @summary.to_s.empty? ? @text : @summary.to_s
9
+ if @summary == true
10
+ warning = <<~END_WARNING
11
+ Warning: a href plugin keyword option was detected in the link text for #{@path} on line #{line_number}.
12
+ The href tag will not be included in the summary, and the link text will not have the word summary included.
13
+ This is probably unintentional. Consider using the label option to correct this problem."
14
+ END_WARNING
15
+ puts warning.red
16
+ return
17
+ end
18
+ return if @summary.class != String || @summary.empty?
19
+
20
+ @summary = @summary[0].upcase + @summary[1..]
21
+ @summary_href = "<a href='#{@link_save}'#{@target}#{@follow}>#{@summary}</a>"
22
+ mini_href = MiniHref.new(
23
+ follow: @follow,
24
+ html: @summary_href,
25
+ line_number: @line_number,
26
+ link: @link_save,
27
+ link_save: @link_save,
28
+ path: @path,
29
+ summary_exclude: @summary_exclude,
30
+ summary_href: @summary_href
31
+ )
32
+ if @link_save.start_with? 'http'
33
+ add_global_link_for_page mini_href
34
+ else
35
+ add_local_link_for_page mini_href
36
+ end
37
+ end
38
+ end
39
+ end
@@ -2,8 +2,8 @@ require 'jekyll_plugin_logger'
2
2
  require 'jekyll_plugin_support'
3
3
  require_relative 'jekyll_href/version'
4
4
 
5
- module HrefSummaryTag
6
- class HrefSummary < JekyllSupport::JekyllTag # rubocop:disable Metrics/ClassLength
5
+ module MSlinn
6
+ class HrefSummary < JekyllSupport::JekyllTag
7
7
  include JekyllHrefVersion
8
8
 
9
9
  # Class instance variables accumulate hrefs across invocations.
@@ -28,6 +28,11 @@ module HrefSummaryTag
28
28
  def render_impl
29
29
  @helper.gem_file __FILE__ # Enables attribution
30
30
  @include_local = @helper.parameter_specified? 'include_local'
31
+
32
+ @die_on_href_error = @tag_config['die_on_href_error'] == true if @tag_config
33
+ @pry_on_href_error = @tag_config['pry_on_href_error'] == true if @tag_config
34
+
35
+ @path = @page['path']
31
36
  global_refs = render_global_refs
32
37
  local_refs = render_local_refs
33
38
  have_refs = !(global_refs + local_refs).empty?
@@ -36,12 +41,19 @@ module HrefSummaryTag
36
41
  #{local_refs}
37
42
  #{@helper.attribute if @helper.attribution && have_refs}
38
43
  END_RENDER
44
+ rescue HRefError => e # jekyll_plugin_support handles StandardError
45
+ e.shorten_backtrace
46
+ msg = format_error_message e.message
47
+ @logger.error "#{e.class} raised #{msg}"
48
+ binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
49
+ raise e if @die_on_href_error
50
+
51
+ "<div class='href_error'>#{e.class} raised in #{self.class};\n#{msg}</div>"
39
52
  end
40
53
 
41
54
  def render_global_refs
42
55
  hrefs = HashArray.instance_variable_get(:@global_hrefs)
43
- path = @page['path']
44
- entries = hrefs[path]&.select { |h| h.path == path }
56
+ entries = hrefs[@path]&.select { |h| h.path == @path }
45
57
  return '' if entries.nil? || entries.empty?
46
58
 
47
59
  summaries = entries.map { |href| "<li>#{href.summary_href}</li>" }
@@ -61,8 +73,7 @@ module HrefSummaryTag
61
73
  return '' unless @include_local
62
74
 
63
75
  hrefs = HashArray.instance_variable_get(:@local_hrefs)
64
- path = @page['path']
65
- entries = hrefs[path]&.select { |h| h.path == path }
76
+ entries = hrefs[@path]&.select { |h| h.path == @path }
66
77
  return '' if entries.nil? || entries.empty?
67
78
 
68
79
  summary = entries.map { |href| "<li>#{href.summary_href}</li>" }
data/lib/href_tag.rb CHANGED
@@ -10,11 +10,13 @@ require_relative 'hash_array'
10
10
  # @license SPDX-License-Identifier: Apache-2.0
11
11
  # Generates an href.
12
12
 
13
- module HrefTag
13
+ module MSlinn
14
14
  MiniHref = Struct.new(:follow, :html, :link, :line_number, :link_save, :path, :summary_exclude, :summary_href, keyword_init: true)
15
15
 
16
+ HRefError = JekyllSupport.define_error
17
+
16
18
  # Implements href Jekyll tag
17
- class HrefTag < JekyllSupport::JekyllTag # rubocop:disable Metrics/ClassLength
19
+ class HRefTag < JekyllSupport::JekyllTag
18
20
  attr_reader :follow, :helper, :line_number, :link_save, :match, :page, :path, :site,
19
21
  :summary, :summary_exclude, :summary_href, :target, :text, :url
20
22
  attr_accessor :link
@@ -29,20 +31,18 @@ module HrefTag
29
31
  [follow, match, path, target, text] <=> [other.follow, other.match, other.path, other.target, other.text]
30
32
  end
31
33
 
32
- def to_s
33
- "On line #{line_number} of #{path}: #{follow} #{match} #{target} #{link} => '#{text}'"
34
- end
35
-
36
34
  # Method prescribed by the Jekyll plugin lifecycle.
37
35
  # @param liquid_context [Liquid::Context]
38
36
  # @return [String]
39
37
  def render_impl
40
38
  globals_initial
41
- linkk = compute_linkk
42
- linkk = replace_vars(linkk)
43
- linkk.delete_prefix('./') # normalize relative links
39
+ linkk, error_msg = compute_linkk
40
+ return error_msg unless linkk
41
+
42
+ linkk.delete_prefix './' # normalize relative links
44
43
  @url = linkk if @url
45
44
  @link_save = linkk
45
+
46
46
  @helper_save = @helper.clone
47
47
  globals_update(@helper.argv, linkk) # Sets @link and @text, might clear @follow and @target
48
48
  handle_match if @match
@@ -50,201 +50,25 @@ module HrefTag
50
50
  klass = " class='#{@klass}'" if @klass
51
51
  style = " style='#{@style}'" if @style
52
52
  "<a href='#{@link}'#{klass}#{style}#{@target}#{@follow}>#{@text}</a>"
53
+ rescue HRefError => e # jekyll_plugin_support handles StandardError
54
+ e.shorten_backtrace
55
+ msg = format_error_message e.message
56
+ @logger.error "#{e.class} raised #{msg}"
57
+ binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
58
+ raise e if @die_on_href_error
59
+
60
+ "<div class='href_error'>#{e.class} raised in #{self.class};\n#{msg}</div>"
53
61
  end
54
62
 
55
- private
56
-
57
- def save_summary
58
- return if @summary_exclude || @link_save.start_with?('mailto:') || @link_save.start_with?('#')
59
-
60
- @summary = @summary.to_s.empty? ? @text : @summary.to_s
61
- if @summary == true
62
- warning = <<~END_WARNING
63
- Warning: a href plugin keyword option was detected in the link text for #{@path} on line #{line_number}.
64
- The href tag will not be included in the summary, and the link text will not have the word summary included.
65
- This is probably unintentional. Consider using the label option to correct this problem."
66
- END_WARNING
67
- puts warning.red
68
- return
69
- end
70
- return if @summary.class != String || @summary.empty?
71
-
72
- @summary = @summary[0].upcase + @summary[1..]
73
- @summary_href = "<a href='#{@link_save}'#{@target}#{@follow}>#{@summary}</a>"
74
- mini_href = MiniHref.new(
75
- follow: @follow,
76
- html: @summary_href,
77
- line_number: @line_number,
78
- link: @link_save,
79
- link_save: @link_save,
80
- path: @path,
81
- summary_exclude: @summary_exclude,
82
- summary_href: @summary_href
83
- )
84
- if @link_save.start_with? 'http'
85
- add_global_link_for_page mini_href
86
- else
87
- add_local_link_for_page mini_href
88
- end
89
- end
90
-
91
- # Does not look at or compute @link
92
- def compute_linkk
93
- return @link if @link
94
-
95
- linkk = @url
96
- if linkk.nil? || !linkk
97
- linkk = @helper.argv&.shift
98
- @helper.params&.shift
99
- @helper.keys_values&.delete(linkk)
100
- dump_linkk_relations(linkk) if linkk.nil?
101
- elsif @url.to_s.empty?
102
- dump_linkk_relations(linkk)
103
- end
104
- linkk
105
- end
106
-
107
- def dump_linkk_relations(linkk)
108
- msg = <<~END_MESSAGE
109
- jekyll_href error: no url was provided on #{@path}:#{@line_number}.
110
- @helper.markup=#{@helper.markup}
111
- @helper.argv='#{@helper.argv}'
112
- linkk='#{linkk}'
113
- @match='#{@match}'
114
- @url='#{@url}'
115
- @follow='#{@follow}
116
- @target='#{@target}'
117
- END_MESSAGE
118
- abort msg.red
119
- end
120
-
121
- # Sets @follow, @helper, @match, @path, @shy, @target, @url, @wbr
122
- def globals_initial
123
- @path = @page['path']
124
- AllCollectionsHooks.compute(@site)
125
-
126
- @blank = @helper.parameter_specified? 'blank'
127
- @klass = @helper.parameter_specified? 'class'
128
- @follow = @helper.parameter_specified?('follow') ? '' : " rel='nofollow'"
129
- @match = @helper.parameter_specified? 'match'
130
- @label = @helper.parameter_specified? 'label'
131
- @summary_exclude = @helper.parameter_specified? 'summary_exclude'
132
- @shy = @helper.parameter_specified? 'shy'
133
- @style = @helper.parameter_specified? 'style'
134
- @summary = @helper.parameter_specified? 'summary'
135
- @target = @blank ? " target='_blank'" : nil
136
- @target ||= @helper.parameter_specified?('notarget') ? '' : " target='_blank'"
137
- @url = @helper.parameter_specified? 'url'
138
- @wbr = @helper.parameter_specified? 'wbr'
139
- end
140
-
141
- # Might set @follow, @linkk, @target, and @text
142
- def globals_update(tokens, linkk)
143
- if linkk.start_with? 'mailto:'
144
- @link = linkk
145
- @target = @follow = ''
146
- @text = @helper.argv.join(' ')
147
- if @text.empty?
148
- text = linkk.delete_prefix('mailto:')
149
- @text = "<code>#{text}</code>"
150
- end
151
- return
152
- else
153
- @text = @label || tokens.join(' ').strip
154
- if @text.to_s.empty?
155
- text = linkk
156
- text = linkk.gsub('/', '/&shy;') if @shy
157
- text = linkk.gsub('/', '/<wbr>') if @wbr
158
- @text = "<code>#{text}</code>"
159
- @link = if linkk.start_with?('http')
160
- linkk
161
- elsif insecure_ip_address linkk
162
- "http://#{linkk}"
163
- else
164
- "https://#{linkk}"
165
- end
166
- else
167
- @link = if @shy
168
- linkk.gsub('/', '/&shy;')
169
- elsif @wbr
170
- linkk.gsub('/', '/<wbr>')
171
- else
172
- linkk
173
- end
174
- end
175
- @link_save = @link
176
- end
177
-
178
- return if @link.start_with? 'http'
179
-
180
- @follow = ''
181
- @target = '' unless @blank
182
- end
183
-
184
- def handle_match
185
- match_post
186
- @follow = ''
187
- @target = '' unless @blank
188
- end
189
-
190
- # Might set @link and @text
191
- def match_post
192
- config = @site.config['href']
193
- @die_if_nomatch = !config.nil? && config['nomatch'] && config['nomatch'] == 'fatal'
194
- @path, @fragment = @link.split('#')
195
-
196
- @logger.debug do
197
- <<~END_DEBUG
198
- @link=#{@link}
199
- @site.posts.docs[0].url = #{@site.posts.docs[0].url}
200
- @site.posts.docs[0].path = #{@site.posts.docs[0].path}
201
- END_DEBUG
202
- end
203
-
204
- all_urls = @site.all_collections.map(&:url)
205
- compute_link_and_text(all_urls)
206
- end
207
-
208
- def compute_link_and_text(all_urls)
209
- url_matches = all_urls.select { |url| url&.include? @path }
210
- case url_matches.length
211
- when 0
212
- abort "href error: No url matches '#{@link}'" if @die_if_nomatch
213
- @link_save = @link = '#'
214
- @text = "<i>#{@link} is not available</i>"
215
- when 1
216
- @link = url_matches.first
217
- @link = "#{@link}##{@fragment}" if @fragment
218
- @link_save = @link
219
- else
220
- abort "Error: More than one url matched '#{@path}': #{url_matches.join(', ')}"
221
- end
222
- end
223
-
224
- def insecure_ip_address(string)
225
- return true if string.start_with? 'localhost'
226
-
227
- return false unless IPAddress.valid? string
228
-
229
- ip_address = IPAddress string
230
- return true if ip_address.loopback? || ip_address.private?
231
- rescue StandardError
232
- false
233
- ensure
234
- false
235
- end
236
-
237
- # Replace names in plugin-vars with values
238
- def replace_vars(text)
239
- variables = @site.config['plugin-vars']
240
- return text unless variables
241
-
242
- variables.each do |name, value|
243
- text = text.gsub "{{#{name}}}", value
244
- end
245
- text
63
+ def to_s
64
+ "On line #{line_number} of #{path}: #{follow} #{match} #{target} #{link} => '#{text}'"
246
65
  end
247
66
 
248
67
  JekyllPluginHelper.register(self, 'href')
249
68
  end
250
69
  end
70
+
71
+ require_relative 'href_match'
72
+ require_relative 'href_private'
73
+ require_relative 'href_page_title'
74
+ require_relative 'href_summary'
@@ -1,3 +1,3 @@
1
1
  module JekyllHrefVersion
2
- VERSION = '1.2.5'.freeze
2
+ VERSION = '1.2.7'.freeze
3
3
  end
data/lib/jekyll_href.rb CHANGED
@@ -4,6 +4,5 @@ require_relative 'href_summary_tag'
4
4
  HrefError = Class.new(Liquid::Error)
5
5
 
6
6
  module JekyllHrefModule
7
- include HrefTag
8
- include HrefSummaryTag
7
+ include MSlinn
9
8
  end
@@ -1,5 +1,5 @@
1
1
  module HashArraySpec
2
- require_relative '../lib/hash_array'
2
+ require_relative '../../lib/hash_array'
3
3
 
4
4
  RSpec.describe HashArray do
5
5
  let(:logger) do
data/spec/spec_helper.rb CHANGED
@@ -6,9 +6,7 @@ require 'yaml'
6
6
  require_relative "../lib/jekyll_href"
7
7
 
8
8
  RSpec.configure do |config|
9
- config.filter_run :focus
10
9
  # config.order = "random"
11
- config.run_all_when_everything_filtered = true
12
10
 
13
11
  # See https://relishapp.com/rspec/rspec-core/docs/command-line/only-failures
14
12
  config.example_status_persistence_file_path = "../spec/status_persistence.txt"
@@ -1,29 +1,15 @@
1
1
  example_id | status | run_time |
2
2
  ----------------------------------------------------------------- | ------ | --------------- |
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 |
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 |
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.5
4
+ version: 1.2.7
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-05-26 00:00:00.000000000 Z
11
+ date: 2023-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ipaddress
@@ -42,42 +42,30 @@ dependencies:
42
42
  name: jekyll_all_collections
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.3.0
48
45
  - - ">="
49
46
  - !ruby/object:Gem::Version
50
- version: 0.3.1
47
+ version: 0.3.3
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: 0.3.0
58
52
  - - ">="
59
53
  - !ruby/object:Gem::Version
60
- version: 0.3.1
54
+ version: 0.3.3
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: jekyll_plugin_support
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: 0.6.0
68
59
  - - ">="
69
60
  - !ruby/object:Gem::Version
70
- version: 0.6.1
61
+ version: 0.8.1
71
62
  type: :runtime
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
65
  requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: 0.6.0
78
66
  - - ">="
79
67
  - !ruby/object:Gem::Version
80
- version: 0.6.1
68
+ version: 0.8.1
81
69
  description: 'Generates an ''a href'' tag, possibly with target=''_blank'' and rel=''nofollow''.
82
70
 
83
71
  '
@@ -94,11 +82,15 @@ files:
94
82
  - Rakefile
95
83
  - jekyll_href.gemspec
96
84
  - lib/hash_array.rb
85
+ - lib/href_match.rb
86
+ - lib/href_page_title.rb
87
+ - lib/href_private.rb
88
+ - lib/href_summary.rb
97
89
  - lib/href_summary_tag.rb
98
90
  - lib/href_tag.rb
99
91
  - lib/jekyll_href.rb
100
92
  - lib/jekyll_href/version.rb
101
- - spec/hash_array_spec.rb
93
+ - spec/hash_array_spec/hash_array_spec.rb
102
94
  - spec/href_spec.rb
103
95
  - spec/spec_helper.rb
104
96
  - spec/status_persistence.txt
@@ -129,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
121
  - !ruby/object:Gem::Version
130
122
  version: '0'
131
123
  requirements: []
132
- rubygems_version: 3.3.3
124
+ rubygems_version: 3.3.7
133
125
  signing_key:
134
126
  specification_version: 4
135
127
  summary: Generates an 'a href' tag, possibly with target='_blank' and rel='nofollow'.