jekyll_img 0.2.1 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -0
- data/CHANGELOG.md +10 -0
- data/LICENSE.txt +0 -0
- data/README.md +65 -15
- data/Rakefile +0 -0
- data/jekyll_img.gemspec +1 -2
- data/lib/img_builder.rb +15 -1
- data/lib/img_props.rb +6 -0
- data/lib/jekyll_img/version.rb +1 -1
- data/lib/jekyll_img.rb +1 -1
- data/spec/img_builder_spec.rb +0 -0
- data/spec/img_props_spec.rb +0 -0
- data/spec/jekyll_img_spec.rb +0 -0
- data/spec/spec_helper.rb +0 -0
- data/spec/status_persistence.txt +10 -0
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fda05bddcf8c3506b2a68947549a297afe1cceec2dd461c21cd24141d1ecfe8d
|
4
|
+
data.tar.gz: 374733466b41e6f70209ec49db53cd0e177c77f712a050cdc5ed61fa0406fa7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbdaa8fb03b1cba56b855e0f02d747175ca07e248cf7343d1ba2eb6304ffaf09d86f6b30a38b44cf0116585cd4e6ecfe356c3c61853846d1e1b3523d77c873cd
|
7
|
+
data.tar.gz: 338caab74974775747ee4f21ab66c913dc2efd4a23ac0b2f9cb83d14add8f60e2a33d2d4dda3b0f72d20d782870deb4f1dbb067699d1abcd053368de021cb82f
|
data/.rubocop.yml
CHANGED
File without changes
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 0.2.3 / 2024-04-27
|
4
|
+
|
5
|
+
* Depends on jekyll_plugin_support v0.8.5
|
6
|
+
|
7
|
+
|
8
|
+
## 0.2.2 / 2024-01-08
|
9
|
+
|
10
|
+
* Added support for all image types except `avif`.
|
11
|
+
|
12
|
+
|
3
13
|
## 0.2.1 / 2023-11-28
|
4
14
|
|
5
15
|
* Took care of the inevitable blunder when making too many changes
|
data/LICENSE.txt
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -2,29 +2,41 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
`Jekyll_img` is a Jekyll plugin that embeds images in HTML documents, with alignment options,
|
5
|
-
flexible resizing, default styling, overridable styling, an optional caption,
|
5
|
+
flexible resizing, default styling, overridable styling, an optional caption, an optional URL,
|
6
|
+
and optional fullscreen zoom on mouseover.
|
7
|
+
|
8
|
+
Muliple image formats are supported for each image.
|
9
|
+
The user’s web browser determines the formats which it will accept.
|
10
|
+
The most desirable formats that the web browser supports are prioritized.
|
11
|
+
|
12
|
+
I explain why the `webp` image format is important in
|
13
|
+
[Converting All Images in a Website to `webp` Format](https://mslinn.com/blog/2020/08/15/converting-all-images-to-webp-format.html).
|
14
|
+
That article also provides 2 bash scripts for converting existing images to and from <code>webp</code> format.
|
15
|
+
|
16
|
+
For example, if an image is encloded in `webp`, `png` and `gif` filetypes,
|
17
|
+
and the user’s web browser is relatively recent,
|
18
|
+
then `webp` format will give the fastest transmission and look best.
|
19
|
+
Older browsers, which might not support `webp` format,
|
20
|
+
would give best results for `png` format.
|
21
|
+
Really old web browsers would only support the `gif` file type.
|
6
22
|
|
7
|
-
If you are not using `webp` images in your Jekyll website, this plugin is not for you.
|
8
23
|
Please read the next section for details.
|
9
|
-
If you have a use case that would benefit from expanding the supported file types,
|
10
|
-
please describe your use case on the [issue tracker](https://github.com/mslinn/jekyll_img/issues/5).
|
11
24
|
|
12
25
|
See [demo/index.html](demo/index.html) for examples.
|
13
26
|
|
14
27
|
|
15
28
|
## Image Fallback
|
16
29
|
|
17
|
-
This plugin provides support for
|
18
|
-
|
19
|
-
with a fallback to `png` format by using the HTML
|
30
|
+
This plugin provides support for many image formats,
|
31
|
+
fallbacks to less performant formats by using the HTML
|
20
32
|
[`picture`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture) element.
|
21
33
|
|
22
|
-
This means that
|
34
|
+
This means that at least one version of every image are required.
|
23
35
|
|
24
|
-
You specify the desired image with a `webp` filetype
|
25
|
-
|
36
|
+
You could specify the desired image with a `webp` filetype, or you could specify no filetype.
|
37
|
+
The plugin would generate a `picture` element that contains a primary
|
26
38
|
`source` sub-element that specifies the given image URL,
|
27
|
-
and
|
39
|
+
and secondary `img` sub-element with all other supported filetypes.
|
28
40
|
|
29
41
|
For example, these two invocations yield the same result:
|
30
42
|
|
@@ -38,16 +50,51 @@ The above generates the following
|
|
38
50
|
|
39
51
|
```html
|
40
52
|
<picture>
|
53
|
+
<source srcset="blah.svg" type="image/svg" />
|
41
54
|
<source srcset="blah.webp" type="image/webp" />
|
42
|
-
<source srcset="blah.
|
55
|
+
<source srcset="blah.apng" type="image/apng">
|
56
|
+
<source srcset="blah.png" type="image/png">
|
57
|
+
<source srcset="blah.jpg" type="image/jpeg">
|
58
|
+
<source srcset="blah.jpeg" type="image/jpeg">
|
59
|
+
<source srcset="blah.jfif" type="image/jpeg">
|
60
|
+
<source srcset="blah.pjpeg" type="image/jpeg">
|
61
|
+
<source srcset="blah.pjp" type="image/jpeg">
|
62
|
+
<source srcset="blah.gif" type="image/gif">
|
63
|
+
<source srcset="blah.tif" type="image/tiff">
|
64
|
+
<source srcset="blah.tiff" type="image/tiff">
|
65
|
+
<source srcset="blah.bmp" type="image/bmp">
|
66
|
+
<source srcset="blah.ico" type="image/x-icon">
|
67
|
+
<source srcset="blah.cur" type="image/x-icon">
|
43
68
|
<img src="blah.png" />
|
44
69
|
</picture>
|
45
70
|
```
|
46
71
|
|
47
|
-
|
72
|
+
If both `blah.webp` and `blah.png` were available,
|
73
|
+
the above would fetch and display `blah.webp` if the web browser supported `webp` format,
|
48
74
|
otherwise it would fetch and display `blah.png`.
|
49
75
|
|
50
76
|
|
77
|
+
## Supported Filetypes
|
78
|
+
|
79
|
+
The following are listed in order of priority.
|
80
|
+
See [MDN](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types) for more information.
|
81
|
+
|
82
|
+
| Filetype | MIME type |
|
83
|
+
| ------------------------------------- | --------------- |
|
84
|
+
| `svg` | `image/svg+xml` |
|
85
|
+
| `avif` | `image/avif` |
|
86
|
+
| `webp` | `image/webp` |
|
87
|
+
| `apng` | `image/apng` |
|
88
|
+
| `png` | `image/png` |
|
89
|
+
| `jpg`, `jpeg`, `jfif`, `pjpeg`, `pjp` | `image/jpeg` |
|
90
|
+
| `gif` | `image/gif` |
|
91
|
+
| `tif`, `tiff` | `image/tiff` |
|
92
|
+
| `bmp` | `image/bmp` |
|
93
|
+
| `ico`, `cur` | `image/x-icon` |
|
94
|
+
|
95
|
+
Because `avif` is problematic as of 2024-01-08 on Firefox, Chrome and Safari, it is not supported yet.
|
96
|
+
|
97
|
+
|
51
98
|
## Demo
|
52
99
|
|
53
100
|
Run the demo website by typing:
|
@@ -85,6 +132,7 @@ $ demo/_bin/debug -r
|
|
85
132
|
- `url='https://domain.com'` No default value
|
86
133
|
- `wrapper_class='class1 class2 classN'` Extra CSS classes for wrapper <div>; no default value
|
87
134
|
- `wrapper_style='background-color: black;'` CSS style for wrapper <div>; no default value
|
135
|
+
- `zoom` Fullscreen zoom on mouseover; presse escape or click outside image to dismiss
|
88
136
|
|
89
137
|
[`unit`](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#numbers_lengths_and_percentages)
|
90
138
|
is one of: `Q`, `ch`, `cm`, `em`, `dvh`, `dvw`, `ex`, `in`, `lh`,
|
@@ -207,11 +255,13 @@ jekyll_img (0.1.0)
|
|
207
255
|
|
208
256
|
### Debugging
|
209
257
|
|
210
|
-
You can cause `pry` to open when an `ImgError` is raised by setting
|
258
|
+
You can cause `pry` to open when an `ImgError` is raised by setting `pry_on_img_error` in `_config.yml`.
|
259
|
+
`Pry_on_img_error` has priority `die_on_img_error`.
|
211
260
|
|
212
261
|
```yaml
|
213
262
|
jekyll_img:
|
214
|
-
|
263
|
+
die_on_img_error: false # Default value is false
|
264
|
+
pry_on_img_error: true # Default value is false
|
215
265
|
```
|
216
266
|
|
217
267
|
|
data/Rakefile
CHANGED
File without changes
|
data/jekyll_img.gemspec
CHANGED
@@ -3,7 +3,6 @@ require_relative 'lib/jekyll_img/version'
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
github = 'https://github.com/mslinn/jekyll_img'
|
5
5
|
|
6
|
-
spec.bindir = 'exe'
|
7
6
|
spec.authors = ['Mike Slinn']
|
8
7
|
spec.email = ['mslinn@mslinn.com']
|
9
8
|
spec.files = Dir['.rubocop.yml', 'LICENSE.*', 'Rakefile', '{lib,spec}/**/*', '*.gemspec', '*.md']
|
@@ -29,5 +28,5 @@ Gem::Specification.new do |spec|
|
|
29
28
|
spec.version = JekyllImgVersion::VERSION
|
30
29
|
|
31
30
|
spec.add_dependency 'jekyll', '>= 3.5.0'
|
32
|
-
spec.add_dependency 'jekyll_plugin_support', '>= 0.8.
|
31
|
+
spec.add_dependency 'jekyll_plugin_support', '>= 0.8.5'
|
33
32
|
end
|
data/lib/img_builder.rb
CHANGED
@@ -62,8 +62,22 @@ class ImgBuilder
|
|
62
62
|
img_classes = @props.classes || 'rounded shadow'
|
63
63
|
<<~END_IMG
|
64
64
|
<picture#{@props.attr_id} class='imgPicture'>
|
65
|
+
<source srcset="#{@props.src_any 'svg'}" type="image/svg">
|
66
|
+
<!---<source srcset="#{@props.src_any 'avif'}" type="image/avif">-->
|
65
67
|
<source srcset="#{@props.src}" type="image/webp">
|
66
|
-
<source srcset="#{@props.
|
68
|
+
<source srcset="#{@props.src_any 'apng'}" type="image/apng">
|
69
|
+
<source srcset="#{@props.src_any 'png'}" type="image/png">
|
70
|
+
<source srcset="#{@props.src_any 'jpg'}" type="image/jpeg">
|
71
|
+
<source srcset="#{@props.src_any 'jpeg'}" type="image/jpeg">
|
72
|
+
<source srcset="#{@props.src_any 'jfif'}" type="image/jpeg">
|
73
|
+
<source srcset="#{@props.src_any 'pjpeg'}" type="image/jpeg">
|
74
|
+
<source srcset="#{@props.src_any 'pjp'}" type="image/jpeg">
|
75
|
+
<source srcset="#{@props.src_any 'gif'}" type="image/gif">
|
76
|
+
<source srcset="#{@props.src_any 'tif'}" type="image/tiff">
|
77
|
+
<source srcset="#{@props.src_any 'tiff'}" type="image/tiff">
|
78
|
+
<source srcset="#{@props.src_any 'bmp'}" type="image/bmp">
|
79
|
+
<source srcset="#{@props.src_any 'ico'}" type="image/x-icon">
|
80
|
+
<source srcset="#{@props.src_any 'cur'}" type="image/x-icon">
|
67
81
|
<img #{@props.attr_alt}
|
68
82
|
class="imgImg #{img_classes.squish}"
|
69
83
|
src="#{@props.src_png}"
|
data/lib/img_props.rb
CHANGED
@@ -66,6 +66,12 @@ class ImgProperties
|
|
66
66
|
@title ||= @caption || @alt
|
67
67
|
end
|
68
68
|
|
69
|
+
def src_any(filetype)
|
70
|
+
raise Jekyll::ImgError, "The 'src' parameter was not specified" if @src.to_s.empty?
|
71
|
+
|
72
|
+
@src.gsub('.webp', ".#{filetype}")
|
73
|
+
end
|
74
|
+
|
69
75
|
def src_png
|
70
76
|
raise Jekyll::ImgError, "The 'src' parameter was not specified" if @src.to_s.empty?
|
71
77
|
|
data/lib/jekyll_img/version.rb
CHANGED
data/lib/jekyll_img.rb
CHANGED
data/spec/img_builder_spec.rb
CHANGED
File without changes
|
data/spec/img_props_spec.rb
CHANGED
File without changes
|
data/spec/jekyll_img_spec.rb
CHANGED
File without changes
|
data/spec/spec_helper.rb
CHANGED
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
example_id | status | run_time |
|
2
|
+
------------------------------- | ------ | --------------- |
|
3
|
+
./spec/img_builder_spec.rb[1:1] | passed | 0.00073 seconds |
|
4
|
+
./spec/img_props_spec.rb[1:1] | passed | 0.0001 seconds |
|
5
|
+
./spec/img_props_spec.rb[1:2] | passed | 0.00008 seconds |
|
6
|
+
./spec/img_props_spec.rb[1:3] | failed | 0.00051 seconds |
|
7
|
+
./spec/img_props_spec.rb[1:4] | passed | 0.0011 seconds |
|
8
|
+
./spec/img_props_spec.rb[1:5] | passed | 0.00019 seconds |
|
9
|
+
./spec/img_props_spec.rb[1:6] | failed | 0.00008 seconds |
|
10
|
+
./spec/jekyll_img_spec.rb[1:1] | failed | 0.00037 seconds |
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll_img
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Slinn
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.8.
|
33
|
+
version: 0.8.5
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.8.
|
40
|
+
version: 0.8.5
|
41
41
|
description:
|
42
42
|
email:
|
43
43
|
- mslinn@mslinn.com
|
@@ -59,6 +59,7 @@ files:
|
|
59
59
|
- spec/img_props_spec.rb
|
60
60
|
- spec/jekyll_img_spec.rb
|
61
61
|
- spec/spec_helper.rb
|
62
|
+
- spec/status_persistence.txt
|
62
63
|
homepage: https://www.mslinn.com/jekyll_plugins/jekyll_img.html
|
63
64
|
licenses:
|
64
65
|
- MIT
|
@@ -95,4 +96,5 @@ test_files:
|
|
95
96
|
- spec/img_props_spec.rb
|
96
97
|
- spec/jekyll_img_spec.rb
|
97
98
|
- spec/spec_helper.rb
|
99
|
+
- spec/status_persistence.txt
|
98
100
|
...
|