jekyll 4.2.2 → 4.3.1

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +150 -26
  3. data/README.markdown +16 -19
  4. data/lib/jekyll/cache.rb +3 -7
  5. data/lib/jekyll/cleaner.rb +1 -1
  6. data/lib/jekyll/collection.rb +1 -0
  7. data/lib/jekyll/commands/build.rb +2 -13
  8. data/lib/jekyll/commands/clean.rb +1 -2
  9. data/lib/jekyll/commands/doctor.rb +13 -13
  10. data/lib/jekyll/commands/new.rb +5 -9
  11. data/lib/jekyll/commands/new_theme.rb +3 -4
  12. data/lib/jekyll/commands/serve/live_reload_reactor.rb +3 -6
  13. data/lib/jekyll/commands/serve/mime_types_charset.json +71 -0
  14. data/lib/jekyll/commands/serve/servlet.rb +13 -9
  15. data/lib/jekyll/commands/serve.rb +23 -18
  16. data/lib/jekyll/configuration.rb +2 -2
  17. data/lib/jekyll/converters/markdown/kramdown_parser.rb +13 -15
  18. data/lib/jekyll/deprecator.rb +1 -1
  19. data/lib/jekyll/document.rb +2 -3
  20. data/lib/jekyll/drops/document_drop.rb +4 -0
  21. data/lib/jekyll/drops/excerpt_drop.rb +4 -0
  22. data/lib/jekyll/drops/theme_drop.rb +36 -0
  23. data/lib/jekyll/drops/unified_payload_drop.rb +6 -2
  24. data/lib/jekyll/entry_filter.rb +2 -6
  25. data/lib/jekyll/excerpt.rb +5 -6
  26. data/lib/jekyll/external.rb +17 -21
  27. data/lib/jekyll/filters.rb +11 -14
  28. data/lib/jekyll/frontmatter_defaults.rb +2 -4
  29. data/lib/jekyll/hooks.rb +2 -2
  30. data/lib/jekyll/layout.rb +8 -20
  31. data/lib/jekyll/mime.types +146 -73
  32. data/lib/jekyll/page.rb +2 -4
  33. data/lib/jekyll/path_manager.rb +7 -7
  34. data/lib/jekyll/plugin_manager.rb +12 -4
  35. data/lib/jekyll/profiler.rb +0 -3
  36. data/lib/jekyll/reader.rb +18 -1
  37. data/lib/jekyll/readers/data_reader.rb +45 -11
  38. data/lib/jekyll/renderer.rb +8 -10
  39. data/lib/jekyll/site.rb +52 -21
  40. data/lib/jekyll/static_file.rb +6 -9
  41. data/lib/jekyll/tags/highlight.rb +13 -9
  42. data/lib/jekyll/tags/include.rb +4 -4
  43. data/lib/jekyll/tags/post_url.rb +5 -5
  44. data/lib/jekyll/theme.rb +6 -2
  45. data/lib/jekyll/theme_builder.rb +1 -1
  46. data/lib/jekyll/url.rb +1 -1
  47. data/lib/jekyll/utils/ansi.rb +1 -1
  48. data/lib/jekyll/utils/win_tz.rb +18 -47
  49. data/lib/jekyll/utils.rb +10 -6
  50. data/lib/jekyll/version.rb +1 -1
  51. data/lib/jekyll.rb +1 -1
  52. data/lib/site_template/_config.yml +1 -1
  53. data/lib/theme_template/README.md.erb +1 -3
  54. metadata +59 -13
data/lib/jekyll/utils.rb CHANGED
@@ -128,7 +128,8 @@ module Jekyll
128
128
  # Returns the parsed date if successful, throws a FatalException
129
129
  # if not
130
130
  def parse_date(input, msg = "Input could not be parsed.")
131
- Time.parse(input).localtime
131
+ @parse_date_cache ||= {}
132
+ @parse_date_cache[input] ||= Time.parse(input).localtime
132
133
  rescue ArgumentError
133
134
  raise Errors::InvalidDateError, "Invalid date '#{input}': #{msg}"
134
135
  end
@@ -143,7 +144,7 @@ module Jekyll
143
144
  false
144
145
  end
145
146
 
146
- # Determine whether the given content string contains Liquid Tags or Vaiables
147
+ # Determine whether the given content string contains Liquid Tags or Variables
147
148
  #
148
149
  # Returns true is the string contains sequences of `{%` or `{{`
149
150
  def has_liquid_construct?(content)
@@ -265,7 +266,7 @@ module Jekyll
265
266
  template
266
267
  end
267
268
 
268
- # Work the same way as Dir.glob but seperating the input into two parts
269
+ # Work the same way as Dir.glob but separating the input into two parts
269
270
  # ('dir' + '/' + 'pattern') to make sure the first part('dir') does not act
270
271
  # as a pattern.
271
272
  #
@@ -287,7 +288,7 @@ module Jekyll
287
288
  # patterns - the patterns (or the pattern) which will be applied under the dir
288
289
  # flags - the flags which will be applied to the pattern
289
290
  #
290
- # Returns matched pathes
291
+ # Returns matched paths
291
292
  def safe_glob(dir, patterns, flags = 0)
292
293
  return [] unless Dir.exist?(dir)
293
294
 
@@ -303,12 +304,15 @@ module Jekyll
303
304
  # and a given param
304
305
  def merged_file_read_opts(site, opts)
305
306
  merged = (site ? site.file_read_opts : {}).merge(opts)
306
- if merged[:encoding] && !merged[:encoding].start_with?("bom|")
307
+
308
+ # always use BOM when reading UTF-encoded files
309
+ if merged[:encoding]&.downcase&.start_with?("utf-")
307
310
  merged[:encoding] = "bom|#{merged[:encoding]}"
308
311
  end
309
- if merged["encoding"] && !merged["encoding"].start_with?("bom|")
312
+ if merged["encoding"]&.downcase&.start_with?("utf-")
310
313
  merged["encoding"] = "bom|#{merged["encoding"]}"
311
314
  end
315
+
312
316
  merged
313
317
  end
314
318
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jekyll
4
- VERSION = "4.2.2"
4
+ VERSION = "4.3.1"
5
5
  end
data/lib/jekyll.rb CHANGED
@@ -148,7 +148,7 @@ module Jekyll
148
148
 
149
149
  # Public: Set the log writer.
150
150
  # New log writer must respond to the same methods
151
- # as Ruby's interal Logger.
151
+ # as Ruby's internal Logger.
152
152
  #
153
153
  # writer - the new Logger-compatible log transport
154
154
  #
@@ -8,7 +8,7 @@
8
8
  # For technical reasons, this file is *NOT* reloaded automatically when you use
9
9
  # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
10
  #
11
- # If you need help with YAML syntax, here are some quick references for you:
11
+ # If you need help with YAML syntax, here are some quick references for you:
12
12
  # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
13
  # https://learnxinyminutes.com/docs/yaml/
14
14
  #
@@ -6,7 +6,6 @@ To experiment with this code, add some sample content and run `bundle exec jekyl
6
6
 
7
7
  TODO: Delete this and the text above, and describe your gem
8
8
 
9
-
10
9
  ## Installation
11
10
 
12
11
  Add this line to your Jekyll site's `Gemfile`:
@@ -35,7 +34,7 @@ TODO: Write usage instructions here. Describe your available layouts, includes,
35
34
 
36
35
  ## Contributing
37
36
 
38
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
37
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/<%= theme_name %>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
39
38
 
40
39
  ## Development
41
40
 
@@ -49,4 +48,3 @@ To add a custom directory to your theme-gem, please edit the regexp in `<%= them
49
48
  ## License
50
49
 
51
50
  The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
52
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.2
4
+ version: 4.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-03-03 00:00:00.000000000 Z
13
+ date: 2022-10-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -72,16 +72,22 @@ dependencies:
72
72
  name: jekyll-sass-converter
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '2.0'
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: '4.0'
78
81
  type: :runtime
79
82
  prerelease: false
80
83
  version_requirements: !ruby/object:Gem::Requirement
81
84
  requirements:
82
- - - "~>"
85
+ - - ">="
83
86
  - !ruby/object:Gem::Version
84
87
  version: '2.0'
88
+ - - "<"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.0'
85
91
  - !ruby/object:Gem::Dependency
86
92
  name: jekyll-watch
87
93
  requirement: !ruby/object:Gem::Requirement
@@ -103,6 +109,9 @@ dependencies:
103
109
  - - "~>"
104
110
  - !ruby/object:Gem::Version
105
111
  version: '2.3'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 2.3.1
106
115
  type: :runtime
107
116
  prerelease: false
108
117
  version_requirements: !ruby/object:Gem::Requirement
@@ -110,6 +119,9 @@ dependencies:
110
119
  - - "~>"
111
120
  - !ruby/object:Gem::Version
112
121
  version: '2.3'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 2.3.1
