jekyll_href 1.0.9 → 1.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/jekyll_href.gemspec +1 -0
- data/lib/jekyll_href/version.rb +1 -1
- data/lib/jekyll_href.rb +18 -16
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed7504969773757ecab66ef862c11968ec563622c07f3840f34aaa8bc86b34fd
|
4
|
+
data.tar.gz: 835d3f059cdc96f6095d2443a2ed19df5ffa79fc32a696f5fe7bdac76794c959
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: def5d5a884f5804461a656144fe2a87f13c07b34ec28d5577ddb8bbfcf4f04aa4773514d34d33bcbe6967da1a74bad60d501ecaa835e33a9441d0352f4460da0
|
7
|
+
data.tar.gz: efc68d1bfc4c072e2de8b0d33d723ff9d206996d1ff9fc1fdea5fd905707c5df54227b62ca20160359e8ab3c84a09c3582c1edccfc9a06c6f9b1d177fb8b4318
|
data/CHANGELOG.md
CHANGED
data/jekyll_href.gemspec
CHANGED
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.version = JekyllHrefVersion::VERSION
|
35
35
|
|
36
36
|
spec.add_dependency 'jekyll', '>= 3.5.0'
|
37
|
+
spec.add_dependency 'jekyll_all_collections'
|
37
38
|
spec.add_dependency 'jekyll_plugin_logger'
|
38
39
|
|
39
40
|
spec.add_development_dependency 'debase'
|
data/lib/jekyll_href/version.rb
CHANGED
data/lib/jekyll_href.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "jekyll_plugin_logger"
|
4
|
+
require "jekyll_all_collections"
|
4
5
|
require "liquid"
|
5
6
|
require_relative "jekyll_href/version"
|
6
7
|
|
@@ -51,6 +52,7 @@ require_relative "jekyll_href/version"
|
|
51
52
|
# <code>django.core.management.execute_from_command_line</code> %}
|
52
53
|
|
53
54
|
class ExternalHref < Liquid::Tag
|
55
|
+
|
54
56
|
# @param tag_name [String] is the name of the tag, which we already know.
|
55
57
|
# @param command_line [Hash, String, Liquid::Tag::Parser] the arguments from the web page.
|
56
58
|
# @param _parse_context [Liquid::ParseContext] tokenized command line
|
@@ -76,10 +78,14 @@ class ExternalHref < Liquid::Tag
|
|
76
78
|
end
|
77
79
|
|
78
80
|
# Method prescribed by the Jekyll plugin lifecycle.
|
81
|
+
# @param liquid_context [Liquid::Context]
|
79
82
|
# @return [String]
|
80
|
-
def render(
|
81
|
-
|
82
|
-
|
83
|
+
def render(liquid_context)
|
84
|
+
@site = liquid_context.registers[:site]
|
85
|
+
JekyllAllCollections::maybe_compute_all_collections(@site)
|
86
|
+
|
87
|
+
match(liquid_context) if @match
|
88
|
+
link = replace_vars(liquid_context, @link)
|
83
89
|
@logger.debug { "@link=#{@link}; link=#{link}" }
|
84
90
|
"<a href='#{link}'#{@target}#{@follow}>#{@text}</a>"
|
85
91
|
end
|
@@ -111,9 +117,8 @@ class ExternalHref < Liquid::Tag
|
|
111
117
|
value
|
112
118
|
end
|
113
119
|
|
114
|
-
def match(
|
115
|
-
|
116
|
-
config = site.config['href']
|
120
|
+
def match(liquid_context) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
121
|
+
config = @site.config['href']
|
117
122
|
die_if_nomatch = !config.nil? && config['nomatch'] && config['nomatch']=='fatal'
|
118
123
|
|
119
124
|
path, fragment = @link.split('#')
|
@@ -121,16 +126,13 @@ class ExternalHref < Liquid::Tag
|
|
121
126
|
@logger.debug {
|
122
127
|
<<~END_DEBUG
|
123
128
|
@link=#{@link}
|
124
|
-
site.posts[0].url = #{site.posts.docs[0].url}
|
125
|
-
site.posts[0].path = #{site.posts.docs[0].path}
|
129
|
+
@site.posts.docs[0].url = #{@site.posts.docs[0].url}
|
130
|
+
@site.posts.docs[0].path = #{@site.posts.docs[0].path}
|
126
131
|
END_DEBUG
|
127
132
|
}
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
.flatten
|
132
|
-
.map(&:url) # TODO Optimize this by caching the result
|
133
|
-
url_matches = urls.select { |url| url.include? path }
|
133
|
+
|
134
|
+
all_urls = @site.all_collections.map(&:url)
|
135
|
+
url_matches = all_urls.select { |url| url.include? path }
|
134
136
|
case url_matches.length
|
135
137
|
when 0
|
136
138
|
abort "href error: No url matches '#{@link}'" if die_if_nomatch
|
@@ -144,8 +146,8 @@ class ExternalHref < Liquid::Tag
|
|
144
146
|
end
|
145
147
|
end
|
146
148
|
|
147
|
-
def replace_vars(
|
148
|
-
variables =
|
149
|
+
def replace_vars(liquid_context, link)
|
150
|
+
variables = @site.config['plugin-vars']
|
149
151
|
variables.each do |name, value|
|
150
152
|
link = link.gsub "{{#{name}}}", value
|
151
153
|
end
|
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.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Slinn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.5.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll_all_collections
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: jekyll_plugin_logger
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|