jekyll 4.0.1 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +350 -163
  3. data/LICENSE +21 -21
  4. data/README.markdown +86 -90
  5. data/exe/jekyll +57 -57
  6. data/lib/blank_template/_config.yml +3 -3
  7. data/lib/blank_template/_layouts/default.html +12 -12
  8. data/lib/blank_template/_sass/main.scss +9 -9
  9. data/lib/blank_template/assets/css/main.scss +4 -4
  10. data/lib/blank_template/index.md +8 -8
  11. data/lib/jekyll/cache.rb +190 -190
  12. data/lib/jekyll/cleaner.rb +111 -111
  13. data/lib/jekyll/collection.rb +309 -309
  14. data/lib/jekyll/command.rb +105 -103
  15. data/lib/jekyll/commands/build.rb +93 -93
  16. data/lib/jekyll/commands/clean.rb +45 -45
  17. data/lib/jekyll/commands/doctor.rb +177 -173
  18. data/lib/jekyll/commands/help.rb +34 -34
  19. data/lib/jekyll/commands/new.rb +169 -169
  20. data/lib/jekyll/commands/new_theme.rb +40 -42
  21. data/lib/jekyll/commands/serve/live_reload_reactor.rb +122 -122
  22. data/lib/jekyll/commands/serve/livereload_assets/livereload.js +1183 -1183
  23. data/lib/jekyll/commands/serve/servlet.rb +202 -202
  24. data/lib/jekyll/commands/serve/websockets.rb +81 -81
  25. data/lib/jekyll/commands/serve.rb +362 -354
  26. data/lib/jekyll/configuration.rb +313 -316
  27. data/lib/jekyll/converter.rb +54 -54
  28. data/lib/jekyll/converters/identity.rb +41 -41
  29. data/lib/jekyll/converters/markdown/kramdown_parser.rb +199 -130
  30. data/lib/jekyll/converters/markdown.rb +113 -113
  31. data/lib/jekyll/converters/smartypants.rb +70 -70
  32. data/lib/jekyll/convertible.rb +257 -254
  33. data/lib/jekyll/deprecator.rb +50 -50
  34. data/lib/jekyll/document.rb +544 -522
  35. data/lib/jekyll/drops/collection_drop.rb +20 -20
  36. data/lib/jekyll/drops/document_drop.rb +70 -69
  37. data/lib/jekyll/drops/drop.rb +293 -215
  38. data/lib/jekyll/drops/excerpt_drop.rb +19 -19
  39. data/lib/jekyll/drops/jekyll_drop.rb +32 -32
  40. data/lib/jekyll/drops/site_drop.rb +66 -66
  41. data/lib/jekyll/drops/static_file_drop.rb +14 -14
  42. data/lib/jekyll/drops/unified_payload_drop.rb +26 -26
  43. data/lib/jekyll/drops/url_drop.rb +140 -132
  44. data/lib/jekyll/entry_filter.rb +121 -110
  45. data/lib/jekyll/errors.rb +20 -20
  46. data/lib/jekyll/excerpt.rb +201 -201
  47. data/lib/jekyll/external.rb +79 -79
  48. data/lib/jekyll/filters/date_filters.rb +110 -110
  49. data/lib/jekyll/filters/grouping_filters.rb +64 -64
  50. data/lib/jekyll/filters/url_filters.rb +98 -68
  51. data/lib/jekyll/filters.rb +535 -454
  52. data/lib/jekyll/frontmatter_defaults.rb +240 -245
  53. data/lib/jekyll/generator.rb +5 -5
  54. data/lib/jekyll/hooks.rb +107 -106
  55. data/lib/jekyll/inclusion.rb +32 -0
  56. data/lib/jekyll/layout.rb +67 -62
  57. data/lib/jekyll/liquid_extensions.rb +22 -22
  58. data/lib/jekyll/liquid_renderer/file.rb +77 -77
  59. data/lib/jekyll/liquid_renderer/table.rb +55 -75
  60. data/lib/jekyll/liquid_renderer.rb +80 -77
  61. data/lib/jekyll/log_adapter.rb +151 -151
  62. data/lib/jekyll/mime.types +866 -866
  63. data/lib/jekyll/page.rb +217 -186
  64. data/lib/jekyll/page_excerpt.rb +25 -0
  65. data/lib/jekyll/page_without_a_file.rb +14 -14
  66. data/lib/jekyll/path_manager.rb +74 -31
  67. data/lib/jekyll/plugin.rb +92 -92
  68. data/lib/jekyll/plugin_manager.rb +115 -115
  69. data/lib/jekyll/profiler.rb +58 -0
  70. data/lib/jekyll/publisher.rb +23 -23
  71. data/lib/jekyll/reader.rb +192 -187
  72. data/lib/jekyll/readers/collection_reader.rb +23 -22
  73. data/lib/jekyll/readers/data_reader.rb +79 -75
  74. data/lib/jekyll/readers/layout_reader.rb +62 -61
  75. data/lib/jekyll/readers/page_reader.rb +25 -24
  76. data/lib/jekyll/readers/post_reader.rb +85 -84
  77. data/lib/jekyll/readers/static_file_reader.rb +25 -24
  78. data/lib/jekyll/readers/theme_assets_reader.rb +52 -51
  79. data/lib/jekyll/regenerator.rb +195 -195
  80. data/lib/jekyll/related_posts.rb +52 -52
  81. data/lib/jekyll/renderer.rb +265 -267
  82. data/lib/jekyll/site.rb +551 -527
  83. data/lib/jekyll/static_file.rb +208 -203
  84. data/lib/jekyll/stevenson.rb +60 -60
  85. data/lib/jekyll/tags/highlight.rb +110 -110
  86. data/lib/jekyll/tags/include.rb +275 -221
  87. data/lib/jekyll/tags/link.rb +42 -41
  88. data/lib/jekyll/tags/post_url.rb +106 -107
  89. data/lib/jekyll/theme.rb +86 -80
  90. data/lib/jekyll/theme_builder.rb +121 -121
  91. data/lib/jekyll/url.rb +167 -164
  92. data/lib/jekyll/utils/ansi.rb +57 -57
  93. data/lib/jekyll/utils/exec.rb +26 -26
  94. data/lib/jekyll/utils/internet.rb +37 -37
  95. data/lib/jekyll/utils/platforms.rb +67 -82
  96. data/lib/jekyll/utils/thread_event.rb +31 -31
  97. data/lib/jekyll/utils/win_tz.rb +75 -75
  98. data/lib/jekyll/utils.rb +367 -367
  99. data/lib/jekyll/version.rb +5 -5
  100. data/lib/jekyll.rb +195 -206
  101. data/lib/site_template/.gitignore +5 -5
  102. data/lib/site_template/404.html +25 -25
  103. data/lib/site_template/_config.yml +55 -55
  104. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +29 -29
  105. data/lib/site_template/about.markdown +18 -18
  106. data/lib/site_template/index.markdown +6 -6
  107. data/lib/theme_template/CODE_OF_CONDUCT.md.erb +74 -74
  108. data/lib/theme_template/Gemfile +4 -4
  109. data/lib/theme_template/LICENSE.txt.erb +21 -21
  110. data/lib/theme_template/README.md.erb +52 -52
  111. data/lib/theme_template/_layouts/default.html +1 -1
  112. data/lib/theme_template/_layouts/page.html +5 -5
  113. data/lib/theme_template/_layouts/post.html +5 -5
  114. data/lib/theme_template/example/_config.yml.erb +1 -1
  115. data/lib/theme_template/example/_post.md +12 -12
  116. data/lib/theme_template/example/index.html +14 -14
  117. data/lib/theme_template/example/style.scss +7 -7
  118. data/lib/theme_template/gitignore.erb +6 -6
  119. data/lib/theme_template/theme.gemspec.erb +16 -19
  120. data/rubocop/jekyll/assert_equal_literal_actual.rb +149 -149
  121. data/rubocop/jekyll/no_p_allowed.rb +23 -23
  122. data/rubocop/jekyll/no_puts_allowed.rb +23 -23
  123. data/rubocop/jekyll.rb +5 -5
  124. metadata +20 -38
