jekyll-embed-urls 0.4.2 → 0.4.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c795f9b16237feeed30d70baee2b6146a51f056929924a295e5b0a1e293e24a0
4
- data.tar.gz: f5824e1b91c6a060306b9d93f258decbf57d9f825dcdfb2592bd2e30581d9638
3
+ metadata.gz: 938576c9cdee4a9b13de0e7d2d17983db2704f7882352d5a88010c66c8ddb122
4
+ data.tar.gz: e34c7de8e8d9b4b36d3b995888015362fd1a561db17cd3b4304bca252f12168c
5
5
  SHA512:
6
- metadata.gz: 83e610b927d530ea2e27b984517deb2046a2589320d2f79479581977ae340988492e4cc91717af7c15638347653c89759d578202a98b60a1887278f97029dfde
7
- data.tar.gz: 5b24859efeb21b55efa2c2b686cdb7b44ef3a810f8e1fbcfe6530a155fdb36abeb57fadcd55cd7941ce16f45f65dee9977b60d246b24c0303ae2341ab83e8bea
6
+ metadata.gz: 3c4cb82fb1f9accb6250dbe4b0460cde02867b7bf4b1befb93d2ca8c2f1c4bdb7204c9ceb30847bea1b1f7283be4d72f33137fcbc01c08bfce2ae93cda593cb7
7
+ data.tar.gz: 0e9f02488eb339c43c33c7a90f0192af3c2e069f038b2b399f6eba991423853589277e88369c0d920e03003957e2d26f3106b487db8b0b300e414abf02394625
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.4.3
4
+
5
+ * Correctly use Feature Policy
6
+
7
+ ## v0.4.2
8
+
9
+ * Fix on v0.4.1
10
+
11
+ ## v0.4.1
12
+
13
+ * Don't fail if remote URL returns an empty body
14
+
3
15
  ## v0.4.0
4
16
 
5
17
  * Almost a complete rewrite.
data/README.md CHANGED
@@ -54,10 +54,10 @@ embed:
54
54
  - allow-scripts
55
55
  - allow-popups
56
56
  allow:
57
- - fullscreen
58
- - gyroscope
59
- - picture-in-picture
60
- - clipboard-write
57
+ - fullscreen;
58
+ - gyroscope;
59
+ - picture-in-picture;
60
+ - clipboard-write;
61
61
  loading: 'lazy'
62
62
  controls: true
63
63
  rel:
@@ -162,6 +162,15 @@ Anti-tracking techniques implemented are:
162
162
  If you find more useful techniques, please [open an issue
163
163
  report](https://0xacab.org/sutty/jekyll/jekyll-embed-urls/-/issues).
164
164
 
165
+ ## Feature policy
166
+
167
+ [Feature
168
+ policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policy)
169
+ is a list of directives for allowing or denying features.
170
+
171
+ The directives are separated by semicolons. Any directive not mentioned
172
+ in the configuration is assumed to have a "none" policy by this plugin.
173
+
165
174
  ## Contributing
166
175
 
167
176
  Bug reports and pull requests are welcome on 0xacab.org at
data/_includes/ogp.html CHANGED
@@ -2,7 +2,7 @@
2
2
  {%- if page.video -%}
3
3
  <video poster="{{ page.image }}" class="img-fluid" {{ embed.controls }} src="{{ page.video }}"/>
4
4
  {%- elsif page.image -%}
5
- <img referrerpolicy="{{ embed.referrerpolicy | join: ' ' }}" loading="{{ embed.loading }}" src="{{ page.image }}" class="img-fluid" />
5
+ <img referrerpolicy="{{ embed.referrerpolicy }}" loading="{{ embed.loading }}" src="{{ page.image }}" class="img-fluid" />
6
6
  {%- endif -%}
7
7
 
8
8
  {%- if page.audio -%}
data/lib/jekyll/embed.rb CHANGED
@@ -55,6 +55,10 @@ module Jekyll
55
55
  MEDIA_ATTRIBUTES = %w[controls].freeze
56
56
  A_ATTRIBUTES = %w[referrerpolicy rel target].freeze
57
57
 
58
+ # Directive from Feature Policy
59
+ # @see {https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Feature-Policy#directives}
60
+ DIRECTIVES = %w[accelerometer ambient-light-sensor autoplay battery camera display-capture document-domain encrypted-media execution-while-not-rendered execution-while-out-of-viewport fullscreen gamepad geolocation gyroscope layout-animations legacy-image-formats magnetometer microphone midi navigation-override oversized-images payment picture-in-picture publickey-credentials-get speaker-selection sync-xhr usb screen-wake-lock web-share xr-spatial-tracking].freeze
61
+
58
62
  # Templates
59
63
  INCLUDE_OGP = '{% include ogp.html site=site page=page %}'
60
64
  INCLUDE_FALLBACK = '{% include fallback.html site=site page=page %}'
@@ -74,7 +78,7 @@ module Jekyll
74
78
  'attributes' => {
75
79
  'referrerpolicy' => 'strict-origin-when-cross-origin',
76
80
  'sandbox' => %w[allow-scripts allow-popups],
77
- 'allow' => %w[fullscreen gyroscope picture-in-picture clipboard-write],
81
+ 'allow' => %w[fullscreen; gyroscope; picture-in-picture; clipboard-write;],
78
82
  'loading' => 'lazy',
79
83
  'controls' => true,
80
84
  'rel' => %w[noopener noreferrer],
@@ -144,7 +148,9 @@ module Jekyll
144
148
 
145
149
  # @return [Hash]
146
150
  def config
147
- @config ||= Jekyll::Utils.deep_merge_hashes(DEFAULT_CONFIG, (site.config['embed'] || {}))
151
+ @config ||= Jekyll::Utils.deep_merge_hashes(DEFAULT_CONFIG, (site.config['embed'] || {})).tap do |c|
152
+ c['attributes']['allow'].concat (DIRECTIVES - c.dig('attributes', 'allow').join.split(';').map { |s| s.split(' ').first }).join(" 'none';|").split('|')
153
+ end
148
154
  end
149
155
 
150
156
  # Try for OEmbed
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-embed-urls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - f
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-09 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll