jekyll_img 0.1.5 → 0.1.6
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 +32 -6
- data/README.md +97 -29
- data/lib/img_props.rb +3 -0
- data/lib/jekyll_img/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 893b2811f139eeae284d17d29a4b9c6b8348aebaf7b5fd54015bda14316bea17
|
4
|
+
data.tar.gz: 58f626e32417dfa0790115903453b575cacbab46d312144f741dbec6b05eb458
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d43b8d2c08e13776f29fa59d56750369243909ad74cb4ff66add5050576d49e83cf53a997932f3bf12797fa0fc67ec2e65f9fa782c8a201323a92c0f6c004435
|
7
|
+
data.tar.gz: 0ee7e15f89ef2a4f9755b418bd26893edcd77b3cdaa7c3015b6923509d0a0b077b1700161be9aeef227bd8f7b9fd39067e57e527d5ade7787bab577912a77019
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,42 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
## 0.1.6 / 2023-08-10
|
4
|
+
|
5
|
+
* `.webp` file type is assumed and no longer needs to be specified.
|
6
|
+
For example, instead of writing this:
|
7
|
+
|
8
|
+
```html
|
9
|
+
{% img src="blah.webp" %}
|
10
|
+
```
|
11
|
+
|
12
|
+
You can now write:
|
13
|
+
|
14
|
+
```html
|
15
|
+
{% img src="blah" %}
|
16
|
+
```
|
17
|
+
|
18
|
+
|
1
19
|
## 0.1.5 / 2023-05-30
|
2
|
-
|
20
|
+
|
21
|
+
* Updated dependencies
|
22
|
+
|
3
23
|
|
4
24
|
## 0.1.4 / 2023-04-02
|
5
|
-
|
6
|
-
|
25
|
+
|
26
|
+
* Added [`attribution` support](https://github.com/mslinn/jekyll_plugin_support#subclass-attribution).
|
27
|
+
* Fixed `style=' false'` that appeared when the `style` and `wrapper_style` attributes were not provided.
|
28
|
+
|
7
29
|
|
8
30
|
## 0.1.3 / 2023-02-22
|
9
|
-
|
31
|
+
|
32
|
+
* Added `img/continue_on_error` configuration parameter.
|
33
|
+
|
10
34
|
|
11
35
|
## 0.1.2 / 2023-02-14
|
12
|
-
|
36
|
+
|
37
|
+
* Fixed `img_props.rb:91:in `size_unit_specified?': undefined method `end_with?' for false:FalseClass (NoMethodError)`
|
13
38
|
|
14
39
|
|
15
40
|
## 0.1.1 / 2023-02-12
|
16
|
-
|
41
|
+
|
42
|
+
* Initial release
|
data/README.md
CHANGED
@@ -1,51 +1,102 @@
|
|
1
|
-
`jekyll_img`
|
2
|
-
|
3
|
-
===========
|
1
|
+
# `jekyll_img` [](https://badge.fury.io/rb/jekyll_img)
|
2
|
+
|
4
3
|
|
5
4
|
`Jekyll_img` is a Jekyll plugin that embeds images in HTML documents, with alignment options,
|
6
5
|
flexible resizing, default styling, overridable styling, an optional caption, and an optional URL.
|
7
6
|
|
7
|
+
If you are not using `webp` images in your Jekyll website, this plugin is not for you.
|
8
|
+
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
|
+
|
8
12
|
See [demo/index.html](demo/index.html) for examples.
|
9
13
|
|
14
|
+
|
15
|
+
## Image Fallback
|
16
|
+
|
17
|
+
This plugin provides support for the
|
18
|
+
[`webp`](https://developers.google.com/speed/webp) image format,
|
19
|
+
with a fallback to `png` format by using the HTML
|
20
|
+
[`picture`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture) element.
|
21
|
+
|
22
|
+
This means that 2 versions of every image are required: a `webp` version, and a `png` version.
|
23
|
+
|
24
|
+
You specify the desired image with a `webp` filetype (or no filetype),
|
25
|
+
and the plugin generates a `picture` element that contains a primary
|
26
|
+
`source` sub-element that specifies the given image URL,
|
27
|
+
and a secondary `img` sub-element with a [`png`](https://en.wikipedia.org/wiki/PNG) filetype.
|
28
|
+
|
29
|
+
For example, these two invocations yield the same result:
|
30
|
+
|
31
|
+
```html
|
32
|
+
{% img src="blah" %}
|
33
|
+
{% img src="blah.webp" %}
|
34
|
+
```
|
35
|
+
|
36
|
+
Would conceptually generate the following
|
37
|
+
(to support the other options, the generated HTML can be a lot more complex):
|
38
|
+
|
39
|
+
```html
|
40
|
+
<picture>
|
41
|
+
<source srcset="blah.webp" type="image/webp" />
|
42
|
+
<source srcset="blah.png" type="image/png" />
|
43
|
+
<img src="blah.png" />
|
44
|
+
</picture>
|
45
|
+
```
|
46
|
+
|
47
|
+
The above would fetch and display `blah.webp` if the web browser supported `webp` format,
|
48
|
+
otherwise it would fetch and display `blah.png`.
|
49
|
+
|
50
|
+
|
51
|
+
## Demo
|
52
|
+
|
10
53
|
Run the demo website by typing:
|
54
|
+
|
11
55
|
```shell
|
12
56
|
$ demo/_bin/debug -r
|
13
57
|
```
|
58
|
+
|
14
59
|
... and point your web browser to http://localhost:4444
|
15
60
|
|
16
61
|
|
17
62
|
## Usage
|
18
|
-
|
63
|
+
|
64
|
+
```html
|
65
|
+
{% img [Options] src='path' %}
|
66
|
+
```
|
19
67
|
|
20
68
|
`Options` are:
|
21
69
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
70
|
+
- `attribution` See [`jekyll_plugin_support`](https://github.com/mslinn/jekyll_plugin_support#subclass-attribution).
|
71
|
+
- `align="left|inline|right|center"` Default value is `inline`
|
72
|
+
- `alt="Alt text"` Default value is the `caption` text, if provided
|
73
|
+
- `caption="A caption"` No default value
|
74
|
+
- `classes="class1 class2 classN"` Extra <img> classes; default is `rounded shadow`
|
75
|
+
- `id="someId"` No default value
|
76
|
+
- `nofollow` Generates `rel='nofollow'`; only applicable when `url` is specified
|
77
|
+
- `size='eighthsize|fullsize|halfsize|initial|quartersize|XXXYY|XXX%'`
|
30
78
|
Defines width of image.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
79
|
+
- `initial` is the default behavior.
|
80
|
+
- `eighthsize`, `fullsize`, `halfsize`, and `quartersize` are relative to the enclosing tag's width.
|
81
|
+
- CSS units can also be used, for those cases `XXX` is a float and `YY` is `unit` (see below)
|
82
|
+
- `style='css goes here'` CSS style for <img>; no default
|
83
|
+
- `target='none|whatever'` Only applicable when `url` is specified; default value is `_blank`
|
84
|
+
- `title="A title"` Default value is `caption` text, if provided
|
85
|
+
- `url='https://domain.com'` No default value
|
86
|
+
- `wrapper_class='class1 class2 classN'` Extra CSS classes for wrapper <div>; no default value
|
87
|
+
- `wrapper_style='background-color: black;'` CSS style for wrapper <div>; no default value
|
40
88
|
|
41
89
|
[`unit`](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#numbers_lengths_and_percentages) is one of: `Q`, `ch`, `cm`, `em`, `dvh`, `dvw`, `ex`, `in`, `lh`,
|
42
90
|
`lvh`, `lvw`, `mm`, `pc`, `px`, `pt`, `rem`, `rlh`, `svh`, `svw`, `vb`,
|
43
91
|
`vh`, `vi`, `vmax`, `vmin`, or `vw`.
|
44
92
|
|
45
|
-
CSS classes referenced by the `jekyll_img` plugin are at the bottom of
|
93
|
+
CSS classes referenced by the `jekyll_img` plugin are at the bottom of
|
94
|
+
[`demo/assets/css/style.css`](demo/assets/css/style.css).
|
95
|
+
CSS marker classes are included, so CSS selectors can be used for additional styling.
|
46
96
|
|
47
97
|
|
48
98
|
## Configuration
|
99
|
+
|
49
100
|
By default, any errors cause Jekyll to abort.
|
50
101
|
You can allow Jekyll to continue by setting the following in `_config.yml`:
|
51
102
|
|
@@ -56,6 +107,7 @@ img:
|
|
56
107
|
|
57
108
|
|
58
109
|
## Design
|
110
|
+
|
59
111
|
The most significant design issue was the decision that image size and formatting should not change
|
60
112
|
whether it had a caption.
|
61
113
|
HTML captions exist within a `<figure />` element, which also surrounds the image.
|
@@ -71,6 +123,7 @@ Handling all possible situations of these two scenarios would significantly rais
|
|
71
123
|
|
72
124
|
|
73
125
|
### Wrapper <div />
|
126
|
+
|
74
127
|
To make the plugin code more manageable,
|
75
128
|
the plugin always encloses the generated HTML & CSS within a wrapper `<div />`.
|
76
129
|
The wrapper allows for a simple, consistent approach regardless of whether a caption is generated or not.
|
@@ -101,21 +154,26 @@ end
|
|
101
154
|
|
102
155
|
And then execute:
|
103
156
|
|
104
|
-
|
157
|
+
```shell
|
158
|
+
$ bundle
|
159
|
+
```
|
105
160
|
|
106
161
|
|
107
162
|
## Additional Information
|
163
|
+
|
108
164
|
More information is available on
|
109
165
|
[Mike Slinn’s website](https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html).
|
110
166
|
|
111
167
|
|
112
168
|
## Development
|
169
|
+
|
113
170
|
After checking out the repo, run `bin/setup` to install dependencies.
|
114
171
|
|
115
172
|
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
116
173
|
|
117
174
|
|
118
175
|
To build and install this gem onto your local machine, run:
|
176
|
+
|
119
177
|
```shell
|
120
178
|
$ bundle exec rake install
|
121
179
|
jekyll_img 0.1.0 built to pkg/jekyll_img-0.1.0.gem.
|
@@ -123,6 +181,7 @@ jekyll_img (0.1.0) installed.
|
|
123
181
|
```
|
124
182
|
|
125
183
|
Examine the newly built gem:
|
184
|
+
|
126
185
|
```shell
|
127
186
|
$ gem info jekyll_img
|
128
187
|
|
@@ -139,28 +198,37 @@ jekyll_img (0.1.0)
|
|
139
198
|
```
|
140
199
|
|
141
200
|
### Testing
|
201
|
+
|
142
202
|
Examine the output by running:
|
203
|
+
|
143
204
|
```shell
|
144
205
|
$ demo/_bin/debug -r
|
145
206
|
```
|
207
|
+
|
146
208
|
... and pointing your web browser to http://localhost:4444/
|
147
209
|
|
148
210
|
### Unit Tests
|
211
|
+
|
149
212
|
Either run `rspec` from Visual Studio Code's *Run and Debug* environment
|
150
213
|
(<kbd>Ctrl</kbd>-<kbd>shift</kbd>-<kbd>D</kbd>) and view the *Debug Console* output,
|
151
214
|
or run it from the command line:
|
215
|
+
|
152
216
|
```shell
|
153
217
|
$ rspec
|
154
218
|
```
|
155
219
|
|
156
220
|
### Build and Push to RubyGems
|
221
|
+
|
157
222
|
To release a new version,
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
223
|
+
|
224
|
+
1. Update the version number in `version.rb`.
|
225
|
+
2. Commit all changes to git; if you don't the next step might fail with an unexplainable error message.
|
226
|
+
3. Run the following:
|
227
|
+
|
228
|
+
```shell
|
229
|
+
$ bundle exec rake release
|
230
|
+
```
|
231
|
+
|
164
232
|
The above creates a git tag for the version, commits the created tag,
|
165
233
|
and pushes the new `.gem` file to [RubyGems.org](https://rubygems.org).
|
166
234
|
|
data/lib/img_props.rb
CHANGED
@@ -85,6 +85,9 @@ class ImgProperties
|
|
85
85
|
@src = @src.to_s.strip
|
86
86
|
raise ImgError, "The 'src' parameter was not specified", [] if @src.empty?
|
87
87
|
|
88
|
+
filetype = File.extname(URI(@src).path)
|
89
|
+
@src += '.webp' if filetype.empty?
|
90
|
+
|
88
91
|
@src = "/assets/images/#{@src}" unless ImgProperties.local_path?(@src) || url?(@src)
|
89
92
|
end
|
90
93
|
|
data/lib/jekyll_img/version.rb
CHANGED
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.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Slinn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|