jekyll-compress-flow 0.2.1 → 0.2.2
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 +25 -0
- data/README.md +14 -1
- data/interface.yml +1 -1
- data/lib/jekyll/compress_flow/version.rb +1 -1
- data/lib/jekyll/compress_flow.rb +5 -0
- metadata +8 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7698a216c6b11cc78eb4dbf1fc8642b3b76e41dcb93a3f0f6e72ed939207a9ab
|
|
4
|
+
data.tar.gz: 50876d915cc373992f28fff651357c468bd9306e9651e7a280ec7e81a531825d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7f862ea2ee85d52f9b58e8abb5b79808cca7ec951c69fb1ab80fd3a81085292e3084e9ac7ddef365ebad1fdc75971905600adeab6f2a341d2425c3d5aacd9e1d
|
|
7
|
+
data.tar.gz: 7a750ebe879c078a28224ae84d3ec738f273b567c562f3a78face1625ce5b005b78d23b37119731a85c13f34a1f36536472d28f884b4af2a52ba13cfa89ad5a1
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,31 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## 0.2.2 — 2026-11-10
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `rake docs:demo` — captures the checked-in illustrative overview as
|
|
12
|
+
animated AVIF + WebP + static PNG (headless Chrome + ffmpeg + img2webp;
|
|
13
|
+
build-host tools), embedded in README via `<picture>`. Examples are
|
|
14
|
+
schematic, not generated from a live Jekyll build.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- CI: Semgrep moved from an inline `pip3 install` pin to the pinned
|
|
19
|
+
`semgrep/semgrep` container image (tag + sha256 digest). Image bumped
|
|
20
|
+
to 1.182.1 (certificate trust fix for the eMudhra CA compromise).
|
|
21
|
+
CI Node bumped from 24 to 26 (Active LTS "Lithium" since 2026-10-28).
|
|
22
|
+
- CI: `sonarqube-scan-action` bumped to v8.4.0; `markdownlint-cli2`
|
|
23
|
+
bumped to 0.24.0; `ruby/setup-ruby` v1.335.0 → v1.338.0; in-range
|
|
24
|
+
gem updates (rubocop 1.92.2, parser 3.3.13.0, addressable 2.9.2,
|
|
25
|
+
csv 3.3.7, sass-embedded 1.108.1, rspec-* 3.13.x patches);
|
|
26
|
+
`BUNDLED WITH` 4.0.23 → 4.0.24.
|
|
27
|
+
- CI: Ruby 4.0 added to the test matrix (latest stable major;
|
|
28
|
+
`required_ruby_version >= 3.3.0` already permits it).
|
|
29
|
+
- Gemspec `description` rewritten as an RDoc `==`-headed blurb so
|
|
30
|
+
rubygems.org renders it as markup instead of a single plain paragraph.
|
|
31
|
+
|
|
7
32
|
## 0.2.1 — 2026-10-06
|
|
8
33
|
|
|
9
34
|
### Added
|
data/README.md
CHANGED
|
@@ -25,6 +25,19 @@ simply happens at build time instead of request time.
|
|
|
25
25
|
|
|
26
26
|
[Compare different formats](https://speedvitals.com/blog/zstd-vs-brotli-vs-gzip/)
|
|
27
27
|
|
|
28
|
+
<!-- markdownlint-disable MD033 -->
|
|
29
|
+
<picture>
|
|
30
|
+
<source
|
|
31
|
+
srcset="docs/assets/jekyll-compress-flow-demo.avif"
|
|
32
|
+
type="image/avif">
|
|
33
|
+
<source
|
|
34
|
+
srcset="docs/assets/jekyll-compress-flow-demo.webp"
|
|
35
|
+
type="image/webp">
|
|
36
|
+
<img src="docs/assets/jekyll-compress-flow-demo.png"
|
|
37
|
+
alt="jekyll-compress-flow demo">
|
|
38
|
+
</picture>
|
|
39
|
+
<!-- markdownlint-enable MD033 -->
|
|
40
|
+
|
|
28
41
|
## Prerequisites
|
|
29
42
|
|
|
30
43
|
The plugin shells out to the platform compressor CLIs — install them on
|
|
@@ -32,7 +45,7 @@ the **build host** (not the web server; visitors need nothing):
|
|
|
32
45
|
|
|
33
46
|
| Tool | Generates | Minimum | Tested baseline |
|
|
34
47
|
| ---- | --------- | ------- | --------------- |
|
|
35
|
-
| `brotli` | `.br` | 1.1.0 | 1.2.
|
|
48
|
+
| `brotli` | `.br` | 1.1.0 | 1.2.1 (macOS) |
|
|
36
49
|
| `zstd` | `.zst` | 1.5.5 | 1.5.7 (macOS) |
|
|
37
50
|
| `gzip` | `.gz` | any | preinstalled on macOS/Linux; ships with Git for Windows |
|
|
38
51
|
|
data/interface.yml
CHANGED
data/lib/jekyll/compress_flow.rb
CHANGED
|
@@ -99,6 +99,9 @@ module Jekyll
|
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
def compress(file, format, cfg)
|
|
102
|
+
# Array-form system(): no shell — tool/args are literals from the frozen
|
|
103
|
+
# FORMATS table; file is a data argument globbed under the build dest.
|
|
104
|
+
# nosemgrep: ruby.lang.security.dangerous-exec.dangerous-exec
|
|
102
105
|
ok = system(format["tool"], *format["args"], file, out: File::NULL, err: File::NULL)
|
|
103
106
|
fail_or_warn(cfg, "#{format['tool']} failed on #{file}") unless ok
|
|
104
107
|
end
|
|
@@ -107,6 +110,8 @@ module Jekyll
|
|
|
107
110
|
# banner could not be parsed (or no pattern is defined — e.g. Apple gzip
|
|
108
111
|
# vs GNU gzip use incomparable version strings), nil when not installed.
|
|
109
112
|
def tool_version(tool, pattern)
|
|
113
|
+
# Array-form capture2e: no shell — tool is a literal from frozen FORMATS.
|
|
114
|
+
# nosemgrep: ruby.lang.security.dangerous-exec.dangerous-exec
|
|
110
115
|
out, status = Open3.capture2e(tool, "--version")
|
|
111
116
|
return nil unless status.success?
|
|
112
117
|
return :unversioned unless pattern && (match = out.match(pattern))
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-compress-flow
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Svend Gundestrup
|
|
@@ -29,10 +29,13 @@ dependencies:
|
|
|
29
29
|
- - "<"
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
31
|
version: '5.0'
|
|
32
|
-
description:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
description: |
|
|
33
|
+
== Precompressed siblings for Jekyll output
|
|
34
|
+
|
|
35
|
+
Writes .br, .zst and .gz siblings next to text assets at the end of a
|
|
36
|
+
build, so a precompressed-capable static server (for example Caddy's
|
|
37
|
+
file_server precompressed) can serve them without per-request
|
|
38
|
+
compression CPU.
|
|
36
39
|
email:
|
|
37
40
|
- svend@gundestrup.dk
|
|
38
41
|
executables: []
|