jekyll 4.2.2 → 4.3.1

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="