jekyll_img 0.1.5 → 0.2.0
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/.rubocop.yml +6 -4
- data/CHANGELOG.md +48 -6
- data/README.md +124 -38
- data/jekyll_img.gemspec +1 -1
- data/lib/img_props.rb +12 -7
- data/lib/jekyll_img/version.rb +1 -1
- data/lib/jekyll_img.rb +15 -12
- data/spec/spec_helper.rb +1 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f1c3ada28bfae9fa70ff421baa912391a64af4c156055e0f40438d6219c986b
|
4
|
+
data.tar.gz: 6915f59b67c6c0de7d91821553b4ecb7f246596f295d128ba6a850b6ddfb35af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c8281613ba38488ce8b32ac074abca3ce3ed7310d0fd70a0f6d78c87039b66a40b25775172ff88e910dcdb09cd9b78549bf4a1773a982e5a8c23f2109679f0d
|
7
|
+
data.tar.gz: 8ada70004b3b1328372f2675ed7b80edf1c6b9a1b2fdd44154a2ad40af1d9d1a64bbda2d53034394c860b79fd9489b74de4dd4542f9daf6db6be534df13e7c85
|
data/.rubocop.yml
CHANGED
@@ -11,15 +11,17 @@ require:
|
|
11
11
|
AllCops:
|
12
12
|
Exclude:
|
13
13
|
- vendor/**/*
|
14
|
-
-
|
14
|
+
- binstub/**/*
|
15
15
|
- Gemfile*
|
16
16
|
- Rakefile
|
17
17
|
NewCops: enable
|
18
|
-
TargetRubyVersion: 2.6
|
19
18
|
|
20
19
|
Gemspec/DeprecatedAttributeAssignment:
|
21
20
|
Enabled: false
|
22
21
|
|
22
|
+
Gemspec/RequiredRubyVersion:
|
23
|
+
Enabled: false
|
24
|
+
|
23
25
|
Gemspec/RequireMFA:
|
24
26
|
Enabled: false
|
25
27
|
|
@@ -42,7 +44,7 @@ Lint/RedundantCopDisableDirective:
|
|
42
44
|
- jekyll_img.gemspec
|
43
45
|
|
44
46
|
Metrics/AbcSize:
|
45
|
-
Max:
|
47
|
+
Max: 60
|
46
48
|
|
47
49
|
Metrics/BlockLength:
|
48
50
|
Max: 30
|
@@ -54,7 +56,7 @@ Metrics/CyclomaticComplexity:
|
|
54
56
|
Max: 10
|
55
57
|
|
56
58
|
Metrics/MethodLength:
|
57
|
-
Max:
|
59
|
+
Max: 40
|
58
60
|
|
59
61
|
Metrics/PerceivedComplexity:
|
60
62
|
Max: 10
|
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,58 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
## 0.2.0 / 2023-11-20
|
4
|
+
|
5
|
+
* The [demo/](demo/) webapp has been upgraded to the latest features.
|
6
|
+
* Improved error messages.
|
7
|
+
* Renamed the `img` section of `_config.yml` to `jekyll_img`.
|
8
|
+
* Renamed `continue_on_error` to `die_on_img_error` and reversed the meaning.
|
9
|
+
* Now dependant on `jekyll_plugin_support` v0.8.0 or later, which had several breaking changes.
|
10
|
+
* CSS for this plugin is now defined in `demo/assets/css/jekyll_img.css`.
|
11
|
+
* Added a `pry_on_img_error` setting, which causes the `pry` debugger to be invoked when an `ImgError` is raised.
|
12
|
+
`pry` is now opened when an `ImgError` is raised if `_config.yml` contains:
|
13
|
+
|
14
|
+
```yaml
|
15
|
+
jekyll_img:
|
16
|
+
pry_on_img_error: true
|
17
|
+
```
|
18
|
+
|
19
|
+
## 0.1.6 / 2023-08-10
|
20
|
+
|
21
|
+
* `.webp` file type is assumed and no longer needs to be specified.
|
22
|
+
For example, instead of writing this:
|
23
|
+
|
24
|
+
```html
|
25
|
+
{% img src="blah.webp" %}
|
26
|
+
```
|
27
|
+
|
28
|
+
You can now write:
|
29
|
+
|
30
|
+
```html
|
31
|
+
{% img src="blah" %}
|
32
|
+
```
|
33
|
+
|
34
|
+
|
1
35
|
## 0.1.5 / 2023-05-30
|
2
|
-
|
36
|
+
|
37
|
+
* Updated dependencies
|
38
|
+
|
3
39
|
|
4
40
|
## 0.1.4 / 2023-04-02
|
5
|
-
|
6
|
-
|
41
|
+
|
42
|
+
* Added [`attribution` support](https://github.com/mslinn/jekyll_plugin_support#subclass-attribution).
|
43
|
+
* Fixed `style=' false'` that appeared when the `style` and `wrapper_style` attributes were not provided.
|
44
|
+
|
7
45
|
|
8
46
|
## 0.1.3 / 2023-02-22
|
9
|
-
|
47
|
+
|
48
|
+
* Added `img/continue_on_error` configuration parameter.
|
49
|
+
|
10
50
|
|
11
51
|
## 0.1.2 / 2023-02-14
|
12
|
-
|
52
|
+
|
53
|
+
* Fixed `img_props.rb:91:in size_unit_specified?: undefined method end_with? for false:FalseClass (NoMethodError)`
|
13
54
|
|
14
55
|
|
15
56
|
## 0.1.1 / 2023-02-12
|
16
|
-
|
57
|
+
|
58
|
+
* Initial release
|
data/README.md
CHANGED
@@ -1,61 +1,116 @@
|
|
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
|
+
The above generates 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
|
-
|
40
|
-
|
41
|
-
[`unit`](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#numbers_lengths_and_percentages)
|
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
|
88
|
+
|
89
|
+
[`unit`](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#numbers_lengths_and_percentages)
|
90
|
+
is one of: `Q`, `ch`, `cm`, `em`, `dvh`, `dvw`, `ex`, `in`, `lh`,
|
42
91
|
`lvh`, `lvw`, `mm`, `pc`, `px`, `pt`, `rem`, `rlh`, `svh`, `svw`, `vb`,
|
43
92
|
`vh`, `vi`, `vmax`, `vmin`, or `vw`.
|
44
93
|
|
45
|
-
CSS classes referenced by the `jekyll_img` plugin are
|
94
|
+
CSS classes referenced by the `jekyll_img` plugin are in
|
95
|
+
[`demo/assets/css/jekyll_img.css`](demo/assets/css/jekyll_img.css) and
|
96
|
+
[`demo/assets/css/jekyll_plugin_support.css`](demo/assets/css/jekyll_plugin_support.css).
|
97
|
+
CSS marker classes are included, so CSS selectors can be used for additional styling.
|
46
98
|
|
47
99
|
|
48
100
|
## Configuration
|
49
|
-
|
50
|
-
|
101
|
+
|
102
|
+
By default, errors cause Jekyll to abort.
|
103
|
+
You can allow Jekyll to halt by setting the following in `_config.yml`:
|
51
104
|
|
52
105
|
```yaml
|
53
|
-
|
54
|
-
|
106
|
+
jekyll_img:
|
107
|
+
die_on_img_error: true
|
108
|
+
pry_on_img_error: true
|
55
109
|
```
|
56
110
|
|
57
111
|
|
58
112
|
## Design
|
113
|
+
|
59
114
|
The most significant design issue was the decision that image size and formatting should not change
|
60
115
|
whether it had a caption.
|
61
116
|
HTML captions exist within a `<figure />` element, which also surrounds the image.
|
@@ -67,10 +122,12 @@ CSS behavior differs for `<figure />` and `<img />`.
|
|
67
122
|
For example, centering, floating right and left.
|
68
123
|
That means the CSS and where it would need to be applied are completely different for
|
69
124
|
naked `<img />` and `<figure />` tags.
|
70
|
-
Handling all possible situations of these two scenarios would significantly raise the complexity of the plugin code.
|
125
|
+
Handling all possible situations of these two scenarios would significantly raise the complexity of the plugin code.
|
126
|
+
I know, because I went down that rabbit hole.
|
71
127
|
|
72
128
|
|
73
129
|
### Wrapper <div />
|
130
|
+
|
74
131
|
To make the plugin code more manageable,
|
75
132
|
the plugin always encloses the generated HTML & CSS within a wrapper `<div />`.
|
76
133
|
The wrapper allows for a simple, consistent approach regardless of whether a caption is generated or not.
|
@@ -80,9 +137,12 @@ Within the wrapper `<div />`, the embedded `<img />` is displayed with `width=10
|
|
80
137
|
If a caption is required, the generated `<figure />` only makes the space taken by the generated HTML longer;
|
81
138
|
the image’s width and height are not affected.
|
82
139
|
|
83
|
-
The wrapper will not exceed the width of the tag that encloses it if the `size` parameter has values
|
140
|
+
The wrapper will not exceed the width of the tag that encloses it if the `size` parameter has values
|
141
|
+
`eighthsize`, `fullsize`, `halfsize`, `initial` or `quartersize`.
|
84
142
|
|
85
|
-
The wrapper's width can be defined independently of its enclosing tag by using
|
143
|
+
The wrapper's width can be defined independently of its enclosing tag by using
|
144
|
+
[CSS units](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Values_and_units#numbers_lengths_and_percentages)
|
145
|
+
for the `size` parameter:
|
86
146
|
`Q`, `ch`, `cm`, `em`, `dvh`, `dvw`, `ex`, `in`, `lh`,
|
87
147
|
`lvh`, `lvw`, `mm`, `pc`, `px`, `pt`, `rem`, `rlh`, `svh`, `svw`, `vb`,
|
88
148
|
`vh`, `vi`, `vmax`, `vmin`, or `vw`.
|
@@ -101,21 +161,26 @@ end
|
|
101
161
|
|
102
162
|
And then execute:
|
103
163
|
|
104
|
-
|
164
|
+
```shell
|
165
|
+
$ bundle
|
166
|
+
```
|
105
167
|
|
106
168
|
|
107
169
|
## Additional Information
|
170
|
+
|
108
171
|
More information is available on
|
109
172
|
[Mike Slinn’s website](https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html).
|
110
173
|
|
111
174
|
|
112
175
|
## Development
|
176
|
+
|
113
177
|
After checking out the repo, run `bin/setup` to install dependencies.
|
114
178
|
|
115
179
|
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
116
180
|
|
117
181
|
|
118
182
|
To build and install this gem onto your local machine, run:
|
183
|
+
|
119
184
|
```shell
|
120
185
|
$ bundle exec rake install
|
121
186
|
jekyll_img 0.1.0 built to pkg/jekyll_img-0.1.0.gem.
|
@@ -123,6 +188,7 @@ jekyll_img (0.1.0) installed.
|
|
123
188
|
```
|
124
189
|
|
125
190
|
Examine the newly built gem:
|
191
|
+
|
126
192
|
```shell
|
127
193
|
$ gem info jekyll_img
|
128
194
|
|
@@ -138,29 +204,49 @@ jekyll_img (0.1.0)
|
|
138
204
|
Generates Jekyll logger with colored output.
|
139
205
|
```
|
140
206
|
|
207
|
+
|
208
|
+
### Debugging
|
209
|
+
|
210
|
+
You can cause `pry` to open when an `ImgError` is raised by setting the following in `_config.yml`:
|
211
|
+
|
212
|
+
```yaml
|
213
|
+
jekyll_img:
|
214
|
+
pry_on_img_error: true
|
215
|
+
```
|
216
|
+
|
217
|
+
|
141
218
|
### Testing
|
219
|
+
|
142
220
|
Examine the output by running:
|
221
|
+
|
143
222
|
```shell
|
144
223
|
$ demo/_bin/debug -r
|
145
224
|
```
|
225
|
+
|
146
226
|
... and pointing your web browser to http://localhost:4444/
|
147
227
|
|
148
228
|
### Unit Tests
|
229
|
+
|
149
230
|
Either run `rspec` from Visual Studio Code's *Run and Debug* environment
|
150
231
|
(<kbd>Ctrl</kbd>-<kbd>shift</kbd>-<kbd>D</kbd>) and view the *Debug Console* output,
|
151
232
|
or run it from the command line:
|
233
|
+
|
152
234
|
```shell
|
153
235
|
$ rspec
|
154
236
|
```
|
155
237
|
|
156
238
|
### Build and Push to RubyGems
|
239
|
+
|
157
240
|
To release a new version,
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
241
|
+
|
242
|
+
1. Update the version number in `version.rb`.
|
243
|
+
2. Commit all changes to git; if you don't the next step might fail with an unexplainable error message.
|
244
|
+
3. Run the following:
|
245
|
+
|
246
|
+
```shell
|
247
|
+
$ bundle exec rake release
|
248
|
+
```
|
249
|
+
|
164
250
|
The above creates a git tag for the version, commits the created tag,
|
165
251
|
and pushes the new `.gem` file to [RubyGems.org](https://rubygems.org).
|
166
252
|
|
data/jekyll_img.gemspec
CHANGED
data/lib/img_props.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
|
-
class ImgError < StandardError; end
|
2
|
-
|
3
1
|
# Properties from user
|
4
2
|
# All methods are idempotent.
|
5
3
|
# attr_ methods can be called after compute_dependant_properties
|
6
4
|
# All methods except compute_dependant_properties can be called in any order
|
7
5
|
class ImgProperties
|
8
|
-
attr_accessor :align, :alt, :attr_wrapper_align_class, :attribute, :attribution, :caption, :classes, :
|
9
|
-
:id, :img_display, :nofollow, :src, :size, :style, :target, :title,
|
6
|
+
attr_accessor :align, :alt, :attr_wrapper_align_class, :attribute, :attribution, :caption, :classes, :die_on_img_error,
|
7
|
+
:id, :img_display, :local_src, :nofollow, :src, :size, :style, :target, :title,
|
10
8
|
:url, :wrapper_class, :wrapper_style
|
11
9
|
|
12
10
|
SIZES = %w[eighthsize fullsize halfsize initial quartersize].freeze
|
@@ -33,7 +31,7 @@ class ImgProperties
|
|
33
31
|
|
34
32
|
unless SIZES.include?(@size)
|
35
33
|
msg = "'#{@size}' is not a recognized size; must be one of #{SIZES.join(', ')}, or an explicit unit."
|
36
|
-
raise ImgError, msg
|
34
|
+
raise Jekyll::ImgError, msg
|
37
35
|
end
|
38
36
|
@size
|
39
37
|
end
|
@@ -69,7 +67,7 @@ class ImgProperties
|
|
69
67
|
end
|
70
68
|
|
71
69
|
def src_png
|
72
|
-
raise ImgError, "The 'src' parameter was not specified" if @src.to_s.empty?
|
70
|
+
raise Jekyll::ImgError, "The 'src' parameter was not specified" if @src.to_s.empty?
|
73
71
|
|
74
72
|
@src.gsub('.webp', '.png')
|
75
73
|
end
|
@@ -83,9 +81,16 @@ class ImgProperties
|
|
83
81
|
|
84
82
|
def setup_src
|
85
83
|
@src = @src.to_s.strip
|
86
|
-
raise ImgError, "The 'src' parameter was not specified"
|
84
|
+
raise Jekyll::ImgError, "The 'src' parameter was not specified" if @src.empty?
|
85
|
+
|
86
|
+
filetype = File.extname(URI(@src).path)
|
87
|
+
@src += '.webp' if filetype.empty?
|
87
88
|
|
88
89
|
@src = "/assets/images/#{@src}" unless ImgProperties.local_path?(@src) || url?(@src)
|
90
|
+
return unless ImgProperties.local_path?(@src)
|
91
|
+
|
92
|
+
src = @src.start_with?('/') ? ".#{@src}" : @src
|
93
|
+
raise Jekyll::ImgError, "#{@src} does not exist" unless File.exist?(src)
|
89
94
|
end
|
90
95
|
|
91
96
|
UNITS = %w[Q ch cm em dvh dvw ex in lh lvh lvw mm pc px pt rem rlh svh svw vb vh vi vmax vmin vw %].freeze
|
data/lib/jekyll_img/version.rb
CHANGED
data/lib/jekyll_img.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'jekyll_plugin_support'
|
2
2
|
require 'jekyll_plugin_helper'
|
3
|
+
require 'pry'
|
3
4
|
require_relative 'img_builder'
|
4
5
|
require_relative 'img_props'
|
5
6
|
require_relative 'jekyll_img/version'
|
@@ -12,15 +13,17 @@ module ImgModule
|
|
12
13
|
end
|
13
14
|
|
14
15
|
module Jekyll
|
16
|
+
ImgError = JekyllSupport.define_error
|
17
|
+
|
15
18
|
# Plugin implementation
|
16
19
|
class Img < JekyllSupport::JekyllTag
|
17
20
|
include JekyllImgVersion
|
18
21
|
|
19
|
-
def render_impl
|
22
|
+
def render_impl
|
20
23
|
@helper.gem_file __FILE__ # This enables plugin attribution
|
21
24
|
|
22
|
-
|
23
|
-
@
|
25
|
+
@die_on_img_error = @tag_config['die_on_img_error'] == true if @tag_config
|
26
|
+
@pry_on_img_error = @tag_config['pry_on_img_error'] == true if @tag_config
|
24
27
|
|
25
28
|
props = ImgProperties.new
|
26
29
|
props.attribute = @helper.attribute
|
@@ -29,7 +32,7 @@ module Jekyll
|
|
29
32
|
props.alt = @helper.parameter_specified? 'alt'
|
30
33
|
props.caption = @helper.parameter_specified? 'caption'
|
31
34
|
props.classes = @helper.parameter_specified? 'class'
|
32
|
-
props.
|
35
|
+
props.die_on_img_error = @die_on_img_error
|
33
36
|
props.id = @helper.parameter_specified? 'id'
|
34
37
|
props.nofollow = @helper.parameter_specified? 'nofollow'
|
35
38
|
props.size = @helper.parameter_specified?('size') || @helper.parameter_specified?('_size')
|
@@ -43,14 +46,14 @@ module Jekyll
|
|
43
46
|
|
44
47
|
@builder = ImgBuilder.new(props)
|
45
48
|
@builder.to_s
|
46
|
-
rescue ImgError => e
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
raise
|
52
|
-
|
53
|
-
|
49
|
+
rescue ImgError => e # jekyll_plugin_support handles StandardError
|
50
|
+
e.shorten_backtrace
|
51
|
+
msg = format_error_message e.message
|
52
|
+
@logger.error { "#{e.class} raised #{msg}" }
|
53
|
+
binding.pry if @pry_on_img_error # rubocop:disable Lint/Debugger
|
54
|
+
raise e if @die_on_img_error
|
55
|
+
|
56
|
+
"<div class='jekyll_img_error'>#{e.class} raised in #{@tag_name} tag\n#{msg}</div>"
|
54
57
|
end
|
55
58
|
|
56
59
|
JekyllPluginHelper.register(self, ImgModule::PLUGIN_NAME)
|
data/spec/spec_helper.rb
CHANGED
@@ -2,9 +2,8 @@ require 'jekyll'
|
|
2
2
|
require_relative '../lib/jekyll_img'
|
3
3
|
|
4
4
|
RSpec.configure do |config|
|
5
|
-
config.
|
5
|
+
config.filter_run_when_matching focus: true
|
6
6
|
config.order = 'random'
|
7
|
-
config.run_all_when_everything_filtered = true
|
8
7
|
|
9
8
|
# See https://relishapp.com/rspec/rspec-core/docs/command-line/only-failures
|
10
9
|
config.example_status_persistence_file_path = 'spec/status_persistence.txt'
|
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.
|
4
|
+
version: 0.2.0
|
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-11-22 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.
|
33
|
+
version: 0.8.0
|
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.
|
40
|
+
version: 0.8.0
|
41
41
|
description:
|
42
42
|
email:
|
43
43
|
- mslinn@mslinn.com
|
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
|
-
rubygems_version: 3.3.
|
89
|
+
rubygems_version: 3.3.7
|
90
90
|
signing_key:
|
91
91
|
specification_version: 4
|
92
92
|
summary: Provides a Jekyll tag that generates images.
|