jekyll-assets 2.2.5 → 2.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll/assets/env.rb +32 -7
- data/lib/jekyll/assets/hooks/cache.rb +4 -0
- data/lib/jekyll/assets/liquid/tag/defaults/sha.rb +7 -1
- data/lib/jekyll/assets/liquid/tag/parser.rb +1 -1
- data/lib/jekyll/assets/manifest.rb +30 -5
- data/lib/jekyll/assets/patches/sprockets/asset.rb +8 -3
- data/lib/jekyll/assets/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1fcdef26bcae20f2b556204dc86af8dce96e1ef
|
4
|
+
data.tar.gz: b0c9bd1584b0d25caeff7cd95ddb82f1f8539d9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9261a36b91c351729a9b1081b9e40ed786d6e641044ccda49348a36425698220303dffd4d3b388ce31ef49b3aa50c879b612e940586b89d4a47e0a95f770fecf
|
7
|
+
data.tar.gz: 792001e489b1e36a4b966d3aca54007583a409dc8cfc6a059606f9098daef896b1d3b7b453aa2ba2ffddde9e48e9a4bec26818485a78c9f92809dd78e0f9818e
|
data/lib/jekyll/assets/env.rb
CHANGED
@@ -272,8 +272,24 @@ module Jekyll
|
|
272
272
|
# integrate with the manifest that deeply because it's hard.
|
273
273
|
# --
|
274
274
|
def write_all
|
275
|
-
assets = manifest.all.
|
276
|
-
manifest.
|
275
|
+
assets = manifest.all.to_a.compact
|
276
|
+
if assets.size != manifest.all.size
|
277
|
+
Jekyll.logger.error "", "Asset inconsitency, expected "
|
278
|
+
"#{manifest.all.size}, can only write #{
|
279
|
+
assets.size
|
280
|
+
}"
|
281
|
+
end
|
282
|
+
|
283
|
+
assets = manifest.all.group_by do |v|
|
284
|
+
v.is_a?(
|
285
|
+
Liquid::Tag::ProxiedAsset
|
286
|
+
)
|
287
|
+
end
|
288
|
+
|
289
|
+
# These are assets that aren't proxied, they returned fals when
|
290
|
+
# they were asked if they belonged to a proxy.
|
291
|
+
|
292
|
+
manifest.compile(assets[false].map(
|
277
293
|
&:logical_path
|
278
294
|
))
|
279
295
|
|
@@ -282,10 +298,17 @@ module Jekyll
|
|
282
298
|
# caching, so we always write them individually since they will
|
283
299
|
# never actually show up inside of the manifest.
|
284
300
|
|
285
|
-
assets.
|
286
|
-
|
287
|
-
|
288
|
-
|
301
|
+
if assets.key?(true)
|
302
|
+
unless assets[true].empty?
|
303
|
+
Pathutil.new(in_cache_dir)
|
304
|
+
.mkdir_p
|
305
|
+
end
|
306
|
+
|
307
|
+
assets[true].map do |asset|
|
308
|
+
asset.write_to(jekyll.in_dest_dir(File.join(asset_config["prefix"],
|
309
|
+
digest?? asset.digest_path : asset.logical_path
|
310
|
+
)))
|
311
|
+
end
|
289
312
|
end
|
290
313
|
end
|
291
314
|
|
@@ -294,7 +317,9 @@ module Jekyll
|
|
294
317
|
# --
|
295
318
|
private
|
296
319
|
def strip_path(path)
|
297
|
-
path.sub(jekyll.in_source_dir("/"),
|
320
|
+
path.sub(jekyll.in_source_dir("/"),
|
321
|
+
""
|
322
|
+
)
|
298
323
|
end
|
299
324
|
end
|
300
325
|
end
|
@@ -37,9 +37,15 @@ module Jekyll
|
|
37
37
|
# @return [nil]
|
38
38
|
# --
|
39
39
|
def set_integrity
|
40
|
+
digest = Sprockets::DigestUtils.integrity_uri(
|
41
|
+
Digest::SHA384.digest(
|
42
|
+
@asset.to_s
|
43
|
+
)
|
44
|
+
)
|
45
|
+
|
40
46
|
@args.args[:html] ||= {}
|
41
47
|
if @env.asset_config["features"]["integrity"]
|
42
|
-
@args.args[:html]["integrity"] =
|
48
|
+
@args.args[:html]["integrity"] = digest
|
43
49
|
@args.args[:html]["crossorigin"] = "anonymous" \
|
44
50
|
unless @args.args[:html]["crossorigin"]
|
45
51
|
end
|
@@ -42,10 +42,14 @@ module Jekyll
|
|
42
42
|
)
|
43
43
|
end
|
44
44
|
|
45
|
+
# --
|
46
|
+
|
45
47
|
filenames = []
|
46
48
|
concurrent_compressors = []
|
47
49
|
concurrent_writers = []
|
48
50
|
|
51
|
+
# --
|
52
|
+
|
49
53
|
find(*args) do |asset|
|
50
54
|
files[asset.digest_path] = {
|
51
55
|
"mtime" => asset.mtime.iso8601,
|
@@ -55,15 +59,23 @@ module Jekyll
|
|
55
59
|
"size" => asset.bytesize
|
56
60
|
}
|
57
61
|
|
62
|
+
# --
|
63
|
+
|
58
64
|
assets[asset.logical_path] = asset.digest_path
|
59
65
|
alias_logical_path = self.class.compute_alias_logical_path(
|
60
66
|
asset.logical_path
|
61
67
|
)
|
62
68
|
|
69
|
+
# --
|
70
|
+
|
63
71
|
if alias_logical_path
|
64
72
|
assets[alias_logical_path] = asset.digest_path
|
65
73
|
end
|
66
74
|
|
75
|
+
# Unlike upstream, we allow users to disble digesting, this is
|
76
|
+
# where we actually and truthfully only diverge from upstream in
|
77
|
+
# that we disable or enable the digested or logical path.
|
78
|
+
|
67
79
|
target = \
|
68
80
|
if environment.digest?
|
69
81
|
File.join(dir,
|
@@ -75,16 +87,21 @@ module Jekyll
|
|
75
87
|
)
|
76
88
|
end
|
77
89
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
)
|
82
|
-
else
|
90
|
+
# --
|
91
|
+
|
92
|
+
if !environment.digest? || !File.exist?(target)
|
83
93
|
logger.info "Writing #{target}"
|
84
94
|
write_file = Concurrent::Future.execute { asset.write_to target }
|
85
95
|
concurrent_writers << write_file
|
96
|
+
|
97
|
+
else
|
98
|
+
logger.debug(
|
99
|
+
"Skipping #{target}, already exists"
|
100
|
+
)
|
86
101
|
end
|
87
102
|
|
103
|
+
# --
|
104
|
+
|
88
105
|
filenames << asset.filename
|
89
106
|
next if environment.skip_gzip?
|
90
107
|
gzip = Utils::Gzip.new(asset)
|
@@ -92,6 +109,10 @@ module Jekyll
|
|
92
109
|
environment.mime_types
|
93
110
|
)
|
94
111
|
|
112
|
+
# This is technically ignored usptream, we don't allow our
|
113
|
+
# assets to write `.tar.gz` files by default, however, we leave
|
114
|
+
# this here just incase someobody overrides that method.
|
115
|
+
|
95
116
|
if File.exist?("#{target}.gz")
|
96
117
|
logger.debug(
|
97
118
|
"Skipping #{target}.gz, already exists"
|
@@ -107,11 +128,15 @@ module Jekyll
|
|
107
128
|
end
|
108
129
|
end
|
109
130
|
|
131
|
+
# --
|
132
|
+
|
110
133
|
concurrent_writers.each(&:wait!)
|
111
134
|
concurrent_compressors.each(
|
112
135
|
&:wait!
|
113
136
|
)
|
114
137
|
|
138
|
+
# --
|
139
|
+
|
115
140
|
save
|
116
141
|
filenames
|
117
142
|
end
|
@@ -1,19 +1,24 @@
|
|
1
|
-
# ----------------------------------------------------------------------------
|
2
1
|
# Frozen-string-literal: true
|
3
2
|
# Copyright: 2012 - 2016 - MIT License
|
4
3
|
# Encoding: utf-8
|
5
|
-
# ----------------------------------------------------------------------------
|
6
4
|
|
7
5
|
module Sprockets
|
8
6
|
class Asset
|
7
|
+
|
8
|
+
# --
|
9
|
+
# List all the liquid tags this asset used.
|
10
|
+
# --
|
9
11
|
def liquid_tags
|
10
12
|
metadata[:liquid_tags] ||= begin
|
11
13
|
Set.new
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
|
-
# ------------------------------------------------------------------------
|
16
17
|
|
18
|
+
# --
|
19
|
+
# Pull out the data uri.
|
20
|
+
# @return [String]
|
21
|
+
# --
|
17
22
|
def data_uri
|
18
23
|
"data:#{content_type};base64,#{Rack::Utils.escape(
|
19
24
|
Base64.encode64(to_s)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordon Bedwell
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-05-
|
13
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sprockets
|