jekyll_href 1.2.4 → 1.2.6
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/CHANGELOG.md +8 -2
- data/README.md +23 -9
- data/jekyll_href.gemspec +4 -3
- data/lib/href_tag.rb +18 -16
- data/lib/jekyll_href/version.rb +1 -1
- data/spec/status_persistence.txt +13 -27
- metadata +21 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ce2ffe035bd807e82e6ec9f639677e82f4413bed796bc513962f384cea6b5e8
|
4
|
+
data.tar.gz: 90ae63c7030fe498a6e4eadb61a20927a110847fb70809058e7da41f8b4d2d72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fd44f9bcb7aa12f2503333663be4fd7619c83e37563387997dd9043996127545a980a627b33677b8f1ee428af579dd3ff9ea84d0cf39f8095bc81199e8ea165
|
7
|
+
data.tar.gz: 1e5808fde63549696c8464c5d6e5127b32aa36a3f3919fbaf4a37d04cdf373f7b9861cfd459f2b61bc6d327e995c1303ae8642157ecce1f2f02e4537a5932d35
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
|
+
## 1.2.6 / 2023-06-18
|
2
|
+
* No longer blows up on error.
|
3
|
+
|
4
|
+
## 1.2.5 / 2023-05-26
|
5
|
+
* Added `style` and `class` options.
|
6
|
+
|
1
7
|
## 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;
|
8
|
+
* When only a URI is provided, the plugin now generates the `http` scheme for IP4 & IP6 loopback addresses like
|
9
|
+
`localhost`, and `127.0.0.0`, as well as private IP4 addresses like 192.168.0.0 and 172.16.0.0;
|
4
10
|
otherwise it generates the `https` scheme.
|
5
11
|
|
6
12
|
## 1.2.3 / 2023-05-16
|
data/README.md
CHANGED
@@ -82,6 +82,20 @@ To enforce the generation of this attribute, preface the link with the word `bla
|
|
82
82
|
The `blank` and `notarget` parameters are mutually exclusive.
|
83
83
|
If both are specified, `blank` prevails.
|
84
84
|
|
85
|
+
### `class`
|
86
|
+
This option allows CSS classes to be added to the HTML generated by the `href` tag.
|
87
|
+
It has no effect on the `href_summary` tag output.
|
88
|
+
|
89
|
+
For example:
|
90
|
+
|
91
|
+
```
|
92
|
+
{% href class='bg_yellow' https://mslinn.com click here %}
|
93
|
+
```
|
94
|
+
Expands to:
|
95
|
+
```
|
96
|
+
<a href="https://mslinn.com" class="bg_yellow" rel="nofollow" target="_blank">click here</a>
|
97
|
+
```
|
98
|
+
|
85
99
|
### `follow`
|
86
100
|
To suppress the `nofollow` attribute, preface the link with the word `follow`.
|
87
101
|
|
@@ -109,8 +123,8 @@ The `match` option looks through the pages collection for a URL with containing
|
|
109
123
|
|
110
124
|
|
111
125
|
### `shy`
|
112
|
-
`shy` is only applicable for syntax 3 (implicit URL).
|
113
|
-
This option causes displayed urls to have an
|
126
|
+
The `shy` keyword option is only applicable for syntax 3 (implicit URL).
|
127
|
+
This option causes displayed urls to have an [`&shy;`](https://developer.mozilla.org/en-US/docs/Web/CSS/hyphens) inserted after each slash (/).
|
114
128
|
If both `shy` and `wbr` are specified, `wbr` prevails.
|
115
129
|
|
116
130
|
For example:
|
@@ -119,21 +133,21 @@ For example:
|
|
119
133
|
```
|
120
134
|
Expands to:
|
121
135
|
```
|
122
|
-
<a href="https://mslinn.com/path/to/page.html">mslinn.com/­path/­to/­page.html</a>
|
136
|
+
<a href="https://mslinn.com/path/to/page.html" rel="nofollow" target="_blank">mslinn.com/­path/­to/­page.html</a>
|
123
137
|
```
|
124
138
|
|
125
|
-
### `
|
126
|
-
|
127
|
-
|
128
|
-
If both `shy` and `wbr` are specified, `wbr` prevails.
|
139
|
+
### `style`
|
140
|
+
This option allows CSS styling to be added to the HTML generated by the `href` tag.
|
141
|
+
It has no effect on the `href_summary` tag output.
|
129
142
|
|
130
143
|
For example:
|
144
|
+
|
131
145
|
```
|
132
|
-
{% href
|
146
|
+
{% href style='color: red; font-weight: bold;' https://mslinn.com click here %}
|
133
147
|
```
|
134
148
|
Expands to:
|
135
149
|
```
|
136
|
-
<a href="https://mslinn.com
|
150
|
+
<a href="https://mslinn.com" rel="nofollow" style="color: ref; font-weight: bold" target="_blank">click here</a>
|
137
151
|
```
|
138
152
|
|
139
153
|
### `summary`
|
data/jekyll_href.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
END_OF_DESC
|
11
11
|
spec.email = ['mslinn@mslinn.com']
|
12
12
|
spec.files = Dir['.rubocop.yml', 'LICENSE.*', 'Rakefile', '{lib,spec}/**/*', '*.gemspec', '*.md']
|
13
|
-
spec.homepage = 'https://www.mslinn.com/
|
13
|
+
spec.homepage = 'https://www.mslinn.com/jekyll_plugins/jekyll_href.html'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
spec.metadata = {
|
16
16
|
'allowed_push_host' => 'https://rubygems.org',
|
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
|
33
33
|
spec.add_dependency 'ipaddress'
|
34
34
|
spec.add_dependency 'jekyll', '>= 3.5.0'
|
35
|
-
spec.add_dependency 'jekyll_all_collections', '
|
36
|
-
spec.add_dependency 'jekyll_plugin_support', '
|
35
|
+
spec.add_dependency 'jekyll_all_collections', '>= 0.3.3'
|
36
|
+
spec.add_dependency 'jekyll_plugin_support', '>= 0.7.0'
|
37
|
+
spec.add_dependency 'sanitize'
|
37
38
|
end
|
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 'sanitize'
|
6
7
|
require_relative 'jekyll_href/version'
|
7
8
|
require_relative 'hash_array'
|
8
9
|
|
@@ -38,7 +39,9 @@ module HrefTag
|
|
38
39
|
# @return [String]
|
39
40
|
def render_impl
|
40
41
|
globals_initial
|
41
|
-
linkk = compute_linkk
|
42
|
+
linkk, error_msg = compute_linkk
|
43
|
+
return error_msg unless linkk
|
44
|
+
|
42
45
|
linkk = replace_vars(linkk)
|
43
46
|
linkk.delete_prefix('./') # normalize relative links
|
44
47
|
@url = linkk if @url
|
@@ -47,7 +50,9 @@ module HrefTag
|
|
47
50
|
globals_update(@helper.argv, linkk) # Sets @link and @text, might clear @follow and @target
|
48
51
|
handle_match if @match
|
49
52
|
save_summary
|
50
|
-
"
|
53
|
+
klass = " class='#{@klass}'" if @klass
|
54
|
+
style = " style='#{@style}'" if @style
|
55
|
+
"<a href='#{@link}'#{klass}#{style}#{@target}#{@follow}>#{@text}</a>"
|
51
56
|
end
|
52
57
|
|
53
58
|
private
|
@@ -88,32 +93,27 @@ module HrefTag
|
|
88
93
|
|
89
94
|
# Does not look at or compute @link
|
90
95
|
def compute_linkk
|
91
|
-
return @link if @link
|
96
|
+
return @link, nil if @link
|
92
97
|
|
93
98
|
linkk = @url
|
94
99
|
if linkk.nil? || !linkk
|
95
100
|
linkk = @helper.argv&.shift
|
96
101
|
@helper.params&.shift
|
97
102
|
@helper.keys_values&.delete(linkk)
|
98
|
-
|
103
|
+
return nil, error_no_uri if linkk.nil?
|
99
104
|
elsif @url.to_s.empty?
|
100
|
-
|
105
|
+
return nil, error_no_uri
|
101
106
|
end
|
102
|
-
linkk
|
107
|
+
[linkk, nil]
|
103
108
|
end
|
104
109
|
|
105
|
-
def
|
110
|
+
def error_no_uri
|
106
111
|
msg = <<~END_MESSAGE
|
107
|
-
|
108
|
-
|
109
|
-
@helper.argv='#{@helper.argv}'
|
110
|
-
linkk='#{linkk}'
|
111
|
-
@match='#{@match}'
|
112
|
-
@url='#{@url}'
|
113
|
-
@follow='#{@follow}
|
114
|
-
@target='#{@target}'
|
112
|
+
Error: no url was provided on #{@path}:#{@line_number} (after front matter).
|
113
|
+
<pre>{% href #{@argument_string}%}</pre>
|
115
114
|
END_MESSAGE
|
116
|
-
|
115
|
+
@logger.error { Sanitize.fragment msg }
|
116
|
+
"<span class='error'>Error: #{msg}</span>"
|
117
117
|
end
|
118
118
|
|
119
119
|
# Sets @follow, @helper, @match, @path, @shy, @target, @url, @wbr
|
@@ -122,11 +122,13 @@ module HrefTag
|
|
122
122
|
AllCollectionsHooks.compute(@site)
|
123
123
|
|
124
124
|
@blank = @helper.parameter_specified? 'blank'
|
125
|
+
@klass = @helper.parameter_specified? 'class'
|
125
126
|
@follow = @helper.parameter_specified?('follow') ? '' : " rel='nofollow'"
|
126
127
|
@match = @helper.parameter_specified? 'match'
|
127
128
|
@label = @helper.parameter_specified? 'label'
|
128
129
|
@summary_exclude = @helper.parameter_specified? 'summary_exclude'
|
129
130
|
@shy = @helper.parameter_specified? 'shy'
|
131
|
+
@style = @helper.parameter_specified? 'style'
|
130
132
|
@summary = @helper.parameter_specified? 'summary'
|
131
133
|
@target = @blank ? " target='_blank'" : nil
|
132
134
|
@target ||= @helper.parameter_specified?('notarget') ? '' : " target='_blank'"
|
data/lib/jekyll_href/version.rb
CHANGED
data/spec/status_persistence.txt
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
----------------------------------------------------------------- | ------ | --------------- |
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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.00817 seconds |
|
4
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:2] | passed | 0.00349 seconds |
|
5
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:3] | passed | 0.0033 seconds |
|
6
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:4] | passed | 0.00307 seconds |
|
7
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:5] | passed | 0.00315 seconds |
|
8
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:6] | passed | 0.0032 seconds |
|
9
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:7] | passed | 0.0035 seconds |
|
10
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:8] | passed | 0.00323 seconds |
|
11
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:9] | passed | 0.0032 seconds |
|
12
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:10] | passed | 0.00307 seconds |
|
13
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:11] | passed | 0.00317 seconds |
|
14
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:12] | passed | 0.00357 seconds |
|
15
|
+
/mnt/f/work/jekyll/my_plugins/jekyll_href/spec/href_spec.rb[1:13] | passed | 0.0035 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.
|
4
|
+
version: 1.2.6
|
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-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ipaddress
|
@@ -42,42 +42,44 @@ 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.
|
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.
|
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.
|
61
|
+
version: 0.7.0
|
71
62
|
type: :runtime
|
72
63
|
prerelease: false
|
73
64
|
version_requirements: !ruby/object:Gem::Requirement
|
74
65
|
requirements:
|
75
|
-
- - "
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
68
|
+
version: 0.7.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: sanitize
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
78
73
|
- - ">="
|
79
74
|
- !ruby/object:Gem::Version
|
80
|
-
version: 0
|
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'
|
81
83
|
description: 'Generates an ''a href'' tag, possibly with target=''_blank'' and rel=''nofollow''.
|
82
84
|
|
83
85
|
'
|
@@ -102,14 +104,14 @@ files:
|
|
102
104
|
- spec/href_spec.rb
|
103
105
|
- spec/spec_helper.rb
|
104
106
|
- spec/status_persistence.txt
|
105
|
-
homepage: https://www.mslinn.com/
|
107
|
+
homepage: https://www.mslinn.com/jekyll_plugins/jekyll_href.html
|
106
108
|
licenses:
|
107
109
|
- MIT
|
108
110
|
metadata:
|
109
111
|
allowed_push_host: https://rubygems.org
|
110
112
|
bug_tracker_uri: https://github.com/mslinn/jekyll_href/issues
|
111
113
|
changelog_uri: https://github.com/mslinn/jekyll_href/CHANGELOG.md
|
112
|
-
homepage_uri: https://www.mslinn.com/
|
114
|
+
homepage_uri: https://www.mslinn.com/jekyll_plugins/jekyll_href.html
|
113
115
|
source_code_uri: https://github.com/mslinn/jekyll_href
|
114
116
|
post_install_message: |2+
|
115
117
|
|