113
125
  - !ruby/object:Gem::Dependency
114
126
  name: kramdown-parser-gfm
115
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,16 +154,22 @@ dependencies:
142
154
  name: mercenary
143
155
  requirement: !ruby/object:Gem::Requirement
144
156
  requirements:
145
- - - "~>"
157
+ - - ">="
146
158
  - !ruby/object:Gem::Version
147
- version: 0.4.0
159
+ version: 0.3.6
160
+ - - "<"
161
+ - !ruby/object:Gem::Version
162
+ version: '0.5'
148
163
  type: :runtime
149
164
  prerelease: false
150
165
  version_requirements: !ruby/object:Gem::Requirement
151
166
  requirements:
152
- - - "~>"
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: 0.3.6
170
+ - - "<"
153
171
  - !ruby/object:Gem::Version
154
- version: 0.4.0
172
+ version: '0.5'
155
173
  - !ruby/object:Gem::Dependency
156
174
  name: pathutil
157
175
  requirement: !ruby/object:Gem::Requirement
@@ -170,16 +188,22 @@ dependencies:
170
188
  name: rouge
171
189
  requirement: !ruby/object:Gem::Requirement
172
190
  requirements:
173
- - - "~>"
191
+ - - ">="
174
192
  - !ruby/object:Gem::Version
175
193
  version: '3.0'
194
+ - - "<"
195
+ - !ruby/object:Gem::Version
196
+ version: '5.0'
176
197
  type: :runtime
177
198
  prerelease: false
178
199
  version_requirements: !ruby/object:Gem::Requirement
179
200
  requirements:
180
- - - "~>"
201
+ - - ">="
181
202
  - !ruby/object:Gem::Version
182
203
  version: '3.0'
204
+ - - "<"
205
+ - !ruby/object:Gem::Version
206
+ version: '5.0'
183
207
  - !ruby/object:Gem::Dependency
184
208
  name: safe_yaml
185
209
  requirement: !ruby/object:Gem::Requirement
@@ -196,18 +220,38 @@ dependencies:
196
220
  version: '1.0'
197
221
  - !ruby/object:Gem::Dependency
198
222
  name: terminal-table
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: '1.8'
228
+ - - "<"
229
+ - !ruby/object:Gem::Version
230
+ version: '4.0'
231
+ type: :runtime
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '1.8'
238
+ - - "<"
239
+ - !ruby/object:Gem::Version
240
+ version: '4.0'
241
+ - !ruby/object:Gem::Dependency
242
+ name: webrick
199
243
  requirement: !ruby/object:Gem::Requirement
200
244
  requirements:
201
245
  - - "~>"
202
246
  - !ruby/object:Gem::Version
203
- version: '2.0'
247
+ version: '1.7'
204
248
  type: :runtime
205
249
  prerelease: false
206
250
  version_requirements: !ruby/object:Gem::Requirement
207
251
  requirements:
208
252
  - - "~>"
209
253
  - !ruby/object:Gem::Version
210
- version: '2.0'
254
+ version: '1.7'
211
255
  description: Jekyll is a simple, blog aware, static site generator.
212
256
  email:
213
257
  - maintainers@jekyllrb.com
@@ -241,6 +285,7 @@ files:
241
285
  - lib/jekyll/commands/serve.rb
242
286
  - lib/jekyll/commands/serve/live_reload_reactor.rb
243
287
  - lib/jekyll/commands/serve/livereload_assets/livereload.js
288
+ - lib/jekyll/commands/serve/mime_types_charset.json
244
289
  - lib/jekyll/commands/serve/servlet.rb
245
290
  - lib/jekyll/commands/serve/websockets.rb
246
291
  - lib/jekyll/configuration.rb
@@ -259,6 +304,7 @@ files:
259
304
  - lib/jekyll/drops/jekyll_drop.rb
260
305
  - lib/jekyll/drops/site_drop.rb
261
306
  - lib/jekyll/drops/static_file_drop.rb
307
+ - lib/jekyll/drops/theme_drop.rb
262
308
  - lib/jekyll/drops/unified_payload_drop.rb
263
309
  - lib/jekyll/drops/url_drop.rb
264
310
  - lib/jekyll/entry_filter.rb
@@ -357,7 +403,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
357
403
  requirements:
358
404
  - - ">="
359
405
  - !ruby/object:Gem::Version
360
- version: 2.4.0
406
+ version: 2.5.0
361
407
  required_rubygems_version: !ruby/object:Gem::Requirement
362
408
  requirements:
363
409
  - - ">="