middlemac-extras 1.0.0 → 1.0.5
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 +6 -0
- data/documentation_project/Gemfile +1 -1
- data/documentation_project/config.rb +1 -1
- data/documentation_project/source/css_image_sizes.html.md.erb +34 -0
- data/lib/middlemac-extras/extension.rb +12 -2
- data/lib/middlemac-extras/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: 47aad4c22b21d4814184a9f3d0bfbbaa7a3c1d49
|
4
|
+
data.tar.gz: ed424b5d4b2ac535f57580cc31b9b7413b4b5b61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d78a4a8951950f779079bacc9c9d78bc6335bd6d24777864a02dd68f21ea3d0619bcddc951f090d0aa0d0a73852067ecee71ba86d9d9cdabc46ad9ff2b38855e
|
7
|
+
data.tar.gz: 5edc65933dec1909430c1b3b089a32725fbd6282d2d08448e4a8fb662c5b1e8ff71f8bf0b0cd502fc22670718a081b78f3c7c3230fe6dfcd1074a6c50fc66473
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
middlemac-extras change log
|
2
2
|
===========================
|
3
3
|
|
4
|
+
- Version 1.0.5 / 2016-April-08
|
5
|
+
|
6
|
+
- Fixed the implementation of css_image_sizes so that full path is not
|
7
|
+
always used, as Middleman using `:relative_assets` doesn't use the full
|
8
|
+
path.
|
9
|
+
|
4
10
|
- Version 1.0.0 / 2016-April-05
|
5
11
|
|
6
12
|
- Initial Release
|
@@ -9,7 +9,7 @@ gem 'wdm', '~> 0.1.0', platforms: [:mswin, :mingw]
|
|
9
9
|
gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby]
|
10
10
|
|
11
11
|
# Middleman Gems
|
12
|
-
gem 'middlemac-extras', '~> 1.0'
|
12
|
+
gem 'middlemac-extras', '~> 1.0.5'
|
13
13
|
gem 'middleman', '~> 4.1.6'
|
14
14
|
gem 'middleman-syntax'
|
15
15
|
|
@@ -63,3 +63,37 @@ You will be tempted to add this helper to your `style.css.scss` file, maybe
|
|
63
63
|
even renaming it to `style.css.scss.erb`, but this will not work due to the
|
64
64
|
order that Middleman and SASS build output.
|
65
65
|
{:.note}
|
66
|
+
|
67
|
+
|
68
|
+
## Technical details
|
69
|
+
|
70
|
+
This CSS will control your image sizes by specifying a maximum width and height
|
71
|
+
for each image in the project using the `src` attribute selector and matching
|
72
|
+
against the end of that value. For example:
|
73
|
+
|
74
|
+
~~~ scss
|
75
|
+
img[src$='icon.png'] { max-width: 256px; max-height: 256px; }
|
76
|
+
~~~
|
77
|
+
|
78
|
+
CSS matches using literal text, and so will not respect relative paths. The
|
79
|
+
simple rule above has a high possibility of naming collisions with other files
|
80
|
+
named `icon.png`.
|
81
|
+
|
82
|
+
If you follow Middleman’s best practices and keep most or all of your images in
|
83
|
+
the defined `:images_dir` then the possibility of naming collisions will go
|
84
|
+
away, as this helper will deliver the `src` attribute selectors starting with
|
85
|
+
the final component of your `:images_dir`, for example:
|
86
|
+
|
87
|
+
~~~ scss
|
88
|
+
img[src$='images/logo-small.png'] { max-width: 128px; max-height: 128px; }
|
89
|
+
img[src$='images/blog/logo-small.png'] { max-width: 160px; max-height: 160px; }
|
90
|
+
img[src$='icon_32x32.png'] { max-width: 32px; max-height: 32px; }
|
91
|
+
~~~
|
92
|
+
|
93
|
+
In this example, the last image – `icon_32x32.png` – is not within `:images_dir`
|
94
|
+
and so has no directory and is subject to naming collisions.
|
95
|
+
|
96
|
+
The scheme above will work whether or not Middleman is configured with
|
97
|
+
`relative_assets` because both relative and absolute links will always contain
|
98
|
+
that last part of the path component. The only way this might break is by
|
99
|
+
serving HTML pages from within your `:images_dir`.
|
@@ -250,11 +250,21 @@ class MiddlemacExtras < ::Middleman::Extension
|
|
250
250
|
if FastImage.size(file)
|
251
251
|
width = (FastImage.size(file)[0] / factor).to_i.to_s
|
252
252
|
height = (FastImage.size(file)[1] / factor).to_i.to_s
|
253
|
-
|
253
|
+
# CSS matches string literals and doesn't evaluate image paths.
|
254
|
+
# Assets in the image path with always bear the final path component
|
255
|
+
# in order to avoid collisions while working with relative_assets or
|
256
|
+
# not; items outside of the images_dir will use the basename only and
|
257
|
+
# be subject to collisions.
|
258
|
+
if r.url.start_with?("/#{app.config[:images_dir]}")
|
259
|
+
subtract = "/#{app.config[:images_dir].split('/')[0...-1].join('/')}/"
|
260
|
+
url = r.url.sub(subtract, '')
|
261
|
+
@md_sizes_b << "img[src$='#{url}'] { max-width: #{width}px; max-height: #{height}px; }"
|
262
|
+
else
|
263
|
+
@md_sizes_b << "img[src$='#{File.basename(r.url)}'] { max-width: #{width}px; max-height: #{height}px; }"
|
264
|
+
end
|
254
265
|
end
|
255
266
|
end # each
|
256
267
|
end
|
257
|
-
|
258
268
|
@md_sizes_b.join("\n")
|
259
269
|
end
|
260
270
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middlemac-extras
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Derry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|