jekyll-image-size 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +17 -2
- data/lib/jekyll-image-size.rb +19 -2
- data/lib/jekyll-image-size/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 836312e259f06570779274e4e75d6f9ece276204
|
4
|
+
data.tar.gz: 9184ce60ff2709368c5f8cbcff8be7f3f5e231de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 185260d6d4b3302e31dae0c37b5ab3116ef13ef3772d3b0cf2ff76612228eb1872c1a17f0e639ef03039e2effc9f200a629d200928d0e5be42534d0ff7107e9f
|
7
|
+
data.tar.gz: 604f4e827b1ab63580c08cecf55611a3bbd95fa3aca31fdc40a74c75fbf0850c4aff49586dcb6234c90839467cfb1c011ddbba4351ee01f73c35d6a95abda814
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Jekyll-Image-Size ![travis-ci.org](https://travis-ci.org/generalui/jekyll-image-size.svg) [![Gem Version](https://badge.fury.io/rb/jekyll-image-size.svg)](https://badge.fury.io/rb/jekyll-image-size)
|
2
2
|
|
3
|
+
<img src="spec/data/test.jpg">
|
4
|
+
|
3
5
|
Jekyll tag-plugin to read image sizes from static assets and output in many formats.
|
4
6
|
|
5
7
|
Uses:
|
@@ -51,7 +53,7 @@ gif, jpeg, png, tiff, bmp, ico, cur, psd, svg, webp
|
|
51
53
|
The `imagesize` takes one parameter. That parameter has the form:
|
52
54
|
|
53
55
|
```
|
54
|
-
source[:format[/divide-by-number]][ rest...]
|
56
|
+
source[:format[/divide-by-number]][?uri-encoded-params][ rest...]
|
55
57
|
```
|
56
58
|
|
57
59
|
source is a string and can be one of:
|
@@ -78,6 +80,11 @@ divide-by-numbers:
|
|
78
80
|
* integer: 2
|
79
81
|
* float: 2.5 or 0.5 or .5
|
80
82
|
|
83
|
+
uri-encoded-params:
|
84
|
+
|
85
|
+
* width=123: fix the width to the given pixels and scale the height proportionally
|
86
|
+
* height=123: fix the height to the given pixels and scale the width proportionally
|
87
|
+
|
81
88
|
rest:
|
82
89
|
|
83
90
|
* must start with a space
|
@@ -94,7 +101,6 @@ Format examples:
|
|
94
101
|
{% imagesize source:json %} >> {width: 652, height: 435}
|
95
102
|
{% imagesize source:array %} >> [652, 435]
|
96
103
|
{% imagesize source:list %} >> 652, 435
|
97
|
-
{% imagesize source:size/2 %} >> 326x218
|
98
104
|
{% imagesize source:width %} >> 652
|
99
105
|
{% imagesize source:height %} >> 435
|
100
106
|
{% imagesize source:css %} >> width: 652px; height: 435px;
|
@@ -103,6 +109,14 @@ Format examples:
|
|
103
109
|
{% imagesize source:img %} >> <img src='/assets/logo.jpg' width='350' height='32'>
|
104
110
|
```
|
105
111
|
|
112
|
+
Scaling examples:
|
113
|
+
|
114
|
+
```html
|
115
|
+
{% imagesize source:size/2 %} >> 326x218
|
116
|
+
{% imagesize source:size?width=600 %} >> 600x400
|
117
|
+
{% imagesize source:size?height=200 %} >> 300x200
|
118
|
+
```
|
119
|
+
|
106
120
|
Image source examples:
|
107
121
|
|
108
122
|
```html
|
@@ -117,6 +131,7 @@ Combined examples:
|
|
117
131
|
{% imagesize /assets/logo.jpg:opengraph %}
|
118
132
|
{% imagesize /assets/logo.jpg:css/2 %}
|
119
133
|
{% imagesize image:width/2.5 %}
|
134
|
+
{% imagesize image:height?width=500 %}
|
120
135
|
{% imagesize /assets/logo.jpg:img alt='my alt string' %}
|
121
136
|
# <img src='/assets/logo.jpg' width='350' height='32' alt='my alt string'>
|
122
137
|
```
|
data/lib/jekyll-image-size.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "jekyll"
|
2
2
|
require 'fastimage'
|
3
|
+
require 'cgi'
|
3
4
|
require "jekyll-image-size/version"
|
4
5
|
|
5
6
|
class ImageSizeError < StandardError; end
|
@@ -14,9 +15,12 @@ class ImageSizeTag < Liquid::Tag
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def self.getImageSize(content, context = nil)
|
17
|
-
if m = content.match(/^((?:[
|
18
|
-
source, mode, scale, required, rest = m.captures
|
18
|
+
if m = content.match(/^((?:[^?:!]|:[^a-z])+)(?::([a-z]+)(?:\/((?:\d+|(?=\.))(?:\.\d+)?))?)?(\!)?(?:\?(.+))?( .*)?$/i)
|
19
|
+
source, mode, scale, required, params, rest = m.captures
|
19
20
|
|
21
|
+
if params
|
22
|
+
params = CGI::parse(params)
|
23
|
+
end
|
20
24
|
else
|
21
25
|
raise ImageSizeError.new "invalid imagesize parameter: #{content}"
|
22
26
|
end
|
@@ -40,6 +44,19 @@ class ImageSizeTag < Liquid::Tag
|
|
40
44
|
width = height = 0
|
41
45
|
end
|
42
46
|
|
47
|
+
if params
|
48
|
+
aspect_ratio = width.to_f / height.to_f
|
49
|
+
if v = params["width"][0]
|
50
|
+
width = v.to_i
|
51
|
+
height = (width / aspect_ratio).round
|
52
|
+
|
53
|
+
elsif v = params["height"][0]
|
54
|
+
height = v.to_i
|
55
|
+
width = (height * aspect_ratio).round
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
43
60
|
if scale
|
44
61
|
scale = scale.to_f
|
45
62
|
width = (width / scale).round
|