jekyll 3.1.5 → 3.1.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of jekyll might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/jekyll/drops/document_drop.rb +35 -2
- data/lib/jekyll/drops/drop.rb +19 -1
- data/lib/jekyll/drops/jekyll_drop.rb +12 -0
- data/lib/jekyll/site.rb +1 -0
- data/lib/jekyll/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94f9cf84e2e166318a010d9830c88946ae04deec
|
4
|
+
data.tar.gz: c004941e48a5ac91b1a1d4621d4d5b46fae3ae5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 416cf930d756be71e48285d54fc35a6baa54033d9589c2cdecd7e3372d82f1d67c81051a267768ffb3ebdd18735db8514ad9df88272d78d4824fb56f681934f5
|
7
|
+
data.tar.gz: e19b78a77f2b60f5f212811b5f461a94d2f8149d18c1267b01544a88f2c7e1b4122a6e698f228d9f482fda6aa4c49944e3eea483a3fc5c176ae4943c9fe236ba
|
@@ -5,10 +5,12 @@ module Jekyll
|
|
5
5
|
class DocumentDrop < Drop
|
6
6
|
extend Forwardable
|
7
7
|
|
8
|
+
NESTED_OBJECT_FIELD_BLACKLIST = %w{
|
9
|
+
content output excerpt next previous
|
10
|
+
}.freeze
|
11
|
+
|
8
12
|
mutable false
|
9
13
|
|
10
|
-
def_delegator :@obj, :next_doc, :next
|
11
|
-
def_delegator :@obj, :previous_doc, :previous
|
12
14
|
def_delegator :@obj, :relative_path, :path
|
13
15
|
def_delegators :@obj, :id, :output, :content, :to_s, :relative_path, :url
|
14
16
|
|
@@ -20,6 +22,37 @@ module Jekyll
|
|
20
22
|
fallback_data['excerpt'].to_s
|
21
23
|
end
|
22
24
|
|
25
|
+
def previous
|
26
|
+
@obj.previous_doc.to_liquid
|
27
|
+
end
|
28
|
+
|
29
|
+
def next
|
30
|
+
@obj.next_doc.to_liquid
|
31
|
+
end
|
32
|
+
|
33
|
+
# Generate a Hash for use in generating JSON.
|
34
|
+
# This is useful if fields need to be cleared before the JSON can generate.
|
35
|
+
#
|
36
|
+
# Returns a Hash ready for JSON generation.
|
37
|
+
def hash_for_json(state = nil)
|
38
|
+
to_h.tap do |hash|
|
39
|
+
if state && state.depth >= 2
|
40
|
+
hash["previous"] = collapse_document(hash["previous"]) if hash["previous"]
|
41
|
+
hash["next"] = collapse_document(hash["next"]) if hash["next"]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Generate a Hash which breaks the recursive chain.
|
47
|
+
# Certain fields which are normally available are omitted.
|
48
|
+
#
|
49
|
+
# Returns a Hash with only non-recursive fields present.
|
50
|
+
def collapse_document(doc)
|
51
|
+
doc.keys.each_with_object({}) do |(key, _), result|
|
52
|
+
result[key] = doc[key] unless NESTED_OBJECT_FIELD_BLACKLIST.include?(key)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
23
56
|
private
|
24
57
|
def_delegator :@obj, :data, :fallback_data
|
25
58
|
end
|
data/lib/jekyll/drops/drop.rb
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
module Jekyll
|
4
4
|
module Drops
|
5
5
|
class Drop < Liquid::Drop
|
6
|
-
|
6
|
+
include Enumerable
|
7
|
+
|
8
|
+
NON_CONTENT_METHODS = [:fallback_data, :collapse_document].freeze
|
7
9
|
|
8
10
|
# Get or set whether the drop class is mutable.
|
9
11
|
# Mutability determines whether or not pre-defined fields may be
|
@@ -138,6 +140,22 @@ module Jekyll
|
|
138
140
|
JSON.pretty_generate to_h
|
139
141
|
end
|
140
142
|
|
143
|
+
# Generate a Hash for use in generating JSON.
|
144
|
+
# This is useful if fields need to be cleared before the JSON can generate.
|
145
|
+
#
|
146
|
+
# Returns a Hash ready for JSON generation.
|
147
|
+
def hash_for_json(state = nil)
|
148
|
+
to_h
|
149
|
+
end
|
150
|
+
|
151
|
+
# Generate a JSON representation of the Drop.
|
152
|
+
#
|
153
|
+
# Returns a JSON representation of the Drop in a String.
|
154
|
+
def to_json(state = nil)
|
155
|
+
require 'json'
|
156
|
+
JSON.generate(hash_for_json(state), state)
|
157
|
+
end
|
158
|
+
|
141
159
|
# Collects all the keys and passes each to the block in turn.
|
142
160
|
#
|
143
161
|
# block - a block which accepts one argument, the key
|
@@ -16,6 +16,18 @@ module Jekyll
|
|
16
16
|
def environment
|
17
17
|
Jekyll.env
|
18
18
|
end
|
19
|
+
|
20
|
+
def to_h
|
21
|
+
@to_h ||= {
|
22
|
+
"version" => version,
|
23
|
+
"environment" => environment
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_json(state = nil)
|
28
|
+
require 'json'
|
29
|
+
JSON.generate(to_h, state)
|
30
|
+
end
|
19
31
|
end
|
20
32
|
end
|
21
33
|
end
|
data/lib/jekyll/site.rb
CHANGED
@@ -262,6 +262,7 @@ module Jekyll
|
|
262
262
|
def site_payload
|
263
263
|
Drops::UnifiedPayloadDrop.new self
|
264
264
|
end
|
265
|
+
alias_method :to_liquid, :site_payload
|
265
266
|
|
266
267
|
# Get the implementation class for the given Converter.
|
267
268
|
# Returns the Converter instance implementing the given Converter.
|
data/lib/jekyll/version.rb
CHANGED