jekyll-embed-urls 0.5.8 → 0.5.10
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/lib/jekyll/embed/content.rb +16 -13
- 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: 4f66f81ca34c06a06a4c8519a1d9546895f6698f5fd7c424c055fa8b8608cced
|
4
|
+
data.tar.gz: 0c1ebc0d78a87f5a70aae5d05d28e91f5ad055b062a4f0a6b48c5d5121f480be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '093281bf98dc26ce527765278ae0b3c355fa26e8b95f8bb6e1aa7315f8d5b8c379edd89b7f1de7d12a056712efc7c8a4bdba6f3968b112fda8515cd255e84cf7'
|
7
|
+
data.tar.gz: 7b6e74bedcb632fd8849ce806c498fed855e71807f7f65b25265afa276ee5bad9378ee1f9115e6cc569fc8576e56c1566a1f2834ebc43096bf8c145a8851107e
|
data/lib/jekyll/embed/content.rb
CHANGED
@@ -1,27 +1,30 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'nokogiri'
|
4
4
|
|
5
5
|
module Jekyll
|
6
6
|
class Embed
|
7
7
|
class Content
|
8
|
-
URL_RE = %r{(<p[^>]*>[\s\n]*(<a[^>]*>)?[\s\n]*(https?://[^<\s\n]+)[\s\n]*(</a>)?[\s\n]*</p>)}m.freeze
|
9
|
-
|
10
8
|
class << self
|
11
9
|
# Find URLs on paragraphs. We do it after rendering because
|
12
10
|
# sometimes we use HTML instead of pure Markdown and this way we
|
13
11
|
# catch both.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
#
|
13
|
+
# @param :content [String]
|
14
|
+
# @return [String]
|
15
|
+
def embed(content)
|
16
|
+
Nokogiri::HTML5.fragment(content).tap do |html|
|
17
|
+
html.css('p > a:first-of-type').each do |a|
|
18
|
+
next unless a.parent.children.last == a
|
19
|
+
|
20
|
+
url = a['href']
|
21
|
+
embed = Jekyll::Embed.embed url
|
22
|
+
|
23
|
+
next if url == embed
|
18
24
|
|
19
|
-
|
20
|
-
match
|
21
|
-
else
|
22
|
-
embed
|
25
|
+
a.parent.replace embed
|
23
26
|
end
|
24
|
-
end
|
27
|
+
end.to_s
|
25
28
|
end
|
26
29
|
end
|
27
30
|
end
|
@@ -29,5 +32,5 @@ module Jekyll
|
|
29
32
|
end
|
30
33
|
|
31
34
|
Jekyll::Hooks.register :posts, :post_convert do |post|
|
32
|
-
Jekyll::Embed::Content.embed
|
35
|
+
post.content = Jekyll::Embed::Content.embed post.content
|
33
36
|
end
|
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.5.
|
4
|
+
version: 0.5.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- f
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|