jekyll_picture_tag 1.13.0 → 1.14.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/.envrc +2 -0
- data/.github/workflows/code-checks.yml +43 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +27 -76
- data/.ruby-version +1 -1
- data/docs/.envrc +2 -0
- data/docs/devs/contributing/code.md +4 -2
- data/docs/devs/contributing/docs.md +24 -6
- data/docs/devs/contributing/setup.md +21 -1
- data/docs/devs/contributing/testing.md +22 -29
- data/docs/devs/releases.md +10 -3
- data/docs/users/configuration/disable.md +1 -1
- data/docs/users/configuration/ignore_missing.md +1 -1
- data/docs/users/configuration/kramdown_fix.md +1 -1
- data/docs/users/configuration/suppress_warnings.md +1 -1
- data/docs/users/configuration/urls.md +69 -0
- data/docs/users/presets/default.md +2 -1
- data/docs/users/presets/examples.md +1 -1
- data/docs/users/presets/strip_metadata.md +13 -0
- data/install_imagemagick.sh +23 -0
- data/jekyll_picture_tag.gemspec +7 -2
- data/lib/jekyll_picture_tag.rb +2 -1
- data/lib/jekyll_picture_tag/cache/base.rb +2 -0
- data/lib/jekyll_picture_tag/defaults/global.yml +2 -0
- data/lib/jekyll_picture_tag/defaults/presets.yml +1 -0
- data/lib/jekyll_picture_tag/images/generated_image.rb +13 -10
- data/lib/jekyll_picture_tag/images/img_uri.rb +3 -1
- data/lib/jekyll_picture_tag/version.rb +1 -1
- data/readme.md +11 -8
- metadata +72 -12
- data/.travis.yml +0 -8
- data/docs/users/configuration/cdn.md +0 -35
- data/docs/users/configuration/relative_urls.md +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33725ceaf2682e1c8396ecf949d606efa6f4e3dcc7097802bdc9524ef492cff2
|
4
|
+
data.tar.gz: 837d3c4e04e0b859953024e99aff1a685c7cd4a85fe36b012a1ef5f025e11257
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2de1f6a51c96750a389c8f5885dcfa80e5cb5cd9a50570e8e9a4e81ad2a987766165499bc6825eec5f10c9817994e230c5289ae6a570dedd8b5e874ee9f91595
|
7
|
+
data.tar.gz: 17cc0a355f08dc1bb6418148264feeb47010faf29ad3597f789443c504d8574fa069a77e83c3968569f3b5ab7217905bc4bf19322f6f5c25acde3f549db76a81
|
data/.envrc
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
name: 'Tests & Formatting'
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ master ]
|
8
|
+
schedule:
|
9
|
+
# Run weekly; github deletes caches that haven't been used in a week.
|
10
|
+
- cron: '0 0 * * 0'
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
checks:
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
env:
|
16
|
+
imagemagick_version: 7.0.10-46
|
17
|
+
|
18
|
+
steps:
|
19
|
+
|
20
|
+
- name: Install system dependencies
|
21
|
+
run: sudo apt install build-essential libxml2-dev libjpeg-dev libwebp-dev libpng-dev libopenjp2-7-dev
|
22
|
+
|
23
|
+
- name: Checkout repo
|
24
|
+
uses: actions/checkout@v2
|
25
|
+
|
26
|
+
- uses: actions/cache@v2
|
27
|
+
with:
|
28
|
+
path: imagemagick
|
29
|
+
key: imagick1-${{ env.imagemagick_version }}
|
30
|
+
|
31
|
+
- name: Install imagemagick
|
32
|
+
run: bash install_imagemagick.sh
|
33
|
+
|
34
|
+
# Version taken from .ruby-version file.
|
35
|
+
# Also runs bundle install.
|
36
|
+
- name: Install Ruby
|
37
|
+
uses: ruby/setup-ruby@v1
|
38
|
+
with:
|
39
|
+
bundler-cache: true
|
40
|
+
|
41
|
+
- run: bundle exec rake test
|
42
|
+
|
43
|
+
- run: bundle exec rubocop
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,81 +1,32 @@
|
|
1
|
-
#
|
1
|
+
# Exclude unimportant files
|
2
|
+
require:
|
3
|
+
- rubocop-minitest
|
4
|
+
- rubocop-rake
|
5
|
+
|
6
|
+
AllCops:
|
7
|
+
NewCops: enable
|
8
|
+
Include:
|
9
|
+
- 'lib/**/*.rb'
|
10
|
+
- 'test/**/*.rb'
|
11
|
+
- 'Gemfile'
|
12
|
+
- 'Rakefile'
|
13
|
+
- '*.gemspec'
|
14
|
+
|
15
|
+
Exclude:
|
16
|
+
- '**/.bundle/*'
|
17
|
+
- '**/.git/*'
|
18
|
+
- '**/.github/*'
|
19
|
+
- '**/bin/**/*'
|
20
|
+
- '**/coverage/**/*'
|
21
|
+
- '**/docs/**/*'
|
22
|
+
- '**/imagemagick/*'
|
23
|
+
- '**/pkg/**/*'
|
24
|
+
- '**/vendor/**/*'
|
25
|
+
|
26
|
+
|
27
|
+
# Disabled Cops
|
2
28
|
Style/FrozenStringLiteralComment:
|
3
29
|
Enabled: false
|
4
30
|
|
5
31
|
Style/StringConcatenation:
|
6
32
|
Enabled: false
|
7
|
-
|
8
|
-
# New cops, enabled. We aren't using the 'NewCops' setting because then rubocop
|
9
|
-
# updates can break our CI.
|
10
|
-
Layout/EmptyLinesAroundAttributeAccessor:
|
11
|
-
Enabled: true
|
12
|
-
Layout/SpaceAroundMethodCallOperator:
|
13
|
-
Enabled: true
|
14
|
-
Lint/BinaryOperatorWithIdenticalOperands:
|
15
|
-
Enabled: true
|
16
|
-
Lint/DeprecatedOpenSSLConstant:
|
17
|
-
Enabled: true
|
18
|
-
Lint/DuplicateElsifCondition:
|
19
|
-
Enabled: true
|
20
|
-
Lint/DuplicateRescueException:
|
21
|
-
Enabled: true
|
22
|
-
Lint/EmptyConditionalBody:
|
23
|
-
Enabled: true
|
24
|
-
Lint/FloatComparison:
|
25
|
-
Enabled: true
|
26
|
-
Lint/MissingSuper:
|
27
|
-
Enabled: true
|
28
|
-
Lint/MixedRegexpCaptureTypes:
|
29
|
-
Enabled: true
|
30
|
-
Lint/OutOfRangeRegexpRef:
|
31
|
-
Enabled: true
|
32
|
-
Lint/RaiseException:
|
33
|
-
Enabled: true
|
34
|
-
Lint/SelfAssignment:
|
35
|
-
Enabled: true
|
36
|
-
Lint/StructNewOverride:
|
37
|
-
Enabled: true
|
38
|
-
Lint/TopLevelReturnWithArgument:
|
39
|
-
Enabled: true
|
40
|
-
Lint/UnreachableLoop:
|
41
|
-
Enabled: true
|
42
|
-
Style/AccessorGrouping:
|
43
|
-
Enabled: true
|
44
|
-
Style/ArrayCoercion:
|
45
|
-
Enabled: true
|
46
|
-
Style/BisectedAttrAccessor:
|
47
|
-
Enabled: true
|
48
|
-
Style/CaseLikeIf:
|
49
|
-
Enabled: true
|
50
|
-
Style/ExplicitBlockArgument:
|
51
|
-
Enabled: true
|
52
|
-
Style/ExponentialNotation:
|
53
|
-
Enabled: true
|
54
|
-
Style/GlobalStdStream:
|
55
|
-
Enabled: true
|
56
|
-
Style/HashAsLastArrayItem:
|
57
|
-
Enabled: true
|
58
|
-
Style/HashEachMethods:
|
59
|
-
Enabled: true
|
60
|
-
Style/HashLikeCase:
|
61
|
-
Enabled: true
|
62
|
-
Style/HashTransformKeys:
|
63
|
-
Enabled: true
|
64
|
-
Style/HashTransformValues:
|
65
|
-
Enabled: true
|
66
|
-
Style/OptionalBooleanParameter:
|
67
|
-
Enabled: true
|
68
|
-
Style/RedundantAssignment:
|
69
|
-
Enabled: true
|
70
|
-
Style/RedundantFetchBlock:
|
71
|
-
Enabled: true
|
72
|
-
Style/RedundantFileExtensionInRequire:
|
73
|
-
Enabled: true
|
74
|
-
Style/RedundantRegexpCharacterClass:
|
75
|
-
Enabled: true
|
76
|
-
Style/RedundantRegexpEscape:
|
77
|
-
Enabled: true
|
78
|
-
Style/SingleArgumentDig:
|
79
|
-
Enabled: true
|
80
|
-
Style/SlicingWithRange:
|
81
|
-
Enabled: true
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.5.
|
1
|
+
2.5.8
|
data/docs/.envrc
ADDED
@@ -2,7 +2,9 @@
|
|
2
2
|
sort: 4
|
3
3
|
---
|
4
4
|
|
5
|
-
# Code
|
5
|
+
# Code
|
6
|
+
|
7
|
+
## Guidelines
|
6
8
|
|
7
9
|
* Generally, go for straightforward and readable rather than terse and clever. I'm not actually a
|
8
10
|
very good programmer; I need simple code that's easy to understand.
|
@@ -38,7 +40,7 @@ criteria:
|
|
38
40
|
|
39
41
|
* No rubocop warnings
|
40
42
|
|
41
|
-
|
43
|
+
## Thanks!
|
42
44
|
|
43
45
|
As I said, don't let any of the rules & guidelines scare you away. They're the rules for merging
|
44
46
|
into master, not submitting a pull request. I'm thrilled to receive any help at all.
|
@@ -4,10 +4,28 @@ sort: 2
|
|
4
4
|
|
5
5
|
# Docs
|
6
6
|
|
7
|
-
|
7
|
+
The docs are a mini-project in the docs folder. They don't have a dedicated git repository, but they
|
8
|
+
do have their own Gemfile. They run on Github Pages, which is based on Jekyll.
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
The format is simple; markdown files with a few lines of metadata at the top, organized into
|
11
|
+
subdirectories. We're using the [jekyll-rtd-theme](https://jekyll-rtd-theme.rundocs.io/).
|
12
|
+
|
13
|
+
You can preview as you edit; first the setup:
|
14
|
+
|
15
|
+
``` sh
|
16
|
+
$ git clone git@github.com:rbuchberger/jekyll_picture_tag.git # if you haven't already
|
17
|
+
$ cd jekyll_picture_tag/docs
|
18
|
+
$ direnv allow # (optional)
|
19
|
+
$ bundle install --binstubs # --binstubs is optional.
|
20
|
+
```
|
21
|
+
|
22
|
+
If you use direnv or add `docs/bin` to your `PATH` another way, the `--binstubs` flag allows you to
|
23
|
+
skip `bundle exec`.
|
24
|
+
|
25
|
+
To preview:
|
26
|
+
|
27
|
+
``` sh
|
28
|
+
$ jekyll serve --livereload # (prefix with `bundle exec` if necessary)
|
29
|
+
```
|
30
|
+
|
31
|
+
* In a web browser, navigate to `localhost:4000/jekyll_picture_tag/`
|
@@ -4,10 +4,30 @@ sort: 1
|
|
4
4
|
|
5
5
|
## Setup
|
6
6
|
|
7
|
-
|
7
|
+
I use [asdf](https://github.com/asdf-vm/asdf) and [direnv](https://direnv.net/) (via
|
8
|
+
[asdf-direnv](https://github.com/asdf-community/asdf-direnv)). They add convenience, but they aren't
|
9
|
+
required by any means.
|
8
10
|
|
11
|
+
### With asdf & direnv:
|
12
|
+
|
13
|
+
```sh
|
14
|
+
$ git clone git@github.com:rbuchberger/jekyll_picture_tag.git
|
15
|
+
$ cd jekyll_picture_tag
|
16
|
+
$ direnv allow
|
17
|
+
$ asdf install
|
18
|
+
$ bundle install --binstubs
|
9
19
|
```
|
20
|
+
|
21
|
+
### Without asdf & direnv
|
22
|
+
|
23
|
+
```sh
|
10
24
|
$ git clone git@github.com:rbuchberger/jekyll_picture_tag.git
|
11
25
|
$ cd jekyll_picture_tag
|
26
|
+
# Install the correct version of ruby, with the bundler gem.
|
12
27
|
$ bundle install
|
13
28
|
```
|
29
|
+
|
30
|
+
* The currently targeted ruby version can be found in the `.ruby-version` file in the project root;
|
31
|
+
ensure your version manager of choice knows about it.
|
32
|
+
* If you add the project's `bin/` folder to your path, and run `bundle install --binstubs`, you won't
|
33
|
+
have to use `bundle exec` for `rake` commands and such.
|
@@ -2,38 +2,31 @@
|
|
2
2
|
sort: 3
|
3
3
|
---
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
`
|
14
|
-
|
15
|
-
|
16
|
-
`rake
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
but that's a project for another day.
|
25
|
-
|
26
|
-
The tests do output a few images to the `/tmp/` directory, which I'm pretty sure means it won't work
|
27
|
-
on Windows. This is fixable if there is a need, so if that gets in your way just ask.
|
28
|
-
|
29
|
-
`rake rubocop` checks code formatting, `rake rubocop:auto_correct` will try to fix any rubocop
|
30
|
-
issues, if possible.
|
31
|
-
|
32
|
-
`rake` will run all tests and rubocop.
|
5
|
+
# Tests
|
6
|
+
|
7
|
+
The primary way to run these checks is `rake`:
|
8
|
+
|
9
|
+
| rake command | function |
|
10
|
+
|-----------------------------|---------------------------------|
|
11
|
+
| `rake unit` | Unit tests only |
|
12
|
+
| `rake integration` | Integration tests only |
|
13
|
+
| `rake test` | Both unit and integration tests |
|
14
|
+
| `rake rubocop` | Check code formatting |
|
15
|
+
| `rake rubocop:auto_correct` | Fix rubocop issues, if possible |
|
16
|
+
| `rake` | Run all checks |
|
17
|
+
|
18
|
+
* Ignore the mini_magick `method redefined` warnings (unless you know how to fix them?)
|
19
|
+
* Depending on your environment, you may need to prefix all rake commands with `bundle exec`
|
20
|
+
* Simplecov is set up -- you'll get a measurement of coverage in the test output and a nice report
|
21
|
+
in the `coverage` directory.
|
22
|
+
* The tests use the `/tmp/` directory directly, which I'm pretty sure means it won't work on
|
23
|
+
Windows. This is fixable, so if that gets in your way just ask.
|
33
24
|
|
34
25
|
### Docker
|
35
26
|
|
36
|
-
The
|
27
|
+
The tests use some features of ImageMagick 7 which are not supported by version 6. If it's
|
28
|
+
inconvenient to install version 7, the following commands will build and run the tests in a docker
|
29
|
+
container:
|
37
30
|
|
38
31
|
```bash
|
39
32
|
$ docker build . -t jpt
|
data/docs/devs/releases.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
---
|
2
2
|
---
|
3
3
|
# Release History
|
4
|
+
* 1.14.0 January 10, 2021
|
5
|
+
* Gracefully handle empty tag arguments.
|
6
|
+
* Re-add metadata stripping. I removed it inadvertently when refactoring; now
|
7
|
+
there's a test and a setting to turn it off.
|
8
|
+
* Respect Jekyll's `--disable-disk-cache` argument.
|
9
|
+
* Add baseurl configuration, allowing increased plugin support (such as I18n via `jekyll-multiple-languages-plugin`)
|
10
|
+
* Tooling & test suite maintenance and improvements.
|
4
11
|
* 1.13.0 November 23, 2020
|
5
12
|
* Add image quality interpolation; allows for variable image quality based on image size.
|
6
13
|
* Bugfix: Perform format, resize, and quality changes simultaneously rather than individually.
|
@@ -49,12 +56,12 @@
|
|
49
56
|
* link_source will now target the base source image, rather than finding the
|
50
57
|
biggest one.
|
51
58
|
* Remove fastimage dependency, add addressable dependency.
|
52
|
-
* Moderately significant refactoring and code cleanup
|
59
|
+
* Moderately significant refactoring and code cleanup
|
53
60
|
* Decent set of tests added
|
54
61
|
* 1.6.0 Jul 2, 2019:
|
55
62
|
* Missing Preset warning respects `data_dir` setting
|
56
63
|
* Add `continue_on_missing` option
|
57
|
-
* 1.5.0 Jun 26, 2019:
|
64
|
+
* 1.5.0 Jun 26, 2019:
|
58
65
|
* better `{::nomarkdown}` necessity detection
|
59
66
|
* allow user to override `{::nomarkdown}` autodetection
|
60
67
|
* 1.4.0 Jun 26, 2019:
|
@@ -77,7 +84,7 @@
|
|
77
84
|
* auto-orient images before stripping metadata
|
78
85
|
* 1.0.2 Jan 18, 2019: Fix ruby version specification
|
79
86
|
* 1.0.1 Jan 13, 2019: Added ruby version checking
|
80
|
-
* **1.0.0** Nov 27, 2018: Rewrite from the ground up. See the
|
87
|
+
* **1.0.0** Nov 27, 2018: Rewrite from the ground up. See the
|
81
88
|
* [migration guide]({{ site.baseurl }}/users/notes/migration).
|
82
89
|
* 0.2.2 Aug 2, 2013: Bugfixes
|
83
90
|
* 0.2.1 Jul 17, 2013: Refactor again, add Liquid parsing.
|
@@ -0,0 +1,69 @@
|
|
1
|
+
---
|
2
|
+
sort: 2
|
3
|
+
---
|
4
|
+
|
5
|
+
# URLs
|
6
|
+
|
7
|
+
## Relative or Absolute
|
8
|
+
|
9
|
+
*Format:* `relative_url: (true|false)`
|
10
|
+
|
11
|
+
*Example:* `relative_url: false`
|
12
|
+
|
13
|
+
*Default*: `true`
|
14
|
+
|
15
|
+
Whether to use relative (`/generated/test(...).jpg`) or absolute
|
16
|
+
(`https://example.com/generated/test(...).jpg`) urls in your src and srcset attributes.
|
17
|
+
|
18
|
+
## Baseurl Key
|
19
|
+
|
20
|
+
*Format:* `baseurl_key: (string)`
|
21
|
+
|
22
|
+
*Example:* `baseurl_key: baseurl_root`
|
23
|
+
|
24
|
+
*Default*: `baseurl`
|
25
|
+
|
26
|
+
Some plugins, such as
|
27
|
+
[jekyll-multiple-languages-plugin](https://github.com/kurtsson/jekyll-multiple-languages-plugin),
|
28
|
+
work by modifying the standard `baseurl` setting, which can break JPT's images. It offers a new
|
29
|
+
setting, `baseurl_root`, which serves as the original `baseurl` setting without a language prefix.
|
30
|
+
Using `baseurl_key`, you can direct JPT to use that setting instead.
|
31
|
+
|
32
|
+
## Ignore Baseurl
|
33
|
+
|
34
|
+
*Format:* `ignore_baseurl: (true|false)`
|
35
|
+
|
36
|
+
*Example:* `ignore_baseurl: true`
|
37
|
+
|
38
|
+
*Default*: `false`
|
39
|
+
|
40
|
+
Depending on your other plugins and configuration, it may be useful for JPT to ignore the baseurl
|
41
|
+
setting entirely.
|
42
|
+
|
43
|
+
## CDN URL
|
44
|
+
|
45
|
+
Use for images that are hosted at a different domain or subdomain than the Jekyll site root.
|
46
|
+
Overrides `relative_url`.
|
47
|
+
|
48
|
+
*Format:* `cdn_url: (url)`
|
49
|
+
|
50
|
+
*Example:* `cdn_url: https://cdn.example.com`
|
51
|
+
|
52
|
+
*Default*: none
|
53
|
+
|
54
|
+
## CDN Environments
|
55
|
+
|
56
|
+
It's likely that if you're using a CDN, you may not want to use it in your local development
|
57
|
+
environment. This allows you to build a site with local images while in development, and still push
|
58
|
+
to a CDN when you build for production by specifying a different
|
59
|
+
[environment](https://jekyllrb.com/docs/configuration/environments/).
|
60
|
+
|
61
|
+
*Format:* `cdn_environments: (array of strings)`
|
62
|
+
|
63
|
+
*Example:* `cdn_environments: ['production', 'staging']`
|
64
|
+
|
65
|
+
*Default*: `['production']`
|
66
|
+
|
67
|
+
**Note that the default jekyll environment is `development`**, meaning that if you only set
|
68
|
+
`cdn_url` and run `jekyll serve` or `jekyll build`, nothing will change. Either run
|
69
|
+
`JEKYLL_ENV=production bundle exec jekyll build`, or add `development` to this setting.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Configure and install imagemagick; detects if cached compiled version exists.
|
2
|
+
|
3
|
+
check_cached() {
|
4
|
+
[ "$(find . -name '*.o')" ]
|
5
|
+
}
|
6
|
+
|
7
|
+
build_im() {
|
8
|
+
git clone 'https://github.com/ImageMagick/ImageMagick' ./ \
|
9
|
+
--branch "$imagemagick_version"
|
10
|
+
|
11
|
+
rm -rf '.git'
|
12
|
+
|
13
|
+
./configure
|
14
|
+
make
|
15
|
+
}
|
16
|
+
|
17
|
+
[ -d 'imagemagick' ] || mkdir imagemagick
|
18
|
+
cd imagemagick
|
19
|
+
|
20
|
+
check_cached || build_im
|
21
|
+
|
22
|
+
sudo make install
|
23
|
+
sudo ldconfig /usr/local/lib
|
data/jekyll_picture_tag.gemspec
CHANGED
@@ -29,12 +29,17 @@ Gem::Specification.new do |spec|
|
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
31
31
|
spec.add_development_dependency 'minitest', '~> 5.11'
|
32
|
+
spec.add_development_dependency 'minitest-rg'
|
32
33
|
spec.add_development_dependency 'mocha', '~> 1.9'
|
33
34
|
spec.add_development_dependency 'nokogiri', '~> 1.10'
|
34
35
|
spec.add_development_dependency 'pry'
|
35
36
|
spec.add_development_dependency 'rake', '~> 12.3'
|
36
|
-
spec.add_development_dependency 'rubocop', '~> 0
|
37
|
-
spec.add_development_dependency '
|
37
|
+
spec.add_development_dependency 'rubocop', '~> 1.7.0'
|
38
|
+
spec.add_development_dependency 'rubocop-minitest', '~> 0.10.0'
|
39
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.9.0'
|
40
|
+
spec.add_development_dependency 'rubocop-rake', '~> 0.5.0'
|
41
|
+
|
42
|
+
spec.add_development_dependency 'simplecov', '~> 0.20.0'
|
38
43
|
spec.add_development_dependency 'solargraph'
|
39
44
|
|
40
45
|
spec.add_dependency 'addressable', '~> 2.6'
|
data/lib/jekyll_picture_tag.rb
CHANGED
@@ -50,6 +50,7 @@ module PictureTag
|
|
50
50
|
# care about the params (arguments passed to the liquid tag). Jekyll makes
|
51
51
|
# no attempt to parse them; they're given as a string.
|
52
52
|
def initialize(tag_name, raw_params, tokens)
|
53
|
+
Utils.warning 'You have called JPT without any arguments.' if raw_params.empty?
|
53
54
|
@raw_params = raw_params
|
54
55
|
super
|
55
56
|
end
|
@@ -60,7 +61,7 @@ module PictureTag
|
|
60
61
|
def render(context)
|
61
62
|
setup(context)
|
62
63
|
|
63
|
-
if PictureTag.disabled?
|
64
|
+
if PictureTag.disabled? || @raw_params.empty?
|
64
65
|
''
|
65
66
|
else
|
66
67
|
PictureTag.output_class.new.to_s
|
@@ -81,24 +81,27 @@ module PictureTag
|
|
81
81
|
@id ||= Digest::MD5.hexdigest([@source.digest, @crop, @gravity, quality].join)[0..8]
|
82
82
|
end
|
83
83
|
|
84
|
-
# Post crop, before resizing and reformatting
|
85
84
|
def image
|
86
|
-
@image
|
85
|
+
return @image if defined? @image
|
86
|
+
|
87
|
+
# Post crop, before resizing and reformatting
|
88
|
+
@source_dimensions = { width: image_base.width, height: image_base.height }
|
89
|
+
|
90
|
+
@image = image_base
|
87
91
|
end
|
88
92
|
|
89
|
-
def
|
90
|
-
image_base
|
91
|
-
|
92
|
-
|
93
|
+
def image_base
|
94
|
+
@image_base ||= Image.open(@source.name).combine_options do |i|
|
95
|
+
if PictureTag.preset['strip_metadata']
|
96
|
+
i.auto_orient
|
97
|
+
i.strip
|
98
|
+
end
|
99
|
+
|
93
100
|
if @crop
|
94
101
|
i.gravity @gravity
|
95
102
|
i.crop @crop
|
96
103
|
end
|
97
104
|
end
|
98
|
-
|
99
|
-
@source_dimensions = { width: image_base.width, height: image_base.height }
|
100
|
-
|
101
|
-
image_base
|
102
105
|
end
|
103
106
|
|
104
107
|
def generate_image
|
@@ -41,7 +41,9 @@ module PictureTag
|
|
41
41
|
# ^^^^^^^^^^^^^
|
42
42
|
# | domain | baseurl | directory | filename
|
43
43
|
def baseurl
|
44
|
-
PictureTag.
|
44
|
+
return '' if PictureTag.pconfig['ignore_baseurl']
|
45
|
+
|
46
|
+
PictureTag.config[PictureTag.pconfig['baseurl_key']] || ''
|
45
47
|
end
|
46
48
|
|
47
49
|
# https://example.com/my-base-path/assets/generated-images/image.jpg
|
data/readme.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Jekyll Picture Tag
|
2
2
|
|
3
|
+

|
4
|
+
|
3
5
|
**Responsive Images done correctly.**
|
4
6
|
|
5
7
|
It's simple to throw a photo on a page and call it a day, but doing justice to users on all
|
@@ -24,7 +26,7 @@ different image entirely.
|
|
24
26
|
|
25
27
|
**Developer Sanity:** If you want to serve multiple images in multiple formats and resolutions, you
|
26
28
|
have a litany of markup to write and a big pile of images to generate and organize. Jekyll Picture
|
27
|
-
Tag is your responsive images minion - give it simple instructions and it'll handle the rest.
|
29
|
+
Tag is your responsive images minion - give it simple instructions and it'll handle the rest.
|
28
30
|
|
29
31
|
## Features
|
30
32
|
|
@@ -41,14 +43,15 @@ https://rbuchberger.github.io/jekyll_picture_tag/
|
|
41
43
|
|
42
44
|
https://rbuchberger.github.io/jekyll_picture_tag/devs/releases
|
43
45
|
|
44
|
-
|
46
|
+
Recent releases:
|
45
47
|
|
46
|
-
* 1.
|
47
|
-
*
|
48
|
-
*
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
* 1.14.0 January 10, 2021
|
49
|
+
* Gracefully handle empty tag arguments.
|
50
|
+
* Re-add metadata stripping. I removed it inadvertently when refactoring; now
|
51
|
+
there's a test and a setting to turn it off.
|
52
|
+
* Respect Jekyll's `--disable-disk-cache` argument.
|
53
|
+
* Add baseurl configuration, allowing increased plugin support (such as I18n via `jekyll-multiple-languages-plugin`)
|
54
|
+
* Tooling & test suite maintenance and improvements.
|
52
55
|
|
53
56
|
## Help Wanted
|
54
57
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll_picture_tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Wierzbowski
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-01-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -40,6 +40,20 @@ dependencies:
|
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '5.11'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: minitest-rg
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
43
57
|
- !ruby/object:Gem::Dependency
|
44
58
|
name: mocha
|
45
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,28 +116,70 @@ dependencies:
|
|
102
116
|
requirements:
|
103
117
|
- - "~>"
|
104
118
|
- !ruby/object:Gem::Version
|
105
|
-
version:
|
119
|
+
version: 1.7.0
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - "~>"
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: 1.7.0
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: rubocop-minitest
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.10.0
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 0.10.0
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: rubocop-performance
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - "~>"
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 1.9.0
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - "~>"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: 1.9.0
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: rubocop-rake
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - "~>"
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: 0.5.0
|
106
162
|
type: :development
|
107
163
|
prerelease: false
|
108
164
|
version_requirements: !ruby/object:Gem::Requirement
|
109
165
|
requirements:
|
110
166
|
- - "~>"
|
111
167
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
168
|
+
version: 0.5.0
|
113
169
|
- !ruby/object:Gem::Dependency
|
114
170
|
name: simplecov
|
115
171
|
requirement: !ruby/object:Gem::Requirement
|
116
172
|
requirements:
|
117
|
-
- - "
|
173
|
+
- - "~>"
|
118
174
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
175
|
+
version: 0.20.0
|
120
176
|
type: :development
|
121
177
|
prerelease: false
|
122
178
|
version_requirements: !ruby/object:Gem::Requirement
|
123
179
|
requirements:
|
124
|
-
- - "
|
180
|
+
- - "~>"
|
125
181
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
182
|
+
version: 0.20.0
|
127
183
|
- !ruby/object:Gem::Dependency
|
128
184
|
name: solargraph
|
129
185
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,15 +276,17 @@ executables: []
|
|
220
276
|
extensions: []
|
221
277
|
extra_rdoc_files: []
|
222
278
|
files:
|
279
|
+
- ".envrc"
|
280
|
+
- ".github/workflows/code-checks.yml"
|
223
281
|
- ".gitignore"
|
224
282
|
- ".rubocop.yml"
|
225
283
|
- ".ruby-version"
|
226
284
|
- ".solargraph.yml"
|
227
|
-
- ".travis.yml"
|
228
285
|
- Dockerfile
|
229
286
|
- Gemfile
|
230
287
|
- LICENSE.txt
|
231
288
|
- Rakefile
|
289
|
+
- docs/.envrc
|
232
290
|
- docs/Gemfile
|
233
291
|
- docs/Gemfile.lock
|
234
292
|
- docs/_config.yml
|
@@ -240,15 +298,14 @@ files:
|
|
240
298
|
- docs/devs/index.md
|
241
299
|
- docs/devs/releases.md
|
242
300
|
- docs/index.md
|
243
|
-
- docs/users/configuration/cdn.md
|
244
301
|
- docs/users/configuration/directories.md
|
245
302
|
- docs/users/configuration/disable.md
|
246
303
|
- docs/users/configuration/fast_build.md
|
247
304
|
- docs/users/configuration/ignore_missing.md
|
248
305
|
- docs/users/configuration/index.md
|
249
306
|
- docs/users/configuration/kramdown_fix.md
|
250
|
-
- docs/users/configuration/relative_urls.md
|
251
307
|
- docs/users/configuration/suppress_warnings.md
|
308
|
+
- docs/users/configuration/urls.md
|
252
309
|
- docs/users/index.md
|
253
310
|
- docs/users/installation.md
|
254
311
|
- docs/users/liquid_tag/argument_reference/alternate_images.md
|
@@ -285,8 +342,10 @@ files:
|
|
285
342
|
- docs/users/presets/nomarkdown_override.md
|
286
343
|
- docs/users/presets/pixel_ratio_srcsets.md
|
287
344
|
- docs/users/presets/quality_width_graph.png
|
345
|
+
- docs/users/presets/strip_metadata.md
|
288
346
|
- docs/users/presets/width_height_attributes.md
|
289
347
|
- docs/users/presets/width_srcsets.md
|
348
|
+
- install_imagemagick.sh
|
290
349
|
- jekyll-picture-tag.gemspec
|
291
350
|
- jekyll_picture_tag.gemspec
|
292
351
|
- lib/jekyll-picture-tag.rb
|
@@ -350,7 +409,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
350
409
|
- !ruby/object:Gem::Version
|
351
410
|
version: '0'
|
352
411
|
requirements: []
|
353
|
-
|
412
|
+
rubyforge_project:
|
413
|
+
rubygems_version: 2.7.6.2
|
354
414
|
signing_key:
|
355
415
|
specification_version: 4
|
356
416
|
summary: Easy responsive images for Jekyll.
|
data/.travis.yml
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sort: 5
|
3
|
-
---
|
4
|
-
|
5
|
-
# CDN
|
6
|
-
|
7
|
-
Use for images that are hosted at a different domain or subdomain than the
|
8
|
-
Jekyll site root. Overrides `relative_url`.
|
9
|
-
|
10
|
-
## URL
|
11
|
-
|
12
|
-
*Format:* `cdn_url: (url)`
|
13
|
-
|
14
|
-
*Example:* `cdn_url: https://cdn.example.com`
|
15
|
-
|
16
|
-
*Default*: none
|
17
|
-
|
18
|
-
## Environments
|
19
|
-
|
20
|
-
It's likely that if you're using a CDN, you may not want to use it in your local
|
21
|
-
development environment. This allows you to build a site with local images while
|
22
|
-
in development, and still push to a CDN when you build for production by
|
23
|
-
specifying a different
|
24
|
-
[environment](https://jekyllrb.com/docs/configuration/environments/).
|
25
|
-
|
26
|
-
*Format:* `cdn_environments: (array of strings)`
|
27
|
-
|
28
|
-
*Example:* `cdn_environments: ['production', 'staging']`
|
29
|
-
|
30
|
-
*Default*: `['production']`
|
31
|
-
|
32
|
-
**Note that the default jekyll environment is `development`**, meaning that if
|
33
|
-
you only set `cdn_url` and run `jekyll serve` or `jekyll build`, nothing will
|
34
|
-
change. Either run `JEKYLL_ENV=production bundle exec jekyll build`, or add
|
35
|
-
`development` to this setting.
|
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
sort: 6
|
3
|
-
---
|
4
|
-
|
5
|
-
# Use Relative Urls
|
6
|
-
|
7
|
-
*Format:* `relative_url: (true|false)`
|
8
|
-
|
9
|
-
*Example:* `relative_url: false`
|
10
|
-
|
11
|
-
*Default*: `true`
|
12
|
-
|
13
|
-
Whether to use relative (`/generated/test(...).jpg`) or absolute
|
14
|
-
(`https://example.com/generated/test(...).jpg`) urls in your src and srcset
|
15
|
-
attributes.
|