jekyll-assets 2.0.0.pre.beta2 → 2.0.0.pre.beta3
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/Gemfile +4 -4
- data/README.md +33 -40
- data/lib/jekyll/assets.rb +18 -16
- data/lib/jekyll/assets/addons/autoprefixer.rb +5 -0
- data/lib/jekyll/assets/addons/bootstrap.rb +1 -0
- data/lib/jekyll/assets/addons/compass.rb +7 -0
- data/lib/jekyll/assets/addons/font_awesome.rb +1 -0
- data/lib/jekyll/assets/{extras/es6.rb → addons/js_es6.rb} +1 -1
- data/lib/jekyll/assets/addons/proxies/magick.rb +92 -0
- data/lib/jekyll/assets/config.rb +48 -0
- data/lib/jekyll/assets/env.rb +110 -91
- data/lib/jekyll/assets/hook.rb +42 -25
- data/lib/jekyll/assets/hooks/cache.rb +5 -0
- data/lib/jekyll/assets/hooks/compression.rb +11 -0
- data/lib/jekyll/assets/hooks/configuration.rb +3 -0
- data/lib/jekyll/assets/hooks/context_patches.rb +12 -0
- data/lib/jekyll/assets/hooks/disable_erb.rb +6 -0
- data/lib/jekyll/assets/hooks/helpers.rb +8 -0
- data/lib/jekyll/assets/hooks/logger.rb +3 -0
- data/lib/jekyll/assets/hooks/sources.rb +5 -0
- data/lib/jekyll/assets/hooks/sprockets.rb +3 -0
- data/lib/jekyll/assets/hooks/version.rb +3 -0
- data/lib/jekyll/assets/liquid/filters.rb +16 -0
- data/lib/jekyll/assets/liquid/tag.rb +162 -0
- data/lib/jekyll/assets/liquid/tag/parser.rb +163 -0
- data/lib/jekyll/assets/liquid/tag/proxied_asset.rb +98 -0
- data/lib/jekyll/assets/liquid/tag/proxies.rb +122 -0
- data/lib/jekyll/assets/logger.rb +34 -11
- data/lib/jekyll/assets/patches/hash.rb +5 -0
- data/lib/jekyll/assets/patches/jekyll/cleaner.rb +2 -2
- data/lib/jekyll/assets/patches/kernel.rb +31 -0
- data/lib/jekyll/assets/patches/sprockets/asset.rb +6 -6
- data/lib/jekyll/assets/version.rb +1 -1
- data/lib/jekyll/hooks/initialize.rb +3 -0
- data/lib/jekyll/hooks/write_assets.rb +3 -0
- metadata +28 -17
- data/lib/jekyll/assets/configuration.rb +0 -51
- data/lib/jekyll/assets/context.rb +0 -23
- data/lib/jekyll/assets/extras/font-awesome.rb +0 -1
- data/lib/jekyll/assets/extras/helpers.rb +0 -6
- data/lib/jekyll/assets/extras/prefix.rb +0 -5
- data/lib/jekyll/assets/filters.rb +0 -17
- data/lib/jekyll/assets/helpers.rb +0 -37
- data/lib/jekyll/assets/hooks/post_read.rb +0 -3
- data/lib/jekyll/assets/hooks/post_write.rb +0 -3
- data/lib/jekyll/assets/tag.rb +0 -148
- data/lib/jekyll/assets/tag/parser.rb +0 -129
- data/lib/jekyll/assets/tag/proxied_asset.rb +0 -84
- data/lib/jekyll/assets/tag/proxies.rb +0 -86
- data/lib/jekyll/assets/tag/proxies/magick.rb +0 -101
@@ -1,86 +0,0 @@
|
|
1
|
-
module Jekyll
|
2
|
-
module Assets
|
3
|
-
class Tag
|
4
|
-
module Proxies
|
5
|
-
def self.add(cls, name, tag, args)
|
6
|
-
names = [name, name.to_s, name.to_sym]
|
7
|
-
tags = [tag].flatten.map { |v| [v.to_s, v, v.to_sym] }
|
8
|
-
args = [args].flatten.map { |v| [v.to_s, v, v.to_sym] }
|
9
|
-
|
10
|
-
all << {
|
11
|
-
:name => names.uniq,
|
12
|
-
:tags => tags.flatten.uniq,
|
13
|
-
:args => args.flatten.uniq,
|
14
|
-
:cls => cls
|
15
|
-
}
|
16
|
-
all
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.keys
|
20
|
-
all.select { |v| !v[:cls].is_a?(Symbol) }.map do |v|
|
21
|
-
v[:name]
|
22
|
-
end. \
|
23
|
-
flatten
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.base_keys
|
27
|
-
all.select { |v| v[:cls].is_a?(Symbol) }.map do |v|
|
28
|
-
v[:name]
|
29
|
-
end. \
|
30
|
-
flatten
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.has?(name, tag = nil, arg = nil)
|
34
|
-
get(name, tag, arg).any?
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.get(name, tag = nil, arg = nil)
|
38
|
-
if name && tag && arg
|
39
|
-
get_by_name_and_tag_and_arg(
|
40
|
-
name, tag, arg
|
41
|
-
)
|
42
|
-
elsif name && tag
|
43
|
-
get_by_name_and_tag(
|
44
|
-
name, tag
|
45
|
-
)
|
46
|
-
else
|
47
|
-
all.select do |v|
|
48
|
-
v[:name].include?(name)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.get_by_name_and_tag_and_arg(name, tag, arg)
|
54
|
-
all.select do |v|
|
55
|
-
(v[:name].include?(name)) && \
|
56
|
-
(v[:tags].include?(:all) || \
|
57
|
-
v[:tags].include?(tag)) && \
|
58
|
-
(v[:args].include?( arg))
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def self.get_by_name_and_tag(name, tag)
|
63
|
-
all.select do |v|
|
64
|
-
(v[:name].include?(name)) &&
|
65
|
-
(v[:tags].include?(:all) || \
|
66
|
-
v[:tags].include?(tag))
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
def self.all
|
71
|
-
@_all ||= Set.new
|
72
|
-
end
|
73
|
-
|
74
|
-
# TODO: Put in a better place.
|
75
|
-
add :internal, :data, :all, ["@uri"]
|
76
|
-
add :internal, :sprockets, :all, [
|
77
|
-
"accept", "write_to"
|
78
|
-
]
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
Jekyll::Assets::Helpers.try_require("mini_magick") do
|
85
|
-
require_relative "proxies/magick"
|
86
|
-
end
|
@@ -1,101 +0,0 @@
|
|
1
|
-
module Jekyll
|
2
|
-
module Assets
|
3
|
-
class Tag
|
4
|
-
module Proxies
|
5
|
-
|
6
|
-
# @see https://github.com/minimagick/minimagick#usage -- All but
|
7
|
-
# the boolean @ options are provided by Minimagick.
|
8
|
-
|
9
|
-
class Magick
|
10
|
-
attr_reader :asset, :path, :opts
|
11
|
-
class DoubleResizeError < RuntimeError
|
12
|
-
def initialize
|
13
|
-
"Both resize and @2x provided, this is not supported."
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def initialize(asset, opts)
|
18
|
-
@asset, @path, @opts = asset, asset.filename, opts
|
19
|
-
end
|
20
|
-
|
21
|
-
def process
|
22
|
-
img = MiniMagick::Image.open(path)
|
23
|
-
private_methods(true).select { |v| v =~ /\Amagick_/ }.each do |k|
|
24
|
-
send(k, img)
|
25
|
-
end
|
26
|
-
|
27
|
-
img.write(
|
28
|
-
path
|
29
|
-
)
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
def quality(img)
|
34
|
-
if opts[:quality]
|
35
|
-
img.quality opts[:quality]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
def magick_resize(img)
|
41
|
-
if opts[:resize] && (opts[:"2x"] || opts[:"4x"] || opts[:half])
|
42
|
-
raise DoubleResizeError
|
43
|
-
|
44
|
-
elsif @opts[:resize]
|
45
|
-
img.resize opts[:resize]
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
def magick_format(img)
|
51
|
-
if opts[:format]
|
52
|
-
img.format opts[:format]
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
def magick_rotate(img)
|
58
|
-
if opts[:rotate]
|
59
|
-
img.rotate opts[:rotate]
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
private
|
64
|
-
def magick_flip(img)
|
65
|
-
if opts[:flip]
|
66
|
-
img.flip opts[:flip]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
private
|
71
|
-
def magick_crop(img)
|
72
|
-
if opts[:crop]
|
73
|
-
img.crop opts[:crop]
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
private
|
78
|
-
def magick_preset_resize(img)
|
79
|
-
return unless opts[:"2x"] || opts[:"4x"] || opts[:half]
|
80
|
-
width, height = img.width * 2, img.height * 2 if opts[:"2x"]
|
81
|
-
width, height = img.width * 4, img.height * 4 if opts[:"4x"]
|
82
|
-
width, height = img.width / 2, img.height / 2 if opts[:half]
|
83
|
-
img.resize "#{width}x#{height}"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
add Magick, :magick, :img, [
|
88
|
-
"quality",
|
89
|
-
"resize",
|
90
|
-
"format",
|
91
|
-
"rotate",
|
92
|
-
"crop",
|
93
|
-
"flip",
|
94
|
-
"@2x",
|
95
|
-
"@4x",
|
96
|
-
"@half"
|
97
|
-
]
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|