jekyll_href 1.2.2 → 1.2.4
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/.rubocop.yml +1 -1
- data/CHANGELOG.md +8 -0
- data/README.md +10 -0
- data/jekyll_href.gemspec +1 -1
- data/lib/href_tag.rb +35 -3
- data/lib/jekyll_href/version.rb +1 -1
- metadata +17 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13925ae2b44abe077101e5302d6aee8a640cdf3c50dcb4a29c76e2c355dae039
|
4
|
+
data.tar.gz: cf41c3a1c8424fc3e3ba67ccf6f27238e71766c72ed7006442291d855a933c4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afa3c62bf2806362a3e52d6978a8ea9ad3b5eb21e5f685b5328c04c0e19728e680a58961bd0daac805fcfbef1f031e98c6de769b085c9c8e4f058a209793c325
|
7
|
+
data.tar.gz: ce210b8cecefb1282991e9f4cca6ca5f80e7d94b9738f875f4848e9c445e24744e57c5a93f099e83362ed6e10448a38499f1907b96a04ef402db63710589f2aa
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## 1.2.4 / 2023-05-18
|
2
|
+
* When only a URI is provided, the plugin now generates the `http` scheme for IP4 & IP6 loopback addresses like
|
3
|
+
`localhost`, and `127.0.0.0`, as well as private IP4 addresses like 192.168.0.0 and 172.16.0.0;
|
4
|
+
otherwise it generates the `https` scheme.
|
5
|
+
|
6
|
+
## 1.2.3 / 2023-05-16
|
7
|
+
* Added `label` option.
|
8
|
+
|
1
9
|
## 1.2.2 / 2023-03-25
|
2
10
|
* Added **References** capability:
|
3
11
|
* Added `summary_exclude` keyword option to `href` tag.
|
data/README.md
CHANGED
@@ -85,6 +85,15 @@ If both are specified, `blank` prevails.
|
|
85
85
|
### `follow`
|
86
86
|
To suppress the `nofollow` attribute, preface the link with the word `follow`.
|
87
87
|
|
88
|
+
### `label='whatever you want'`
|
89
|
+
If the text to be linked contains an optional keyword argument,
|
90
|
+
for example `summary`, that word will be removed from the displayed link text,
|
91
|
+
unless the link text is provided via the `label` option.
|
92
|
+
Both of the following produce the same output:
|
93
|
+
```
|
94
|
+
{% href https://mslinn.com label="This is a summary" %}
|
95
|
+
{% href label="This is a summary" https://mslinn.com %}
|
96
|
+
```
|
88
97
|
|
89
98
|
### `notarget`
|
90
99
|
To suppress the `target` attribute, preface the link with the word `notarget`.
|
@@ -130,6 +139,7 @@ Expands to:
|
|
130
139
|
### `summary`
|
131
140
|
The `summary` name/value option provides an override for the linked text in the **References** section
|
132
141
|
generated by the `{% href_summary %}` tag.
|
142
|
+
If the value is the empty string, or no value is provided, the `href` tag is not included in the page summary.
|
133
143
|
|
134
144
|
|
135
145
|
### `summary_exclude`
|
data/jekyll_href.gemspec
CHANGED
@@ -28,9 +28,9 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
spec.required_ruby_version = '>= 2.6.0'
|
30
30
|
spec.summary = "Generates an 'a href' tag, possibly with target='_blank' and rel='nofollow'."
|
31
|
-
spec.test_files = spec.files.grep(%r!^(test|spec|features)/!)
|
32
31
|
spec.version = JekyllHrefVersion::VERSION
|
33
32
|
|
33
|
+
spec.add_dependency 'ipaddress'
|
34
34
|
spec.add_dependency 'jekyll', '>= 3.5.0'
|
35
35
|
spec.add_dependency 'jekyll_all_collections', '~> 0.3.0', '>= 0.3.1'
|
36
36
|
spec.add_dependency 'jekyll_plugin_support', '~> 0.6.0', '>= 0.6.1'
|
data/lib/href_tag.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'ipaddress'
|
1
2
|
require 'jekyll_all_collections'
|
2
3
|
require 'jekyll_plugin_logger'
|
3
4
|
require 'jekyll_plugin_support'
|
@@ -55,6 +56,17 @@ module HrefTag
|
|
55
56
|
return if @summary_exclude || @link_save.start_with?('mailto:') || @link_save.start_with?('#')
|
56
57
|
|
57
58
|
@summary = @summary.to_s.empty? ? @text : @summary.to_s
|
59
|
+
if @summary == true
|
60
|
+
warning = <<~END_WARNING
|
61
|
+
Warning: a href plugin keyword option was detected in the link text for #{@path} on line #{line_number}.
|
62
|
+
The href tag will not be included in the summary, and the link text will not have the word summary included.
|
63
|
+
This is probably unintentional. Consider using the label option to correct this problem."
|
64
|
+
END_WARNING
|
65
|
+
puts warning.red
|
66
|
+
return
|
67
|
+
end
|
68
|
+
return if @summary.class != String || @summary.empty?
|
69
|
+
|
58
70
|
@summary = @summary[0].upcase + @summary[1..]
|
59
71
|
@summary_href = "<a href='#{@link_save}'#{@target}#{@follow}>#{@summary}</a>"
|
60
72
|
mini_href = MiniHref.new(
|
@@ -109,9 +121,10 @@ module HrefTag
|
|
109
121
|
@path = @page['path']
|
110
122
|
AllCollectionsHooks.compute(@site)
|
111
123
|
|
124
|
+
@blank = @helper.parameter_specified? 'blank'
|
112
125
|
@follow = @helper.parameter_specified?('follow') ? '' : " rel='nofollow'"
|
113
126
|
@match = @helper.parameter_specified? 'match'
|
114
|
-
@
|
127
|
+
@label = @helper.parameter_specified? 'label'
|
115
128
|
@summary_exclude = @helper.parameter_specified? 'summary_exclude'
|
116
129
|
@shy = @helper.parameter_specified? 'shy'
|
117
130
|
@summary = @helper.parameter_specified? 'summary'
|
@@ -133,13 +146,19 @@ module HrefTag
|
|
133
146
|
end
|
134
147
|
return
|
135
148
|
else
|
136
|
-
@text = tokens.join(' ').strip
|
149
|
+
@text = @label || tokens.join(' ').strip
|
137
150
|
if @text.to_s.empty?
|
138
151
|
text = linkk
|
139
152
|
text = linkk.gsub('/', '/­') if @shy
|
140
153
|
text = linkk.gsub('/', '/<wbr>') if @wbr
|
141
154
|
@text = "<code>#{text}</code>"
|
142
|
-
@link = linkk.start_with?('http')
|
155
|
+
@link = if linkk.start_with?('http')
|
156
|
+
linkk
|
157
|
+
elsif insecure_ip_address linkk
|
158
|
+
"http://#{linkk}"
|
159
|
+
else
|
160
|
+
"https://#{linkk}"
|
161
|
+
end
|
143
162
|
else
|
144
163
|
@link = if @shy
|
145
164
|
linkk.gsub('/', '/­')
|
@@ -198,6 +217,19 @@ module HrefTag
|
|
198
217
|
end
|
199
218
|
end
|
200
219
|
|
220
|
+
def insecure_ip_address(string)
|
221
|
+
return true if string.start_with? 'localhost'
|
222
|
+
|
223
|
+
return false unless IPAddress.valid? string
|
224
|
+
|
225
|
+
ip_address = IPAddress string
|
226
|
+
return true if ip_address.loopback? || ip_address.private?
|
227
|
+
rescue StandardError
|
228
|
+
false
|
229
|
+
ensure
|
230
|
+
false
|
231
|
+
end
|
232
|
+
|
201
233
|
# Replace names in plugin-vars with values
|
202
234
|
def replace_vars(text)
|
203
235
|
variables = @site.config['plugin-vars']
|
data/lib/jekyll_href/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll_href
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
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-
|
11
|
+
date: 2023-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ipaddress
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: jekyll
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,9 +133,5 @@ rubygems_version: 3.3.3
|
|
119
133
|
signing_key:
|
120
134
|
specification_version: 4
|
121
135
|
summary: Generates an 'a href' tag, possibly with target='_blank' and rel='nofollow'.
|
122
|
-
test_files:
|
123
|
-
- spec/hash_array_spec.rb
|
124
|
-
- spec/href_spec.rb
|
125
|
-
- spec/spec_helper.rb
|
126
|
-
- spec/status_persistence.txt
|
136
|
+
test_files: []
|
127
137
|
...
|