jekyll-embed-urls 0.5.15 → 0.6.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/_includes/fallback.html +8 -14
- data/_includes/ogp.html +33 -11
- data/lib/jekyll/embed/content.rb +5 -8
- data/lib/jekyll/embed.rb +4 -4
- 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: c799fb3a535b9debbe5e89f5e980924932487511d5bd763654869e30b002a212
|
4
|
+
data.tar.gz: fb20c78186c0a51ebbb31b243ded2046826a130a141707d6e84cafcb39df7cb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9de0be82e9c43c8c3527d93858974d6b1e59dcb0860bf0622143a0b9b7d86ba835cc5c28a0479dfac77cf06541cb221ad0a4825d92438631e5eba16ee5c62cc
|
7
|
+
data.tar.gz: 4b3632e48613bf7f07e0dcadbbf404ad35b7a98cc64f728d24c4c34908c21ceb0ba057fc3425d0449deb1d5ec37a7c40af6e7cd00f25e4d0da929bb45d586334
|
data/_includes/fallback.html
CHANGED
@@ -1,17 +1,11 @@
|
|
1
1
|
{% if page.url contains "//archive.org/" or page.url contains "//www.archive.org/" %}
|
2
|
-
<iframe
|
2
|
+
<iframe
|
3
|
+
class="w-100"
|
4
|
+
allow="{{ embed.allow | join: " " }}"
|
5
|
+
sandbox="{{ embed.sandbox | join: " " }}"
|
6
|
+
loading="{{ embed.loading }}"
|
7
|
+
referrerpolicy="{{ embed.referrerpolicy }}"
|
8
|
+
src="{{ page.url | replace: "/details/", "/embed/" | uri_escape }}"></iframe>
|
3
9
|
{% else %}
|
4
|
-
|
5
|
-
{%- if page.image -%}
|
6
|
-
<img src="{{ page.image | uri_escape }}" class="img-fluid" />
|
7
|
-
{%- endif -%}
|
8
|
-
|
9
|
-
<h1>{{ page.title | escape_once }}</h1>
|
10
|
-
<p class="lead">{{ page.description | escape_once }}</p>
|
11
|
-
<p>
|
12
|
-
<small>
|
13
|
-
<a href="{{ page.url | uri_escape }}">{{ page.url }}</a>
|
14
|
-
</small>
|
15
|
-
</p>
|
16
|
-
</article>
|
10
|
+
{% include ogp.html type="fallback" %}
|
17
11
|
{% endif %}
|
data/_includes/ogp.html
CHANGED
@@ -1,19 +1,41 @@
|
|
1
|
-
<article class="ogp" lang="{{ page.locale }}">
|
1
|
+
<article class="{{ include.type | default: "ogp" }} card mb-3" lang="{{ page.locale }}">
|
2
2
|
{%- if page.video -%}
|
3
|
-
<video
|
3
|
+
<video
|
4
|
+
{% if embed.controls %}controls{% endif %}
|
5
|
+
poster="{{ page.image | uri_escape }}"
|
6
|
+
preload="none"
|
7
|
+
class="img-fluid"
|
8
|
+
src="{{ page.video | uri_escape }}"/>
|
4
9
|
{%- elsif page.image -%}
|
5
|
-
<img
|
10
|
+
<img
|
11
|
+
src="{{ page.image | uri_escape }}"
|
12
|
+
class="img-fluid"
|
13
|
+
loading="{{ embed.loading }}"
|
14
|
+
referrerpolicy="{{ embed.referrerpolicy }}" />
|
6
15
|
{%- endif -%}
|
7
16
|
|
8
17
|
{%- if page.audio -%}
|
9
|
-
<audio
|
18
|
+
<audio
|
19
|
+
{% if embed.controls %}controls{% endif %}
|
20
|
+
class="w-100"
|
21
|
+
src="{{ page.audio | uri_escape }}"/>
|
10
22
|
{%- endif -%}
|
11
23
|
|
12
|
-
<
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
24
|
+
<header class="card-body">
|
25
|
+
<h1>{{ page.title | escape_once }}</h1>
|
26
|
+
{% if page.description %}
|
27
|
+
<p class="lead">
|
28
|
+
{{- page.description | escape_once -}}
|
29
|
+
</p>
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
<a
|
33
|
+
class="card-link"
|
34
|
+
rel="{{ embed.rel | join: " "}}"
|
35
|
+
target="{{ embed.target }}"
|
36
|
+
referrerpolicy="{{ embed.referrerpolicy }}"
|
37
|
+
href="{{ page.url | uri_escape }}">
|
38
|
+
{{- page.url -}}
|
39
|
+
</a>
|
40
|
+
</header>
|
19
41
|
</article>
|
data/lib/jekyll/embed/content.rb
CHANGED
@@ -14,16 +14,13 @@ module Jekyll
|
|
14
14
|
# @return [String]
|
15
15
|
def embed(content)
|
16
16
|
Nokogiri::HTML5.fragment(content).tap do |html|
|
17
|
-
html.css('p > a
|
18
|
-
next unless a.parent.children.
|
17
|
+
html.css('p > a').each do |a|
|
18
|
+
next unless a.parent.children.size == 1
|
19
|
+
next unless a['href'] == a.text.strip
|
19
20
|
|
20
|
-
|
21
|
+
embed = Jekyll::Embed.embed a['href']
|
21
22
|
|
22
|
-
next
|
23
|
-
|
24
|
-
embed = Jekyll::Embed.embed url
|
25
|
-
|
26
|
-
next if url == embed
|
23
|
+
next if a['href'] == embed
|
27
24
|
|
28
25
|
a.parent.replace embed
|
29
26
|
end
|
data/lib/jekyll/embed.rb
CHANGED
@@ -62,8 +62,8 @@ module Jekyll
|
|
62
62
|
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
|
63
63
|
|
64
64
|
# Templates
|
65
|
-
INCLUDE_OGP = '{% include ogp.html
|
66
|
-
INCLUDE_FALLBACK = '{% include fallback.html
|
65
|
+
INCLUDE_OGP = '{% include ogp.html %}'
|
66
|
+
INCLUDE_FALLBACK = '{% include fallback.html %}'
|
67
67
|
|
68
68
|
# The default referrer policy only sends the origin URL (not the
|
69
69
|
# full URL, only the protocol/scheme and domain part) if the remote
|
@@ -79,7 +79,7 @@ module Jekyll
|
|
79
79
|
'scrub' => %w[form input textarea button fieldset select option optgroup canvas area map],
|
80
80
|
'attributes' => {
|
81
81
|
'referrerpolicy' => 'strict-origin-when-cross-origin',
|
82
|
-
'sandbox' => %w[allow-scripts allow-popups],
|
82
|
+
'sandbox' => %w[allow-scripts allow-popups allow-popups-to-escape-sandbox],
|
83
83
|
'allow' => %w[fullscreen; gyroscope; picture-in-picture; clipboard-write;],
|
84
84
|
'loading' => 'lazy',
|
85
85
|
'controls' => true,
|
@@ -226,7 +226,7 @@ module Jekyll
|
|
226
226
|
rescue ArgumentError
|
227
227
|
Jekyll.logger.warn 'Invalid contents (OGP):', url
|
228
228
|
nil
|
229
|
-
rescue OGP::MalformedSourceError, OGP::MissingAttributeError, Faraday::Error
|
229
|
+
rescue LL::ParserError, OGP::MalformedSourceError, OGP::MissingAttributeError, Faraday::Error
|
230
230
|
nil
|
231
231
|
end
|
232
232
|
|
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
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- f
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|