middleman-images 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rufo +1 -0
- data/.travis.yml +7 -7
- data/CHANGELOG.md +9 -1
- data/Gemfile +10 -18
- data/Gemfile.lock +5 -19
- data/README.md +22 -25
- data/features/building.feature +3 -1
- data/features/images_dir.feature +33 -0
- data/features/proxy_resources.feature +39 -0
- data/features/support/env.rb +3 -3
- data/features/support/middleman_images_steps.rb +12 -6
- data/fixtures/image/source/assets/images/fox.jpg +0 -0
- data/gemfiles/Gemfile.middleman-4.1 +10 -20
- data/gemfiles/Gemfile.middleman-4.1.lock +1 -17
- data/gemfiles/Gemfile.middleman-4.2 +10 -20
- data/gemfiles/Gemfile.middleman-4.2.lock +1 -17
- data/gemfiles/Gemfile.middleman-4.3 +10 -20
- data/gemfiles/Gemfile.middleman-4.3.lock +1 -17
- data/gemfiles/Gemfile.middleman-5.0-rc +10 -20
- data/gemfiles/Gemfile.middleman-5.0-rc.lock +2 -18
- data/lib/middleman-images/extension.rb +38 -52
- data/lib/middleman-images/image.rb +38 -24
- data/lib/middleman-images/manipulator.rb +36 -9
- data/lib/middleman-images/version.rb +1 -1
- data/middleman-images.gemspec +18 -14
- metadata +22 -8
- data/Rakefile +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00d10aeb0db6ab714537b15b0d07a71e034a08b45e7fc5e8dcdfa9713abdc3d
|
4
|
+
data.tar.gz: aa863f277ff04b872d6641275a3ca5444c888037f2d56c47ee1f3a99ee1f5098
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e89daa6f803d8687fc89477e12d5986d10187c6adccf891a819f5be58cd49a7af2000c1f606fe0ea7e76dadebf7284bffa1f0de435e3216b6a59401f4a65847a
|
7
|
+
data.tar.gz: 990ee4608b982912eaa3973beaaf898c9f90eb2c36556a66960c7ae9f8ce38e730e745ef1c1bf3f727b0ef1934af09434e172c76da74661a56149df1b9239471
|
data/.rufo
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
includes [gemfiles/Gemfile.*[!l][!o][!c][!k]]
|
data/.travis.yml
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
3
2
|
cache: bundler
|
4
|
-
before_script:
|
5
|
-
|
3
|
+
before_script: gem install bundler:1.17.3
|
4
|
+
script: bundle exec cucumber
|
5
|
+
|
6
6
|
rvm:
|
7
7
|
- 2.7
|
8
8
|
- 2.6
|
@@ -23,7 +23,7 @@ jobs:
|
|
23
23
|
gemfile: gemfiles/Gemfile.middleman-4.2
|
24
24
|
- rvm: 2.7
|
25
25
|
gemfile: gemfiles/Gemfile.middleman-4.1
|
26
|
-
|
27
|
-
-
|
28
|
-
|
29
|
-
script: bundle exec
|
26
|
+
include:
|
27
|
+
- rvm: 2.7
|
28
|
+
gemfile: Gemfile
|
29
|
+
script: bundle exec rufo -c .
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [0.2.0] - 2020-08-05
|
10
|
+
### Added
|
11
|
+
- Support for Middleman 5 RC
|
12
|
+
### Changed
|
13
|
+
- We changed the way images get registered while running the Middleman server.
|
14
|
+
This should bring way better performance and make this Gem usable in server mode.
|
15
|
+
|
9
16
|
## [0.1.0] - 2020-02-05
|
10
17
|
### Added
|
11
18
|
- Do not resize SVG or GIF files.
|
@@ -28,5 +35,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
28
35
|
### Removed
|
29
36
|
- Removed support for Ruby < 2.5
|
30
37
|
|
31
|
-
[Unreleased]: https://github.com/zweitag/middleman-images/compare/v0.
|
38
|
+
[Unreleased]: https://github.com/zweitag/middleman-images/compare/v0.2.0...HEAD
|
39
|
+
[0.2.0]: https://github.com/zweitag/middleman-images/compare/v0.1.0...v0.2.0
|
32
40
|
[0.1.0]: https://github.com/zweitag/middleman-images/releases/tag/v0.1.0
|
data/Gemfile
CHANGED
@@ -1,26 +1,18 @@
|
|
1
1
|
# If you do not have OpenSSL installed, update
|
2
2
|
# the following line to use "http://" instead
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in middleman-images.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
9
|
-
gem 'middleman', '~> 4.3'
|
10
|
-
gem 'rake'
|
11
|
-
gem 'rdoc'
|
12
|
-
gem 'yard'
|
13
|
-
end
|
8
|
+
gem "middleman", "~> 4.3"
|
14
9
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
gem 'rspec'
|
10
|
+
gem "aruba"
|
11
|
+
gem "capybara"
|
12
|
+
gem "cucumber"
|
13
|
+
gem "rufo"
|
20
14
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
gem 'image_optim_pack', '=0.6.0'
|
26
|
-
end
|
15
|
+
gem "image_optim"
|
16
|
+
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
17
|
+
gem "image_optim_pack", "=0.6.0"
|
18
|
+
gem "mini_magick"
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
middleman-images (0.
|
4
|
+
middleman-images (0.2.0)
|
5
5
|
middleman-core (>= 4.1.14)
|
6
6
|
|
7
7
|
GEM
|
@@ -125,7 +125,7 @@ GEM
|
|
125
125
|
minitest (5.14.0)
|
126
126
|
multi_json (1.14.1)
|
127
127
|
multi_test (0.1.2)
|
128
|
-
nokogiri (1.10.
|
128
|
+
nokogiri (1.10.8)
|
129
129
|
mini_portile2 (~> 2.4.0)
|
130
130
|
padrino-helpers (0.13.3.4)
|
131
131
|
i18n (~> 0.6, >= 0.6.7)
|
@@ -136,28 +136,18 @@ GEM
|
|
136
136
|
parallel (1.19.1)
|
137
137
|
progress (3.5.2)
|
138
138
|
public_suffix (4.0.3)
|
139
|
-
rack (2.
|
139
|
+
rack (2.2.3)
|
140
140
|
rack-test (1.1.0)
|
141
141
|
rack (>= 1.0, < 3)
|
142
|
-
rake (13.0.1)
|
143
142
|
rb-fsevent (0.10.3)
|
144
143
|
rb-inotify (0.10.1)
|
145
144
|
ffi (~> 1.0)
|
146
|
-
rdoc (6.2.1)
|
147
145
|
regexp_parser (1.6.0)
|
148
|
-
rspec (3.9.0)
|
149
|
-
rspec-core (~> 3.9.0)
|
150
|
-
rspec-expectations (~> 3.9.0)
|
151
|
-
rspec-mocks (~> 3.9.0)
|
152
|
-
rspec-core (3.9.1)
|
153
|
-
rspec-support (~> 3.9.1)
|
154
146
|
rspec-expectations (3.9.0)
|
155
147
|
diff-lcs (>= 1.2.0, < 2.0)
|
156
148
|
rspec-support (~> 3.9.0)
|
157
|
-
rspec-mocks (3.9.1)
|
158
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
159
|
-
rspec-support (~> 3.9.0)
|
160
149
|
rspec-support (3.9.2)
|
150
|
+
rufo (0.12.0)
|
161
151
|
sassc (2.2.1)
|
162
152
|
ffi (~> 1.9)
|
163
153
|
servolux (0.13.0)
|
@@ -171,7 +161,6 @@ GEM
|
|
171
161
|
execjs (>= 0.3.0, < 3)
|
172
162
|
xpath (3.2.0)
|
173
163
|
nokogiri (~> 1.8)
|
174
|
-
yard (0.9.24)
|
175
164
|
|
176
165
|
PLATFORMS
|
177
166
|
ruby
|
@@ -185,10 +174,7 @@ DEPENDENCIES
|
|
185
174
|
middleman (~> 4.3)
|
186
175
|
middleman-images!
|
187
176
|
mini_magick
|
188
|
-
|
189
|
-
rdoc
|
190
|
-
rspec
|
191
|
-
yard
|
177
|
+
rufo
|
192
178
|
|
193
179
|
BUNDLED WITH
|
194
180
|
2.1.4
|
data/README.md
CHANGED
@@ -43,37 +43,34 @@ For more information check [`image_optim_pack`](https://github.com/toy/image_opt
|
|
43
43
|
To activate the extension just put this into your `config.rb`:
|
44
44
|
|
45
45
|
```ruby
|
46
|
-
|
47
|
-
activate :images
|
48
|
-
end
|
46
|
+
activate :images
|
49
47
|
```
|
50
48
|
|
51
|
-
|
52
|
-
|
49
|
+
With Middleman images activated, starting the Middleman server will take some time.
|
50
|
+
During that time images that need procssing will get registered.
|
51
|
+
The actual processing of the images takes place while navigating the page.
|
53
52
|
|
54
53
|
Configure the extension by passing a block to `:activate`:
|
55
54
|
|
56
55
|
```ruby
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
}
|
76
|
-
end
|
56
|
+
activate :images do |images|
|
57
|
+
# Do not include original images in the build (default: false)
|
58
|
+
images.ignore_original = true
|
59
|
+
|
60
|
+
# Specify another cache directory depending on your root directory (default: 'cache')
|
61
|
+
images.cache_dir = 'funky_cache/subdir_of_funky_cache'
|
62
|
+
|
63
|
+
# Optimize images (default: false)
|
64
|
+
images.optimize = true
|
65
|
+
|
66
|
+
# Provide additional options for image_optim
|
67
|
+
# See https://github.com/toy/image_optim for all available options
|
68
|
+
images.image_optim = {
|
69
|
+
nice: 20,
|
70
|
+
optipng: {
|
71
|
+
level: 5,
|
72
|
+
},
|
73
|
+
}
|
77
74
|
end
|
78
75
|
```
|
79
76
|
|
data/features/building.feature
CHANGED
@@ -31,8 +31,10 @@ Feature: Building images
|
|
31
31
|
"""
|
32
32
|
And the Server is running
|
33
33
|
And I go to "/first.html"
|
34
|
+
And I go to "/images/fox-opt.jpg"
|
34
35
|
And a modification time for a file named "cache/images/fox-opt.jpg"
|
35
|
-
|
36
|
+
And I go to "/second.html"
|
37
|
+
When I go to "/images/fox-opt.jpg"
|
36
38
|
Then the file "cache/images/fox-opt.jpg" should exist
|
37
39
|
Then the file "cache/images/fox-opt.jpg" should not have been updated
|
38
40
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Feature: images_dir configuration given
|
2
|
+
|
3
|
+
Scenario: Building correctly
|
4
|
+
Given a fixture app "image"
|
5
|
+
And a middleman configuration with:
|
6
|
+
"""
|
7
|
+
set :images_dir, 'assets/images'
|
8
|
+
"""
|
9
|
+
And our extension is enabled
|
10
|
+
And a template named "index.html.erb" with:
|
11
|
+
"""
|
12
|
+
<%= image_tag 'fox.jpg', optimize: true, resize: 400 %>
|
13
|
+
"""
|
14
|
+
When a successfully built app at "image"
|
15
|
+
When I cd to "build/assets/images"
|
16
|
+
Then a file named "fox-400-opt.jpg" should exist
|
17
|
+
|
18
|
+
Scenario: Running correctly
|
19
|
+
Given a fixture app "image"
|
20
|
+
And a middleman configuration with:
|
21
|
+
"""
|
22
|
+
set :images_dir, 'assets/images'
|
23
|
+
"""
|
24
|
+
And our extension is enabled
|
25
|
+
And a template named "index.html.erb" with:
|
26
|
+
"""
|
27
|
+
<%= image_tag 'fox.jpg', optimize: true, resize: 400 %>
|
28
|
+
"""
|
29
|
+
And the Server is running
|
30
|
+
When I go to "/index.html"
|
31
|
+
Then I should see '<img src="/assets/images/fox-400-opt.jpg" alt="Fox" />'
|
32
|
+
When I go to "/assets/images/fox-400-opt.jpg"
|
33
|
+
Then the status code should be "200"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
Feature: Proxy resources
|
3
|
+
|
4
|
+
Scenario: Resizing images for a proxy resource on build
|
5
|
+
Given a fixture app "image"
|
6
|
+
And a middleman configuration with:
|
7
|
+
"""
|
8
|
+
activate :i18n, langs: [:en, :de], mount_at_root: false
|
9
|
+
"""
|
10
|
+
And our extension is enabled
|
11
|
+
And a template named "localizable/index.html.erb" with:
|
12
|
+
"""
|
13
|
+
<%= image_tag 'fox.jpg', resize: (I18n.locale == :en ? 400 : 500) %>
|
14
|
+
"""
|
15
|
+
When a successfully built app at "image"
|
16
|
+
When I cd to "build/images"
|
17
|
+
Then a file named "fox-400.jpg" should exist
|
18
|
+
And a file named "fox-500.jpg" should exist
|
19
|
+
|
20
|
+
Scenario: Resizing images for a proxy resource on server
|
21
|
+
Given a fixture app "image"
|
22
|
+
And a middleman configuration with:
|
23
|
+
"""
|
24
|
+
activate :i18n, langs: [:en, :de], mount_at_root: false
|
25
|
+
"""
|
26
|
+
And our extension is enabled
|
27
|
+
And a template named "localizable/index.html.erb" with:
|
28
|
+
"""
|
29
|
+
<%= image_tag 'fox.jpg', resize: (I18n.locale == :en ? 400 : 500) %>
|
30
|
+
"""
|
31
|
+
And the Server is running
|
32
|
+
When I go to "/en/index.html"
|
33
|
+
Then I should see '<img src="/images/fox-400.jpg" alt="Fox" />'
|
34
|
+
When I go to "/images/fox-400.jpg"
|
35
|
+
Then the status code should be "200"
|
36
|
+
When I go to "/de/index.html"
|
37
|
+
Then I should see '<img src="/images/fox-500.jpg" alt="Fox" />'
|
38
|
+
When I go to "/images/fox-500.jpg"
|
39
|
+
Then the status code should be "200"
|
data/features/support/env.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require File.join(PROJECT_ROOT_PATH,
|
2
|
+
require "middleman-core"
|
3
|
+
require "middleman-core/step_definitions"
|
4
|
+
require File.join(PROJECT_ROOT_PATH, "lib", "middleman-images")
|
@@ -1,11 +1,17 @@
|
|
1
|
-
require
|
1
|
+
require "mini_magick"
|
2
|
+
|
3
|
+
Given /^a middleman configuration with:$/ do |config|
|
4
|
+
@middleman_config = config
|
5
|
+
end
|
2
6
|
|
3
7
|
Given /^our extension is enabled?$/ do
|
4
|
-
step
|
8
|
+
step "our extension is enabled with:", ""
|
5
9
|
end
|
6
10
|
|
7
11
|
Given /^our extension is enabled with:$/ do |config|
|
8
|
-
config = """
|
12
|
+
config = "" "
|
13
|
+
#{@middleman_config}
|
14
|
+
|
9
15
|
activate :images do |config|
|
10
16
|
config.image_optim = {
|
11
17
|
pngout: false,
|
@@ -13,7 +19,7 @@ Given /^our extension is enabled with:$/ do |config|
|
|
13
19
|
}
|
14
20
|
#{config}
|
15
21
|
end
|
16
|
-
"""
|
22
|
+
" ""
|
17
23
|
step 'a file named "config.rb" with:', config
|
18
24
|
end
|
19
25
|
|
@@ -23,9 +29,9 @@ Then /^the dimensions should be (\d+)x(\d+)$/ do |x, y|
|
|
23
29
|
end
|
24
30
|
|
25
31
|
Then /^the content length should be equal to the file size of "([^\"]*)"$/ do |file|
|
26
|
-
expect(page.response_headers[
|
32
|
+
expect(page.response_headers["Content-Length"].to_i).to eq File.size(expand_path(file))
|
27
33
|
end
|
28
34
|
|
29
35
|
Then /^the content length should be smaller than the file size of "([^\"]*)"$/ do |file|
|
30
|
-
expect(page.response_headers[
|
36
|
+
expect(page.response_headers["Content-Length"].to_i).to be < File.size(expand_path(file))
|
31
37
|
end
|
Binary file
|
@@ -1,27 +1,17 @@
|
|
1
1
|
# If you do not have OpenSSL installed, update
|
2
2
|
# the following line to use "http://" instead
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in middleman-images.gemspec
|
6
|
-
gemspec path:
|
6
|
+
gemspec path: ".."
|
7
7
|
|
8
|
+
gem "middleman", "~> 4.1.0"
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
gem 'rdoc'
|
13
|
-
gem 'yard'
|
14
|
-
end
|
10
|
+
gem "aruba"
|
11
|
+
gem "capybara"
|
12
|
+
gem "cucumber"
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
gem 'rspec'
|
21
|
-
|
22
|
-
gem 'image_optim'
|
23
|
-
gem 'mini_magick'
|
24
|
-
|
25
|
-
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
26
|
-
gem 'image_optim_pack', '=0.6.0'
|
27
|
-
end
|
14
|
+
gem "image_optim"
|
15
|
+
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
16
|
+
gem "image_optim_pack", "=0.6.0"
|
17
|
+
gem "mini_magick"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
middleman-images (0.
|
4
|
+
middleman-images (0.2.0)
|
5
5
|
middleman-core (>= 4.1.14)
|
6
6
|
|
7
7
|
GEM
|
@@ -142,24 +142,13 @@ GEM
|
|
142
142
|
rack (2.1.2)
|
143
143
|
rack-test (1.1.0)
|
144
144
|
rack (>= 1.0, < 3)
|
145
|
-
rake (13.0.1)
|
146
145
|
rb-fsevent (0.10.3)
|
147
146
|
rb-inotify (0.10.1)
|
148
147
|
ffi (~> 1.0)
|
149
|
-
rdoc (6.2.1)
|
150
148
|
regexp_parser (1.6.0)
|
151
|
-
rspec (3.9.0)
|
152
|
-
rspec-core (~> 3.9.0)
|
153
|
-
rspec-expectations (~> 3.9.0)
|
154
|
-
rspec-mocks (~> 3.9.0)
|
155
|
-
rspec-core (3.9.1)
|
156
|
-
rspec-support (~> 3.9.1)
|
157
149
|
rspec-expectations (3.9.0)
|
158
150
|
diff-lcs (>= 1.2.0, < 2.0)
|
159
151
|
rspec-support (~> 3.9.0)
|
160
|
-
rspec-mocks (3.9.1)
|
161
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
162
|
-
rspec-support (~> 3.9.0)
|
163
152
|
rspec-support (3.9.2)
|
164
153
|
sass (3.4.25)
|
165
154
|
servolux (0.13.0)
|
@@ -173,7 +162,6 @@ GEM
|
|
173
162
|
execjs (>= 0.3.0, < 3)
|
174
163
|
xpath (3.2.0)
|
175
164
|
nokogiri (~> 1.8)
|
176
|
-
yard (0.9.24)
|
177
165
|
|
178
166
|
PLATFORMS
|
179
167
|
ruby
|
@@ -187,10 +175,6 @@ DEPENDENCIES
|
|
187
175
|
middleman (~> 4.1.0)
|
188
176
|
middleman-images!
|
189
177
|
mini_magick
|
190
|
-
rake
|
191
|
-
rdoc
|
192
|
-
rspec
|
193
|
-
yard
|
194
178
|
|
195
179
|
BUNDLED WITH
|
196
180
|
1.17.3
|
@@ -1,27 +1,17 @@
|
|
1
1
|
# If you do not have OpenSSL installed, update
|
2
2
|
# the following line to use "http://" instead
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in middleman-images.gemspec
|
6
|
-
gemspec path:
|
6
|
+
gemspec path: ".."
|
7
7
|
|
8
|
+
gem "middleman", "~> 4.2.0"
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
gem 'rdoc'
|
13
|
-
gem 'yard'
|
14
|
-
end
|
10
|
+
gem "aruba"
|
11
|
+
gem "capybara"
|
12
|
+
gem "cucumber"
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
gem 'rspec'
|
21
|
-
|
22
|
-
gem 'image_optim'
|
23
|
-
gem 'mini_magick'
|
24
|
-
|
25
|
-
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
26
|
-
gem 'image_optim_pack', '=0.6.0'
|
27
|
-
end
|
14
|
+
gem "image_optim"
|
15
|
+
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
16
|
+
gem "image_optim_pack", "=0.6.0"
|
17
|
+
gem "mini_magick"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
middleman-images (0.
|
4
|
+
middleman-images (0.2.0)
|
5
5
|
middleman-core (>= 4.1.14)
|
6
6
|
|
7
7
|
GEM
|
@@ -142,24 +142,13 @@ GEM
|
|
142
142
|
rack (2.1.2)
|
143
143
|
rack-test (1.1.0)
|
144
144
|
rack (>= 1.0, < 3)
|
145
|
-
rake (13.0.1)
|
146
145
|
rb-fsevent (0.10.3)
|
147
146
|
rb-inotify (0.10.1)
|
148
147
|
ffi (~> 1.0)
|
149
|
-
rdoc (6.2.1)
|
150
148
|
regexp_parser (1.6.0)
|
151
|
-
rspec (3.9.0)
|
152
|
-
rspec-core (~> 3.9.0)
|
153
|
-
rspec-expectations (~> 3.9.0)
|
154
|
-
rspec-mocks (~> 3.9.0)
|
155
|
-
rspec-core (3.9.1)
|
156
|
-
rspec-support (~> 3.9.1)
|
157
149
|
rspec-expectations (3.9.0)
|
158
150
|
diff-lcs (>= 1.2.0, < 2.0)
|
159
151
|
rspec-support (~> 3.9.0)
|
160
|
-
rspec-mocks (3.9.1)
|
161
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
162
|
-
rspec-support (~> 3.9.0)
|
163
152
|
rspec-support (3.9.2)
|
164
153
|
sass (3.4.25)
|
165
154
|
servolux (0.13.0)
|
@@ -173,7 +162,6 @@ GEM
|
|
173
162
|
execjs (>= 0.3.0, < 3)
|
174
163
|
xpath (3.2.0)
|
175
164
|
nokogiri (~> 1.8)
|
176
|
-
yard (0.9.24)
|
177
165
|
|
178
166
|
PLATFORMS
|
179
167
|
ruby
|
@@ -187,10 +175,6 @@ DEPENDENCIES
|
|
187
175
|
middleman (~> 4.2.0)
|
188
176
|
middleman-images!
|
189
177
|
mini_magick
|
190
|
-
rake
|
191
|
-
rdoc
|
192
|
-
rspec
|
193
|
-
yard
|
194
178
|
|
195
179
|
BUNDLED WITH
|
196
180
|
1.17.3
|
@@ -1,27 +1,17 @@
|
|
1
1
|
# If you do not have OpenSSL installed, update
|
2
2
|
# the following line to use "http://" instead
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in middleman-images.gemspec
|
6
|
-
gemspec path:
|
6
|
+
gemspec path: ".."
|
7
7
|
|
8
|
+
gem "middleman", "~> 4.3.0"
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
gem 'rdoc'
|
13
|
-
gem 'yard'
|
14
|
-
end
|
10
|
+
gem "aruba"
|
11
|
+
gem "capybara"
|
12
|
+
gem "cucumber"
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
gem 'rspec'
|
21
|
-
|
22
|
-
gem 'image_optim'
|
23
|
-
gem 'mini_magick'
|
24
|
-
|
25
|
-
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
26
|
-
gem 'image_optim_pack', '=0.6.0'
|
27
|
-
end
|
14
|
+
gem "image_optim"
|
15
|
+
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
16
|
+
gem "image_optim_pack", "=0.6.0"
|
17
|
+
gem "mini_magick"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
middleman-images (0.
|
4
|
+
middleman-images (0.2.0)
|
5
5
|
middleman-core (>= 4.1.14)
|
6
6
|
|
7
7
|
GEM
|
@@ -139,24 +139,13 @@ GEM
|
|
139
139
|
rack (2.1.2)
|
140
140
|
rack-test (1.1.0)
|
141
141
|
rack (>= 1.0, < 3)
|
142
|
-
rake (13.0.1)
|
143
142
|
rb-fsevent (0.10.3)
|
144
143
|
rb-inotify (0.10.1)
|
145
144
|
ffi (~> 1.0)
|
146
|
-
rdoc (6.2.1)
|
147
145
|
regexp_parser (1.6.0)
|
148
|
-
rspec (3.9.0)
|
149
|
-
rspec-core (~> 3.9.0)
|
150
|
-
rspec-expectations (~> 3.9.0)
|
151
|
-
rspec-mocks (~> 3.9.0)
|
152
|
-
rspec-core (3.9.1)
|
153
|
-
rspec-support (~> 3.9.1)
|
154
146
|
rspec-expectations (3.9.0)
|
155
147
|
diff-lcs (>= 1.2.0, < 2.0)
|
156
148
|
rspec-support (~> 3.9.0)
|
157
|
-
rspec-mocks (3.9.1)
|
158
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
159
|
-
rspec-support (~> 3.9.0)
|
160
149
|
rspec-support (3.9.2)
|
161
150
|
sassc (2.2.1)
|
162
151
|
ffi (~> 1.9)
|
@@ -171,7 +160,6 @@ GEM
|
|
171
160
|
execjs (>= 0.3.0, < 3)
|
172
161
|
xpath (3.2.0)
|
173
162
|
nokogiri (~> 1.8)
|
174
|
-
yard (0.9.24)
|
175
163
|
|
176
164
|
PLATFORMS
|
177
165
|
ruby
|
@@ -185,10 +173,6 @@ DEPENDENCIES
|
|
185
173
|
middleman (~> 4.3.0)
|
186
174
|
middleman-images!
|
187
175
|
mini_magick
|
188
|
-
rake
|
189
|
-
rdoc
|
190
|
-
rspec
|
191
|
-
yard
|
192
176
|
|
193
177
|
BUNDLED WITH
|
194
178
|
2.1.4
|
@@ -1,27 +1,17 @@
|
|
1
1
|
# If you do not have OpenSSL installed, update
|
2
2
|
# the following line to use "http://" instead
|
3
|
-
source
|
3
|
+
source "https://rubygems.org"
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in middleman-images.gemspec
|
6
|
-
gemspec path:
|
6
|
+
gemspec path: ".."
|
7
7
|
|
8
|
+
gem "middleman", "~> 5.0.0.rc"
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
gem 'rdoc'
|
13
|
-
gem 'yard'
|
14
|
-
end
|
10
|
+
gem "aruba"
|
11
|
+
gem "capybara"
|
12
|
+
gem "cucumber"
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
gem 'rspec'
|
21
|
-
|
22
|
-
gem 'image_optim'
|
23
|
-
gem 'mini_magick'
|
24
|
-
|
25
|
-
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
26
|
-
gem 'image_optim_pack', '=0.6.0'
|
27
|
-
end
|
14
|
+
gem "image_optim"
|
15
|
+
# Version is locked to make sure asset_hash tests are not broken by updated optimizations.
|
16
|
+
gem "image_optim_pack", "=0.6.0"
|
17
|
+
gem "mini_magick"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
middleman-images (0.
|
4
|
+
middleman-images (0.2.0)
|
5
5
|
middleman-core (>= 4.1.14)
|
6
6
|
|
7
7
|
GEM
|
@@ -21,7 +21,7 @@ GEM
|
|
21
21
|
ffi (~> 1.9)
|
22
22
|
rspec-expectations (>= 2.99)
|
23
23
|
thor (>= 0.19, < 2.0)
|
24
|
-
backports (3.
|
24
|
+
backports (3.16.1)
|
25
25
|
builder (3.2.4)
|
26
26
|
capybara (3.31.0)
|
27
27
|
addressable
|
@@ -140,27 +140,16 @@ GEM
|
|
140
140
|
rack (2.1.2)
|
141
141
|
rack-test (1.1.0)
|
142
142
|
rack (>= 1.0, < 3)
|
143
|
-
rake (13.0.1)
|
144
143
|
rb-fsevent (0.10.3)
|
145
144
|
rb-inotify (0.10.1)
|
146
145
|
ffi (~> 1.0)
|
147
|
-
rdoc (6.2.1)
|
148
146
|
regexp_parser (1.6.0)
|
149
147
|
rgl (0.5.6)
|
150
148
|
lazy_priority_queue (~> 0.1.0)
|
151
149
|
stream (~> 0.5.2)
|
152
|
-
rspec (3.9.0)
|
153
|
-
rspec-core (~> 3.9.0)
|
154
|
-
rspec-expectations (~> 3.9.0)
|
155
|
-
rspec-mocks (~> 3.9.0)
|
156
|
-
rspec-core (3.9.1)
|
157
|
-
rspec-support (~> 3.9.1)
|
158
150
|
rspec-expectations (3.9.0)
|
159
151
|
diff-lcs (>= 1.2.0, < 2.0)
|
160
152
|
rspec-support (~> 3.9.0)
|
161
|
-
rspec-mocks (3.9.1)
|
162
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
163
|
-
rspec-support (~> 3.9.0)
|
164
153
|
rspec-support (3.9.2)
|
165
154
|
sassc (2.2.1)
|
166
155
|
ffi (~> 1.9)
|
@@ -176,7 +165,6 @@ GEM
|
|
176
165
|
execjs (>= 0.3.0, < 3)
|
177
166
|
xpath (3.2.0)
|
178
167
|
nokogiri (~> 1.8)
|
179
|
-
yard (0.9.24)
|
180
168
|
|
181
169
|
PLATFORMS
|
182
170
|
ruby
|
@@ -190,10 +178,6 @@ DEPENDENCIES
|
|
190
178
|
middleman (~> 5.0.0.rc)
|
191
179
|
middleman-images!
|
192
180
|
mini_magick
|
193
|
-
rake
|
194
|
-
rdoc
|
195
|
-
rspec
|
196
|
-
yard
|
197
181
|
|
198
182
|
BUNDLED WITH
|
199
183
|
2.1.4
|
@@ -1,56 +1,48 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "middleman-core"
|
2
|
+
require "pathname"
|
3
|
+
require "padrino-helpers"
|
4
4
|
|
5
5
|
module Middleman
|
6
6
|
module Images
|
7
7
|
class Extension < ::Middleman::Extension
|
8
|
-
option :optimize, false,
|
9
|
-
option :image_optim, {},
|
10
|
-
option :ignore_original, false,
|
11
|
-
option :cache_dir,
|
8
|
+
option :optimize, false, "Whether to optimize images by default"
|
9
|
+
option :image_optim, {}, "Default options for image_optim"
|
10
|
+
option :ignore_original, false, "Whether to ignore original images in build"
|
11
|
+
option :cache_dir, "cache", "Specification of cache folder"
|
12
12
|
|
13
13
|
helpers do
|
14
|
-
def image_tag(
|
14
|
+
def image_tag(path, options = {})
|
15
15
|
process_options = options.slice(:resize, :optimize)
|
16
|
-
options = { src: image_path(
|
17
|
-
super
|
16
|
+
options = { src: image_path(path, process_options) }.update(options.except(:resize, :optimize))
|
17
|
+
super(path, options)
|
18
18
|
end
|
19
19
|
|
20
|
-
def image_path(
|
21
|
-
|
22
|
-
super
|
20
|
+
def image_path(path, process_options = {})
|
21
|
+
path = extensions[:images].image_path(path, process_options)
|
22
|
+
super(path)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
@
|
26
|
+
def manipulate_resource_list(resources)
|
27
|
+
@manipulator.manipulate_resource_list(resources)
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
33
|
-
image = Image.new(app, source.source_file, dest_url, process_options.merge(cache_dir: options[:cache_dir]))
|
34
|
-
manipulator.add image
|
35
|
-
app.sitemap.register_resource_list_manipulator(:images, manipulator, 40) unless app.build?
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def image(url, process_options)
|
41
|
-
source = app.sitemap.find_resource_by_path(absolute_image_path(url))
|
42
|
-
return url if source.nil?
|
30
|
+
def image_path(path, process_options)
|
31
|
+
source = app.sitemap.find_resource_by_path(absolute_path(path))
|
32
|
+
return path if source.nil?
|
43
33
|
|
44
34
|
process_options[:image_optim] = options[:image_optim]
|
45
35
|
process_options[:optimize] = options[:optimize] unless process_options.key?(:optimize)
|
46
36
|
|
47
37
|
if process_options[:resize] || process_options[:optimize]
|
48
|
-
|
38
|
+
processed_path = Pathname.new(add_processed_resource(source, process_options))
|
39
|
+
images_dir = Pathname.new(app.config[:images_dir])
|
40
|
+
path = processed_path.relative_path_from(Pathname.new(app.config[:images_dir])).to_s
|
49
41
|
else
|
50
|
-
manipulator.preserve_original source
|
51
|
-
app.sitemap.register_resource_list_manipulator(:images, manipulator, 40) unless app.build?
|
42
|
+
@manipulator.preserve_original source
|
52
43
|
end
|
53
|
-
|
44
|
+
|
45
|
+
path
|
54
46
|
end
|
55
47
|
|
56
48
|
def initialize(app, options_hash = {}, &block)
|
@@ -58,31 +50,25 @@ module Middleman
|
|
58
50
|
@manipulator = Manipulator.new(@app, options[:ignore_original])
|
59
51
|
end
|
60
52
|
|
61
|
-
def before_build(builder)
|
62
|
-
# trigger our image_tag helper
|
63
|
-
rack = builder.instance_variable_get(:@rack)
|
64
|
-
|
65
|
-
builder.app.logger.info "== Images: Looking for images to process"
|
66
|
-
builder.app.sitemap.resources.each do |resource|
|
67
|
-
rack.get(CGI.escape(resource.request_path)) unless resource.binary?
|
68
|
-
end
|
69
|
-
builder.app.sitemap.register_resource_list_manipulator(:images, manipulator, 40)
|
70
|
-
end
|
71
|
-
|
72
53
|
private
|
73
54
|
|
74
|
-
|
55
|
+
def absolute_path(path)
|
56
|
+
absolute_path = path.start_with?("/") || path.start_with?(app.config[:images_dir])
|
57
|
+
absolute_path ? path : app.config[:images_dir] + "/" + path
|
58
|
+
end
|
75
59
|
|
76
|
-
def
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
60
|
+
def add_processed_resource(source, process_options)
|
61
|
+
build_processed_path(source, process_options).tap do |processed_path|
|
62
|
+
processed_resource = Image.new(app.sitemap, processed_path, source.source_file, process_options.merge(cache_dir: options[:cache_dir]))
|
63
|
+
@manipulator.add(processed_resource)
|
64
|
+
end
|
81
65
|
end
|
82
66
|
|
83
|
-
def
|
84
|
-
|
85
|
-
|
67
|
+
def build_processed_path(source, process_options)
|
68
|
+
destination = source.normalized_path.sub(/#{source.ext}$/, "")
|
69
|
+
destination += "-" + CGI.escape(process_options[:resize].to_s) if process_options[:resize]
|
70
|
+
destination += "-opt" if process_options[:optimize]
|
71
|
+
destination + source.ext
|
86
72
|
end
|
87
73
|
end
|
88
74
|
end
|
@@ -1,40 +1,56 @@
|
|
1
1
|
module Middleman
|
2
2
|
module Images
|
3
|
-
class Image
|
4
|
-
attr_reader :destination, :source
|
5
|
-
|
3
|
+
class Image < Middleman::Sitemap::Resource
|
6
4
|
IGNORE_RESIZING = {
|
7
|
-
".svg" =>
|
8
|
-
".gif" =>
|
5
|
+
".svg" => "WARNING: We did not resize %{file}. Resizing SVG files will lead to ImageMagick creating an SVG with an embedded binary image thus making the file way bigger.",
|
6
|
+
".gif" => "WARNING: We did not resize %{file}. Resizing GIF files will remove the animation. If your GIF file is not animated, use JPG or PNG instead.",
|
9
7
|
}.freeze
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@
|
15
|
-
|
16
|
-
|
17
|
-
FileUtils.mkdir_p File.dirname(
|
9
|
+
attr_reader :app, :original_source_file
|
10
|
+
|
11
|
+
def initialize(store, path, source, options = {})
|
12
|
+
@original_source_file = source
|
13
|
+
|
14
|
+
processed_source_file = File.join(store.app.root, options.delete(:cache_dir), path)
|
15
|
+
FileUtils.mkdir_p File.dirname(processed_source_file)
|
16
|
+
|
17
|
+
@processing_options = options
|
18
|
+
|
19
|
+
super(store, path, processed_source_file)
|
18
20
|
end
|
19
21
|
|
20
22
|
def process
|
21
|
-
return if File.exist?(
|
23
|
+
return if File.exist?(processed_source_file) && File.mtime(original_source_file) < File.mtime(processed_source_file)
|
24
|
+
|
25
|
+
app.logger.info "== Images: Processing #{@path}"
|
22
26
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
optimize(cache, options[:image_optim]) if options[:optimize]
|
27
|
+
FileUtils.copy(original_source_file, processed_source_file)
|
28
|
+
resize(processed_source_file, @processing_options[:resize]) unless @processing_options[:resize].nil?
|
29
|
+
optimize(processed_source_file, @processing_options[:image_optim]) if @processing_options[:optimize]
|
27
30
|
end
|
28
31
|
|
29
|
-
|
30
|
-
|
32
|
+
# We want to process images as late as possible. Before Middleman works with our source file, it will check
|
33
|
+
# whether it is binary? or static_file?. That's when we need to ensure the processed source files exist.
|
34
|
+
def binary?
|
35
|
+
process
|
36
|
+
super
|
37
|
+
end
|
38
|
+
|
39
|
+
def static_file?
|
40
|
+
process
|
41
|
+
super
|
42
|
+
end
|
43
|
+
|
44
|
+
# The processed source file is the new source file for middleman.
|
45
|
+
def processed_source_file
|
46
|
+
source_file
|
31
47
|
end
|
32
48
|
|
33
49
|
private
|
34
50
|
|
35
51
|
def resize(image_path, options)
|
36
52
|
begin
|
37
|
-
require
|
53
|
+
require "mini_magick"
|
38
54
|
rescue LoadError
|
39
55
|
raise 'The gem "mini_magick" is required for image resizing. Please install "mini_magick" or remove the resize option.'
|
40
56
|
end
|
@@ -47,22 +63,20 @@ module Middleman
|
|
47
63
|
|
48
64
|
image = MiniMagick::Image.new(image_path) do |i|
|
49
65
|
i.resize(options)
|
50
|
-
i.define(
|
66
|
+
i.define("jpeg:preserve-settings")
|
51
67
|
end
|
52
68
|
image.write image_path
|
53
69
|
end
|
54
70
|
|
55
71
|
def optimize(image_path, options)
|
56
72
|
begin
|
57
|
-
require
|
73
|
+
require "image_optim"
|
58
74
|
rescue LoadError
|
59
75
|
raise "The gem 'image_option' is required for image optimization. Please install the gem 'image_optim' or set the option optimize: false."
|
60
76
|
end
|
61
77
|
|
62
78
|
ImageOptim.new(options).optimize_image!(image_path)
|
63
79
|
end
|
64
|
-
|
65
|
-
attr_accessor :app, :cache, :options
|
66
80
|
end
|
67
81
|
end
|
68
82
|
end
|
@@ -6,12 +6,13 @@ module Middleman
|
|
6
6
|
@images = []
|
7
7
|
@required_originals = []
|
8
8
|
@ignore_original = ignore_original
|
9
|
+
@inspected_at = {}
|
10
|
+
@destination_paths = []
|
9
11
|
end
|
10
12
|
|
11
13
|
def add(image)
|
12
|
-
unless
|
13
|
-
|
14
|
-
end
|
14
|
+
images << image unless @destination_paths.include?(image.destination_path)
|
15
|
+
@destination_paths << image.destination_path
|
15
16
|
end
|
16
17
|
|
17
18
|
def preserve_original(resource)
|
@@ -19,28 +20,54 @@ module Middleman
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def manipulate_resource_list(resources)
|
23
|
+
app.logger.info "== Images: Registering images to process. This may take a while…"
|
24
|
+
|
25
|
+
resources.each do |resource|
|
26
|
+
next unless inspect?(resource)
|
27
|
+
|
28
|
+
app.logger.debug "== Images: Inspecting #{resource.destination_path} for images to process."
|
29
|
+
|
30
|
+
begin
|
31
|
+
# We inspect templates by triggering the render method on them. This way our
|
32
|
+
# image_tag and image_path helpers will get called and register the images.
|
33
|
+
resource.render({}, {})
|
34
|
+
rescue => e
|
35
|
+
app.logger.debug e
|
36
|
+
app.logger.debug "== Images: There was an error inspecting #{resource.destination_path}. Images for this resource will not be processed."
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
app.logger.info "== Images: All images have been registered."
|
41
|
+
|
22
42
|
ignore_orginal_resources(resources) if ignore_original
|
23
|
-
resources +
|
43
|
+
resources + images
|
24
44
|
end
|
25
45
|
|
26
46
|
private
|
27
47
|
|
28
48
|
attr_accessor :app, :images, :ignore_original, :required_originals
|
29
49
|
|
30
|
-
def
|
31
|
-
|
32
|
-
|
50
|
+
def inspect?(resource)
|
51
|
+
return false unless resource.template?
|
52
|
+
|
53
|
+
inspected_at = @inspected_at[resource.destination_path]
|
54
|
+
return true if inspected_at.nil?
|
55
|
+
|
56
|
+
source_modification_time = File.mtime(resource.source_file)
|
57
|
+
inspected_at < source_modification_time.tap do |inspect|
|
58
|
+
@inspected_at[resource.destination_path] = source_modification_time if inspect
|
59
|
+
end
|
33
60
|
end
|
34
61
|
|
35
62
|
def ignore_orginal_resources(resources)
|
36
|
-
originals = images.map(&:
|
63
|
+
originals = images.map(&:original_source_file)
|
37
64
|
unused_originals = originals - required_originals
|
38
65
|
|
39
66
|
resources.each do |resource|
|
40
67
|
if unused_originals.include? resource.source_file
|
41
68
|
resource.ignore!
|
42
69
|
elsif required_originals.include? resource.source_file
|
43
|
-
resource.ignored
|
70
|
+
resource.instance_variable_set(:@ignored, false)
|
44
71
|
end
|
45
72
|
end
|
46
73
|
end
|
data/middleman-images.gemspec
CHANGED
@@ -3,21 +3,25 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
require "middleman-images/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
s.platform
|
9
|
-
s.licenses
|
10
|
-
s.authors
|
11
|
-
s.email
|
12
|
-
s.homepage
|
13
|
-
s.summary
|
14
|
-
s.description = "
|
6
|
+
s.name = "middleman-images"
|
7
|
+
s.version = MiddlemanImages::VERSION.dup
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.licenses = ["MIT"]
|
10
|
+
s.authors = ["Ruben Grimm", "Julian Schneider"]
|
11
|
+
s.email = ["ruben.grimm@zweitag.de", "julian.schneider@zweitag.de"]
|
12
|
+
s.homepage = "https://www.github.com/zweitag/middleman-images"
|
13
|
+
s.summary = "Resize and optimize images for Middleman"
|
14
|
+
s.description = "" "
|
15
|
+
Resize and optimize your images on the fly with Middleman. Just run middleman build
|
16
|
+
and all your images will get the minimizing treatment. Middleman Images currently
|
17
|
+
depends on mini_magick for resizing and image_optim for optimizing your images.
|
18
|
+
" ""
|
15
19
|
|
16
|
-
s.files
|
17
|
-
s.test_files
|
18
|
-
s.executables
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
19
23
|
s.require_paths = ["lib"]
|
20
|
-
s.required_ruby_version =
|
24
|
+
s.required_ruby_version = ">= 2.5.0"
|
21
25
|
|
22
|
-
s.add_runtime_dependency("middleman-core", [">= 4.1.14"])
|
26
|
+
s.add_runtime_dependency("middleman-core", [">= 4.1.14", "< 5.1"])
|
23
27
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-images
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruben Grimm
|
8
8
|
- Julian Schneider
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-09-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: middleman-core
|
@@ -18,6 +18,9 @@ dependencies:
|
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 4.1.14
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '5.1'
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -25,7 +28,13 @@ dependencies:
|
|
25
28
|
- - ">="
|
26
29
|
- !ruby/object:Gem::Version
|
27
30
|
version: 4.1.14
|
28
|
-
|
31
|
+
- - "<"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.1'
|
34
|
+
description: "\n Resize and optimize your images on the fly with Middleman. Just
|
35
|
+
run middleman build\n and all your images will get the minimizing treatment.
|
36
|
+
Middleman Images currently\n depends on mini_magick for resizing and image_optim
|
37
|
+
for optimizing your images.\n "
|
29
38
|
email:
|
30
39
|
- ruben.grimm@zweitag.de
|
31
40
|
- julian.schneider@zweitag.de
|
@@ -34,21 +43,24 @@ extensions: []
|
|
34
43
|
extra_rdoc_files: []
|
35
44
|
files:
|
36
45
|
- ".gitignore"
|
46
|
+
- ".rufo"
|
37
47
|
- ".travis.yml"
|
38
48
|
- CHANGELOG.md
|
39
49
|
- Gemfile
|
40
50
|
- Gemfile.lock
|
41
51
|
- LICENSE
|
42
52
|
- README.md
|
43
|
-
- Rakefile
|
44
53
|
- features/building.feature
|
45
54
|
- features/ignore_original.feature
|
46
55
|
- features/image_path.feature
|
56
|
+
- features/images_dir.feature
|
47
57
|
- features/optimization.feature
|
58
|
+
- features/proxy_resources.feature
|
48
59
|
- features/relative_path.feature
|
49
60
|
- features/resize.feature
|
50
61
|
- features/support/env.rb
|
51
62
|
- features/support/middleman_images_steps.rb
|
63
|
+
- fixtures/image/source/assets/images/fox.jpg
|
52
64
|
- fixtures/image/source/images/fox.jpg
|
53
65
|
- gemfiles/Gemfile.middleman-4.1
|
54
66
|
- gemfiles/Gemfile.middleman-4.1.lock
|
@@ -68,7 +80,7 @@ homepage: https://www.github.com/zweitag/middleman-images
|
|
68
80
|
licenses:
|
69
81
|
- MIT
|
70
82
|
metadata: {}
|
71
|
-
post_install_message:
|
83
|
+
post_install_message:
|
72
84
|
rdoc_options: []
|
73
85
|
require_paths:
|
74
86
|
- lib
|
@@ -83,15 +95,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
95
|
- !ruby/object:Gem::Version
|
84
96
|
version: '0'
|
85
97
|
requirements: []
|
86
|
-
rubygems_version: 3.
|
87
|
-
signing_key:
|
98
|
+
rubygems_version: 3.1.2
|
99
|
+
signing_key:
|
88
100
|
specification_version: 4
|
89
101
|
summary: Resize and optimize images for Middleman
|
90
102
|
test_files:
|
91
103
|
- features/building.feature
|
92
104
|
- features/ignore_original.feature
|
93
105
|
- features/image_path.feature
|
106
|
+
- features/images_dir.feature
|
94
107
|
- features/optimization.feature
|
108
|
+
- features/proxy_resources.feature
|
95
109
|
- features/relative_path.feature
|
96
110
|
- features/resize.feature
|
97
111
|
- features/support/env.rb
|
data/Rakefile
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'bundler'
|
2
|
-
Bundler::GemHelper.install_tasks
|
3
|
-
|
4
|
-
require 'cucumber/rake/task'
|
5
|
-
|
6
|
-
Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
|
7
|
-
t.cucumber_opts = '--color --tags ~@wip --strict'
|
8
|
-
end
|
9
|
-
|
10
|
-
Cucumber::Rake::Task.new(:cucumber_wip, 'Run work-in-progress features that should pass') do |t|
|
11
|
-
t.cucumber_opts = "--color --tags @wip --strict"
|
12
|
-
end
|
13
|
-
|
14
|
-
require 'rake/clean'
|
15
|
-
|
16
|
-
task test: ['cucumber']
|
17
|
-
|
18
|
-
task default: :test
|