@@ -1,215 +1,293 @@
1
- # frozen_string_literal: true
2
-
3
- module Jekyll
4
- module Drops
5
- class Drop < Liquid::Drop
6
- include Enumerable
7
-
8
- NON_CONTENT_METHODS = [:fallback_data, :collapse_document].freeze
9
-
10
- # Get or set whether the drop class is mutable.
11
- # Mutability determines whether or not pre-defined fields may be
12
- # overwritten.
13
- #
14
- # is_mutable - Boolean set mutability of the class (default: nil)
15
- #
16
- # Returns the mutability of the class
17
- def self.mutable(is_mutable = nil)
18
- @is_mutable = is_mutable || false
19
- end
20
-
21
- def self.mutable?
22
- @is_mutable
23
- end
24
-
25
- # Create a new Drop
26
- #
27
- # obj - the Jekyll Site, Collection, or Document required by the
28
- # drop.
29
- #
30
- # Returns nothing
31
- def initialize(obj)
32
- @obj = obj
33
- end
34
-
35
- # Access a method in the Drop or a field in the underlying hash data.
36
- # If mutable, checks the mutations first. Then checks the methods,
37
- # and finally check the underlying hash (e.g. document front matter)
38
- # if all the previous places didn't match.
39
- #
40
- # key - the string key whose value to fetch
41
- #
42
- # Returns the value for the given key, or nil if none exists
43
- def [](key)
44
- if self.class.mutable? && mutations.key?(key)
45
- mutations[key]
46
- elsif self.class.invokable? key
47
- public_send key
48
- else
49
- fallback_data[key]
50
- end
51
- end
52
- alias_method :invoke_drop, :[]
53
-
54
- # Set a field in the Drop. If mutable, sets in the mutations and
55
- # returns. If not mutable, checks first if it's trying to override a
56
- # Drop method and raises a DropMutationException if so. If not
57
- # mutable and the key is not a method on the Drop, then it sets the
58
- # key to the value in the underlying hash (e.g. document front
59
- # matter)
60
- #
61
- # key - the String key whose value to set
62
- # val - the Object to set the key's value to
63
- #
64
- # Returns the value the key was set to unless the Drop is not mutable
65
- # and the key matches a method in which case it raises a
66
- # DropMutationException.
67
- def []=(key, val)
68
- setter = "#{key}="
69
- if respond_to?(setter)
70
- public_send(setter, val)
71
- elsif respond_to?(key.to_s)
72
- if self.class.mutable?
73
- mutations[key] = val
74
- else
75
- raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
76
- end
77
- else
78
- fallback_data[key] = val
79
- end
80
- end
81
-
82
- # Generates a list of strings which correspond to content getter
83
- # methods.
84
- #
85
- # Returns an Array of strings which represent method-specific keys.
86
- def content_methods
87
- @content_methods ||= (
88
- self.class.instance_methods \
89
- - Jekyll::Drops::Drop.instance_methods \
90
- - NON_CONTENT_METHODS
91
- ).map(&:to_s).reject do |method|
92
- method.end_with?("=")
93
- end
94
- end
95
-
96
- # Check if key exists in Drop
97
- #
98
- # key - the string key whose value to fetch
99
- #
100
- # Returns true if the given key is present
101
- def key?(key)
102
- return false if key.nil?
103
- return true if self.class.mutable? && mutations.key?(key)
104
-
105
- respond_to?(key) || fallback_data.key?(key)
106
- end
107
-
108
- # Generates a list of keys with user content as their values.
109
- # This gathers up the Drop methods and keys of the mutations and
110
- # underlying data hashes and performs a set union to ensure a list
111
- # of unique keys for the Drop.
112
- #
113
- # Returns an Array of unique keys for content for the Drop.
114
- def keys
115
- (content_methods |
116
- mutations.keys |
117
- fallback_data.keys).flatten
118
- end
119
-
120
- # Generate a Hash representation of the Drop by resolving each key's
121
- # value. It includes Drop methods, mutations, and the underlying object's
122
- # data. See the documentation for Drop#keys for more.
123
- #
124
- # Returns a Hash with all the keys and values resolved.
125
- def to_h
126
- keys.each_with_object({}) do |(key, _), result|
127
- result[key] = self[key]
128
- end
129
- end
130
- alias_method :to_hash, :to_h
131
-
132
- # Inspect the drop's keys and values through a JSON representation
133
- # of its keys and values.
134
- #
135
- # Returns a pretty generation of the hash representation of the Drop.
136
- def inspect
137
- JSON.pretty_generate to_h
138
- end
139
-
140
- # Generate a Hash for use in generating JSON.
141
- # This is useful if fields need to be cleared before the JSON can generate.
142
- #
143
- # Returns a Hash ready for JSON generation.
144
- def hash_for_json(*)
145
- to_h
146
- end
147
-
148
- # Generate a JSON representation of the Drop.
149
- #
150
- # state - the JSON::State object which determines the state of current processing.
151
- #
152
- # Returns a JSON representation of the Drop in a String.
153
- def to_json(state = nil)
154
- JSON.generate(hash_for_json(state), state)
155
- end
156
-
157
- # Collects all the keys and passes each to the block in turn.
158
- #
159
- # block - a block which accepts one argument, the key
160
- #
161
- # Returns nothing.
162
- def each_key(&block)
163
- keys.each(&block)
164
- end
165
-
166
- def each
167
- each_key.each do |key|
168
- yield key, self[key]
169
- end
170
- end
171
-
172
- def merge(other, &block)
173
- dup.tap do |me|
174
- if block.nil?
175
- me.merge!(other)
176
- else
177
- me.merge!(other, block)
178
- end
179
- end
180
- end
181
-
182
- def merge!(other)
183
- other.each_key do |key|
184
- if block_given?
185
- self[key] = yield key, self[key], other[key]
186
- else
187
- if Utils.mergable?(self[key]) && Utils.mergable?(other[key])
188
- self[key] = Utils.deep_merge_hashes(self[key], other[key])
189
- next
190
- end
191
-
192
- self[key] = other[key] unless other[key].nil?
193
- end
194
- end
195
- end
196
-
197
- # Imitate Hash.fetch method in Drop
198
- #
199
- # Returns value if key is present in Drop, otherwise returns default value
200
- # KeyError is raised if key is not present and no default value given
201
- def fetch(key, default = nil, &block)
202
- return self[key] if key?(key)
203
- raise KeyError, %(key not found: "#{key}") if default.nil? && block.nil?
204
- return yield(key) unless block.nil?
205
- return default unless default.nil?
206
- end
207
-
208
- private
209
-
210
- def mutations
211
- @mutations ||= {}
212
- end
213
- end
214
- end
215
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Drops
5
+ class Drop < Liquid::Drop
6
+ include Enumerable
7
+
8
+ NON_CONTENT_METHODS = [:fallback_data, :collapse_document].freeze
9
+ NON_CONTENT_METHOD_NAMES = NON_CONTENT_METHODS.map(&:to_s).freeze
10
+ private_constant :NON_CONTENT_METHOD_NAMES
11
+
12
+ # A private stash to avoid repeatedly generating the setter method name string for
13
+ # a call to `Drops::Drop#[]=`.
14
+ # The keys of the stash below have a very high probability of being called upon during
15
+ # the course of various `Jekyll::Renderer#run` calls.
16
+ SETTER_KEYS_STASH = {
17
+ "content" => "content=",
18
+ "layout" => "layout=",
19
+ "page" => "page=",
20
+ "paginator" => "paginator=",
21
+ "highlighter_prefix" => "highlighter_prefix=",
22
+ "highlighter_suffix" => "highlighter_suffix=",
23
+ }.freeze
24
+ private_constant :SETTER_KEYS_STASH
25
+
26
+ class << self
27
+ # Get or set whether the drop class is mutable.
28
+ # Mutability determines whether or not pre-defined fields may be
29
+ # overwritten.
30
+ #
31
+ # is_mutable - Boolean set mutability of the class (default: nil)
32
+ #
33
+ # Returns the mutability of the class
34
+ def mutable(is_mutable = nil)
35
+ @is_mutable = is_mutable || false
36
+ end
37
+
38
+ def mutable?
39
+ @is_mutable
40
+ end
41
+
42
+ # public delegation helper methods that calls onto Drop's instance
43
+ # variable `@obj`.
44
+
45
+ # Generate private Drop instance_methods for each symbol in the given list.
46
+ #
47
+ # Returns nothing.
48
+ def private_delegate_methods(*symbols)
49
+ symbols.each { |symbol| private delegate_method(symbol) }
50
+ nil
51
+ end
52
+
53
+ # Generate public Drop instance_methods for each symbol in the given list.
54
+ #
55
+ # Returns nothing.
56
+ def delegate_methods(*symbols)
57
+ symbols.each { |symbol| delegate_method(symbol) }
58
+ nil
59
+ end
60
+
61
+ # Generate public Drop instance_method for given symbol that calls `@obj.<sym>`.
62
+ #
63
+ # Returns delegated method symbol.
64
+ def delegate_method(symbol)
65
+ define_method(symbol) { @obj.send(symbol) }
66
+ end
67
+
68
+ # Generate public Drop instance_method named `delegate` that calls `@obj.<original>`.
69
+ #
70
+ # Returns delegated method symbol.
71
+ def delegate_method_as(original, delegate)
72
+ define_method(delegate) { @obj.send(original) }
73
+ end
74
+
75
+ # Generate public Drop instance_methods for each string entry in the given list.
76
+ # The generated method(s) access(es) `@obj`'s data hash.
77
+ #
78
+ # Returns nothing.
79
+ def data_delegators(*strings)
80
+ strings.each do |key|
81
+ data_delegator(key) if key.is_a?(String)
82
+ end
83
+ nil
84
+ end
85
+
86
+ # Generate public Drop instance_methods for given string `key`.
87
+ # The generated method access(es) `@obj`'s data hash.
88
+ #
89
+ # Returns method symbol.
90
+ def data_delegator(key)
91
+ define_method(key.to_sym) { @obj.data[key] }
92
+ end
93
+
94
+ # Array of stringified instance methods that do not end with the assignment operator.
95
+ #
96
+ # (<klass>.instance_methods always generates a new Array object so it can be mutated)
97
+ #
98
+ # Returns array of strings.
99
+ def getter_method_names
100
+ @getter_method_names ||= instance_methods.map!(&:to_s).tap do |list|
101
+ list.reject! { |item| item.end_with?("=") }
102
+ end
103
+ end
104
+ end
105
+
106
+ # Create a new Drop
107
+ #
108
+ # obj - the Jekyll Site, Collection, or Document required by the
109
+ # drop.
110
+ #
111
+ # Returns nothing
112
+ def initialize(obj)
113
+ @obj = obj
114
+ end
115
+
116
+ # Access a method in the Drop or a field in the underlying hash data.
117
+ # If mutable, checks the mutations first. Then checks the methods,
118
+ # and finally check the underlying hash (e.g. document front matter)
119
+ # if all the previous places didn't match.
120
+ #
121
+ # key - the string key whose value to fetch
122
+ #
123
+ # Returns the value for the given key, or nil if none exists
124
+ def [](key)
125
+ if self.class.mutable? && mutations.key?(key)
126
+ mutations[key]
127
+ elsif self.class.invokable? key
128
+ public_send key
129
+ else
130
+ fallback_data[key]
131
+ end
132
+ end
133
+ alias_method :invoke_drop, :[]
134
+
135
+ # Set a field in the Drop. If mutable, sets in the mutations and
136
+ # returns. If not mutable, checks first if it's trying to override a
137
+ # Drop method and raises a DropMutationException if so. If not
138
+ # mutable and the key is not a method on the Drop, then it sets the
139
+ # key to the value in the underlying hash (e.g. document front
140
+ # matter)
141
+ #
142
+ # key - the String key whose value to set
143
+ # val - the Object to set the key's value to
144
+ #
145
+ # Returns the value the key was set to unless the Drop is not mutable
146
+ # and the key matches a method in which case it raises a
147
+ # DropMutationException.
148
+ def []=(key, val)
149
+ setter = SETTER_KEYS_STASH[key] || "#{key}="
150
+ if respond_to?(setter)
151
+ public_send(setter, val)
152
+ elsif respond_to?(key.to_s)
153
+ if self.class.mutable?
154
+ mutations[key] = val
155
+ else
156
+ raise Errors::DropMutationException, "Key #{key} cannot be set in the drop."
157
+ end
158
+ else
159
+ fallback_data[key] = val
160
+ end
161
+ end
162
+
163
+ # Generates a list of strings which correspond to content getter
164
+ # methods.
165
+ #
166
+ # Returns an Array of strings which represent method-specific keys.
167
+ def content_methods
168
+ @content_methods ||= \
169
+ self.class.getter_method_names \
170
+ - Jekyll::Drops::Drop.getter_method_names \
171
+ - NON_CONTENT_METHOD_NAMES
172
+ end
173
+
174
+ # Check if key exists in Drop
175
+ #
176
+ # key - the string key whose value to fetch
177
+ #
178
+ # Returns true if the given key is present
179
+ def key?(key)
180
+ return false if key.nil?
181
+ return true if self.class.mutable? && mutations.key?(key)
182
+
183
+ respond_to?(key) || fallback_data.key?(key)
184
+ end
185
+
186
+ # Generates a list of keys with user content as their values.
187
+ # This gathers up the Drop methods and keys of the mutations and
188
+ # underlying data hashes and performs a set union to ensure a list
189
+ # of unique keys for the Drop.
190
+ #
191
+ # Returns an Array of unique keys for content for the Drop.
192
+ def keys
193
+ (content_methods |
194
+ mutations.keys |
195
+ fallback_data.keys).flatten
196
+ end
197
+
198
+ # Generate a Hash representation of the Drop by resolving each key's
199
+ # value. It includes Drop methods, mutations, and the underlying object's
200
+ # data. See the documentation for Drop#keys for more.
201
+ #
202
+ # Returns a Hash with all the keys and values resolved.
203
+ def to_h
204
+ keys.each_with_object({}) do |(key, _), result|
205
+ result[key] = self[key]
206
+ end
207
+ end
208
+ alias_method :to_hash, :to_h
209
+
210
+ # Inspect the drop's keys and values through a JSON representation
211
+ # of its keys and values.
212
+ #
213
+ # Returns a pretty generation of the hash representation of the Drop.
214
+ def inspect
215
+ JSON.pretty_generate to_h
216
+ end
217
+
218
+ # Generate a Hash for use in generating JSON.
219
+ # This is useful if fields need to be cleared before the JSON can generate.
220
+ #
221
+ # Returns a Hash ready for JSON generation.
222
+ def hash_for_json(*)
223
+ to_h
224
+ end
225
+
226
+ # Generate a JSON representation of the Drop.
227
+ #
228
+ # state - the JSON::State object which determines the state of current processing.
229
+ #
230
+ # Returns a JSON representation of the Drop in a String.
231
+ def to_json(state = nil)
232
+ JSON.generate(hash_for_json(state), state)
233
+ end
234
+
235
+ # Collects all the keys and passes each to the block in turn.
236
+ #
237
+ # block - a block which accepts one argument, the key
238
+ #
239
+ # Returns nothing.
240
+ def each_key(&block)
241
+ keys.each(&block)
242
+ end
243
+
244
+ def each
245
+ each_key.each do |key|
246
+ yield key, self[key]
247
+ end
248
+ end
249
+
250
+ def merge(other, &block)
251
+ dup.tap do |me|
252
+ if block.nil?
253
+ me.merge!(other)
254
+ else
255
+ me.merge!(other, block)
256
+ end
257
+ end
258
+ end
259
+
260
+ def merge!(other)
261
+ other.each_key do |key|
262
+ if block_given?
263
+ self[key] = yield key, self[key], other[key]
264
+ else
265
+ if Utils.mergable?(self[key]) && Utils.mergable?(other[key])
266
+ self[key] = Utils.deep_merge_hashes(self[key], other[key])
267
+ next
268
+ end
269
+
270
+ self[key] = other[key] unless other[key].nil?
271
+ end
272
+ end
273
+ end
274
+
275
+ # Imitate Hash.fetch method in Drop
276
+ #
277
+ # Returns value if key is present in Drop, otherwise returns default value
278
+ # KeyError is raised if key is not present and no default value given
279
+ def fetch(key, default = nil, &block)
280
+ return self[key] if key?(key)
281
+ raise KeyError, %(key not found: "#{key}") if default.nil? && block.nil?
282
+ return yield(key) unless block.nil?
283
+ return default unless default.nil?
284
+ end
285
+
286
+ private
287
+
288
+ def mutations
289
+ @mutations ||= {}
290
+ end
291
+ end
292
+ end
293
+ end
@@ -1,19 +1,19 @@
1
- # frozen_string_literal: true
2
-
3
- module Jekyll
4
- module Drops
5
- class ExcerptDrop < DocumentDrop
6
- def layout
7
- @obj.doc.data["layout"]
8
- end
9
-
10
- def date
11
- @obj.doc.date
12
- end
13
-
14
- def excerpt
15
- nil
16
- end
17
- end
18
- end
19
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Drops
5
+ class ExcerptDrop < DocumentDrop
6
+ def layout
7
+ @obj.doc.data["layout"]
8
+ end
9
+
10
+ def date
11
+ @obj.doc.date
12
+ end
13
+
14
+ def excerpt
15
+ nil
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,32 +1,32 @@
1
- # frozen_string_literal: true
2
-
3
- module Jekyll
4
- module Drops
5
- class JekyllDrop < Liquid::Drop
6
- class << self
7
- def global
8
- @global ||= JekyllDrop.new
9
- end
10
- end
11
-
12
- def version
13
- Jekyll::VERSION
14
- end
15
-
16
- def environment
17
- Jekyll.env
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
- JSON.generate(to_h, state)
29
- end
30
- end
31
- end
32
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Drops
5
+ class JekyllDrop < Liquid::Drop
6
+ class << self
7
+ def global
8
+ @global ||= JekyllDrop.new
9
+ end
10
+ end
11
+
12
+ def version
13
+ Jekyll::VERSION
14
+ end
15
+
16
+ def environment
17
+ Jekyll.env
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
+ JSON.generate(to_h, state)
29
+ end
30
+ end
31
+ end
32
+ end