jekyll-linked-posts 0.2.0 → 0.3.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/lib/jekyll/linked_posts.rb +32 -25
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b90e7a22303bc20289f133ee54a2f59a60948728a9beb56ed6a4ac163f8d3678
|
4
|
+
data.tar.gz: c22383603722fc768d7b02c80be83edab9032d86cc8ab86c1169f43a6255da10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aaa69aa67d59681692f3b359f2884b2a3949d7a1fa5caff19e768d8daac72d1b8871ba514c2c8f9d9b975134870cc5f9fc2c798825e6976afd3dd70f19d91f0f
|
7
|
+
data.tar.gz: f4650ff35e5233daa11cdaa5b6a24ab8bcc13665c612274e41afaf3adffd8d8bd206bef1537f7b7c9752822ea854c2e5142bda4a3e11e4fe25a8e31d9d27cbe2
|
data/lib/jekyll/linked_posts.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Jekyll
|
2
4
|
# Link posts by UUIDs
|
3
5
|
class LinkedPosts
|
@@ -15,36 +17,41 @@ module Jekyll
|
|
15
17
|
# If it doesn't find anything it'll show a warning and replace the
|
16
18
|
# value for nil.
|
17
19
|
def read
|
18
|
-
|
20
|
+
indexed_documents.values.each do |doc|
|
19
21
|
fields.each do |field|
|
20
22
|
next unless doc.data.key? field
|
21
23
|
|
22
24
|
# XXX: this lacks... elegance
|
23
25
|
doc.data[field] =
|
24
26
|
case doc.data[field]
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
nil
|
38
|
-
end
|
27
|
+
when String then find(doc.data[field])
|
28
|
+
when Array
|
29
|
+
doc.data[field].map do |doc|
|
30
|
+
find doc
|
31
|
+
end.compact
|
32
|
+
when Hash
|
33
|
+
doc.data[field].map do |f, uuid|
|
34
|
+
[f, find(uuid)]
|
35
|
+
end.to_h
|
36
|
+
else
|
37
|
+
Jekyll.logger.warn "Couldn't link posts on #{doc.path}"
|
38
|
+
nil
|
39
39
|
end
|
40
|
+
end
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
43
44
|
private
|
44
45
|
|
45
|
-
# Obtain docs from the whole site
|
46
|
-
|
47
|
-
|
46
|
+
# Obtain docs from the whole site, indexing them by uuid
|
47
|
+
#
|
48
|
+
# @return [Hash]
|
49
|
+
def indexed_documents
|
50
|
+
@indexed_documents ||= site.documents.reduce({}) do |docs, doc|
|
51
|
+
docs.tap do |d|
|
52
|
+
d[doc.data['uuid']] = doc
|
53
|
+
end
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
# Search for UUIDs in these front matter fields. You can add more
|
@@ -54,19 +61,19 @@ module Jekyll
|
|
54
61
|
# linked_fields:
|
55
62
|
# - related
|
56
63
|
# - lang
|
64
|
+
#
|
65
|
+
# @return [Array]
|
57
66
|
def fields
|
58
67
|
@fields ||= site.config.fetch('linked_fields', FIELDS).compact.uniq
|
59
68
|
end
|
60
69
|
|
61
|
-
# Find a post with the given UUID
|
70
|
+
# Find a post with the given UUID and log alert if missing.
|
71
|
+
#
|
72
|
+
# @return [Jekyll::Document,Nil]
|
62
73
|
def find(uuid)
|
63
|
-
|
64
|
-
|
74
|
+
indexed_documents[uuid].tap do |i|
|
75
|
+
Jekyll.logger.warn "#{uuid} couldn't be found" if i.nil?
|
65
76
|
end
|
66
|
-
|
67
|
-
Jekyll.logger.warn "#{uuid} couldn't be found" if r.nil?
|
68
|
-
|
69
|
-
r
|
70
77
|
end
|
71
78
|
end
|
72
79
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-linked-posts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.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: 2021-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '0'
|
73
73
|
requirements: []
|
74
|
-
rubygems_version: 3.
|
74
|
+
rubygems_version: 3.1.2
|
75
75
|
signing_key:
|
76
76
|
specification_version: 4
|
77
77
|
summary: Adds linked posts to Jekyll
|