jekyll 4.3.4 → 4.4.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/.rubocop.yml +205 -74
- data/lib/jekyll/commands/serve.rb +10 -5
- data/lib/jekyll/drops/drop.rb +2 -1
- data/lib/jekyll/filters.rb +8 -0
- data/lib/jekyll/frontmatter_defaults.rb +1 -1
- data/lib/jekyll/plugin_manager.rb +1 -1
- data/lib/jekyll/site.rb +2 -2
- data/lib/jekyll/static_file.rb +4 -6
- data/lib/jekyll/tags/highlight.rb +34 -19
- data/lib/jekyll/version.rb +1 -1
- data/lib/site_template/404.html +1 -1
- data/rubocop/jekyll/assert_equal_literal_actual.rb +8 -7
- data/rubocop/jekyll/no_p_allowed.rb +5 -6
- data/rubocop/jekyll/no_puts_allowed.rb +5 -6
- metadata +54 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d429ecde97ed33aec9c33b132f24904b49af207540708c32f63a4643733dda9
|
4
|
+
data.tar.gz: b8241219e23446e5ea9bf4a16e1a27189257bc38c01e1cc1578668c9638bf36f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cf4e479b58a21659d7ca74e2ec3bb8ed24f89916048a0573f2e1c15fa7f44cfa7a535130e9e6233ac831f55ccf14250e686fbb039c64f14e8e03669b144d31c
|
7
|
+
data.tar.gz: 4320b2998e0f80d2afb4a8d6c10f16625ca3fc2f91a380c6ad88ee82e9589f8928fbdcaa89a121ae4c94dd3a8d823c611a3ae1dd75c9799c097c5c10ec4fee28
|
data/.rubocop.yml
CHANGED
@@ -1,35 +1,53 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# This file has been formatted via a Rake Task configuring cops from
|
3
|
+
# RuboCop v1.57.2.
|
4
|
+
#
|
5
|
+
# To add more cops, paste configurations at the end of the file and run
|
6
|
+
# the rake task via `bundle exec rake rubocop:format_config`.
|
7
|
+
# -----------------------------------------------------------------------------
|
3
8
|
|
4
|
-
|
5
|
-
- rubocop-minitest
|
6
|
-
- rubocop-performance
|
7
|
-
- rubocop-rake
|
8
|
-
- rubocop-rspec
|
9
|
-
- ./rubocop/jekyll
|
9
|
+
inherit_from: ".rubocop_todo.yml"
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
require:
|
12
|
+
- "./rubocop/jekyll"
|
13
|
+
- rubocop-minitest
|
14
|
+
- rubocop-performance
|
15
|
+
- rubocop-rake
|
16
|
+
- rubocop-rspec
|
14
17
|
|
18
|
+
# Directive for all cops
|
15
19
|
AllCops:
|
16
20
|
TargetRubyVersion: 2.7
|
17
21
|
Include:
|
18
|
-
|
19
|
-
|
22
|
+
- lib/**/*.rb
|
23
|
+
- test/**/*.rb
|
24
|
+
Exclude:
|
25
|
+
- benchmark/**/*
|
26
|
+
- bin/**/*
|
27
|
+
- exe/**/*
|
28
|
+
- script/**/*
|
29
|
+
- tmp/**/*
|
30
|
+
- vendor/**/*
|
31
|
+
|
32
|
+
# Configure custom cop
|
33
|
+
Jekyll/NoPutsAllowed:
|
20
34
|
Exclude:
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
- vendor/**/*
|
26
|
-
- tmp/**/*
|
35
|
+
- rake/*.rake
|
36
|
+
|
37
|
+
# Configure built-in cops
|
38
|
+
# =======================
|
27
39
|
|
40
|
+
# Gemspec cops
|
41
|
+
# ----------------------------------------
|
28
42
|
Gemspec/DeprecatedAttributeAssignment:
|
29
43
|
Enabled: true
|
44
|
+
Gemspec/DevelopmentDependencies:
|
45
|
+
Enabled: false
|
30
46
|
Gemspec/RequireMFA:
|
31
47
|
Enabled: false
|
32
48
|
|
49
|
+
# Layout cops
|
50
|
+
# ----------------------------------------
|
33
51
|
Layout/BeginEndAlignment:
|
34
52
|
Enabled: true
|
35
53
|
Layout/EmptyComment:
|
@@ -38,6 +56,8 @@ Layout/EmptyLinesAroundAttributeAccessor:
|
|
38
56
|
Enabled: true
|
39
57
|
Layout/EndAlignment:
|
40
58
|
Severity: error
|
59
|
+
Layout/EndOfLine:
|
60
|
+
Enabled: false
|
41
61
|
Layout/FirstArrayElementIndentation:
|
42
62
|
EnforcedStyle: consistent
|
43
63
|
Layout/FirstHashElementIndentation:
|
@@ -54,10 +74,10 @@ Layout/LineEndStringConcatenationIndentation:
|
|
54
74
|
Enabled: true
|
55
75
|
Layout/LineLength:
|
56
76
|
Exclude:
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
77
|
+
- Gemfile
|
78
|
+
- Rakefile
|
79
|
+
- features/**/*.rb
|
80
|
+
- rake/**/*.rake
|
61
81
|
Max: 100
|
62
82
|
Severity: warning
|
63
83
|
Layout/MultilineMethodCallIndentation:
|
@@ -71,8 +91,10 @@ Layout/SpaceBeforeBrackets:
|
|
71
91
|
Layout/SpaceInsideHashLiteralBraces:
|
72
92
|
Enabled: true
|
73
93
|
Exclude:
|
74
|
-
|
94
|
+
- test/**/*.rb
|
75
95
|
|
96
|
+
# Lint cops
|
97
|
+
# ----------------------------------------
|
76
98
|
Lint/AmbiguousAssignment:
|
77
99
|
Enabled: true
|
78
100
|
Lint/AmbiguousOperatorPrecedence:
|
@@ -84,7 +106,7 @@ Lint/BinaryOperatorWithIdenticalOperands:
|
|
84
106
|
Lint/ConstantDefinitionInBlock:
|
85
107
|
Enabled: true
|
86
108
|
Exclude:
|
87
|
-
|
109
|
+
- test/**/*.rb
|
88
110
|
Lint/ConstantOverwrittenInRescue:
|
89
111
|
Enabled: true
|
90
112
|
Lint/DeprecatedConstants:
|
@@ -95,6 +117,10 @@ Lint/DuplicateBranch:
|
|
95
117
|
Enabled: true
|
96
118
|
Lint/DuplicateElsifCondition:
|
97
119
|
Enabled: true
|
120
|
+
Lint/DuplicateMagicComment:
|
121
|
+
Enabled: true
|
122
|
+
Lint/DuplicateMatchPattern:
|
123
|
+
Enabled: true
|
98
124
|
Lint/DuplicateRegexpCharacterClassElement:
|
99
125
|
Enabled: true
|
100
126
|
Lint/DuplicateRequire:
|
@@ -119,11 +145,13 @@ Lint/LambdaWithoutLiteralBlock:
|
|
119
145
|
Enabled: true
|
120
146
|
Lint/MissingSuper:
|
121
147
|
Enabled: false
|
148
|
+
Lint/MixedCaseRange:
|
149
|
+
Enabled: true
|
122
150
|
Lint/MixedRegexpCaptureTypes:
|
123
151
|
Enabled: false
|
124
152
|
Lint/NestedPercentLiteral:
|
125
153
|
Exclude:
|
126
|
-
|
154
|
+
- test/test_site.rb
|
127
155
|
Lint/NoReturnInBeginEndBlocks:
|
128
156
|
Enabled: true
|
129
157
|
Lint/NumberedParameterAssignment:
|
@@ -136,8 +164,12 @@ Lint/RaiseException:
|
|
136
164
|
Enabled: true
|
137
165
|
Lint/RedundantDirGlobSort:
|
138
166
|
Enabled: true
|
167
|
+
Lint/RedundantRegexpQuantifiers:
|
168
|
+
Enabled: true
|
139
169
|
Lint/RedundantSafeNavigation:
|
140
170
|
Enabled: true
|
171
|
+
Lint/RefinementImportMethods:
|
172
|
+
Enabled: true
|
141
173
|
Lint/RequireRangeParentheses:
|
142
174
|
Enabled: true
|
143
175
|
Lint/RequireRelativeSelfPath:
|
@@ -166,32 +198,38 @@ Lint/UnreachableLoop:
|
|
166
198
|
Enabled: true
|
167
199
|
Lint/UselessMethodDefinition:
|
168
200
|
Enabled: true
|
201
|
+
Lint/UselessRuby2Keywords:
|
202
|
+
Enabled: true
|
169
203
|
Lint/UselessTimes:
|
170
204
|
Enabled: true
|
171
205
|
Lint/Void:
|
172
206
|
Exclude:
|
173
|
-
|
207
|
+
- lib/jekyll/site.rb
|
174
208
|
|
209
|
+
# Metrics cops
|
210
|
+
# ----------------------------------------
|
175
211
|
Metrics/AbcSize:
|
176
212
|
Max: 23
|
177
213
|
Metrics/BlockLength:
|
178
214
|
Exclude:
|
179
|
-
|
180
|
-
|
181
|
-
|
215
|
+
- lib/jekyll/configuration.rb
|
216
|
+
- rake/**/*.rake
|
217
|
+
- test/**/*.rb
|
182
218
|
Metrics/ClassLength:
|
183
219
|
Exclude:
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
220
|
+
- features/**/*.rb
|
221
|
+
- lib/jekyll/commands/serve.rb
|
222
|
+
- lib/jekyll/configuration.rb
|
223
|
+
- lib/jekyll/document.rb
|
224
|
+
- lib/jekyll/site.rb
|
225
|
+
- test/**/*.rb
|
190
226
|
Max: 240
|
227
|
+
Metrics/CollectionLiteralLength:
|
228
|
+
Enabled: true
|
191
229
|
Metrics/CyclomaticComplexity:
|
192
230
|
Exclude:
|
193
|
-
|
194
|
-
|
231
|
+
- lib/jekyll/commands/serve.rb
|
232
|
+
- lib/jekyll/utils.rb
|
195
233
|
Max: 11
|
196
234
|
Metrics/MethodLength:
|
197
235
|
CountComments: false
|
@@ -199,58 +237,102 @@ Metrics/MethodLength:
|
|
199
237
|
Severity: error
|
200
238
|
Metrics/ModuleLength:
|
201
239
|
Exclude:
|
202
|
-
|
240
|
+
- lib/jekyll/filters.rb
|
203
241
|
Max: 240
|
204
242
|
Metrics/ParameterLists:
|
205
243
|
Max: 4
|
206
244
|
Metrics/PerceivedComplexity:
|
207
245
|
Max: 13
|
208
246
|
|
247
|
+
# Minitest cops
|
248
|
+
# ----------------------------------------
|
209
249
|
Minitest/AssertEmptyLiteral:
|
210
250
|
Enabled: false
|
211
251
|
Minitest/AssertInDelta:
|
212
252
|
Enabled: true
|
213
|
-
Minitest/AssertionInLifecycleHook:
|
214
|
-
Enabled: true
|
215
253
|
Minitest/AssertKindOf:
|
216
254
|
Enabled: true
|
255
|
+
Minitest/AssertOperator:
|
256
|
+
Enabled: false
|
217
257
|
Minitest/AssertOutput:
|
218
258
|
Enabled: true
|
219
259
|
Minitest/AssertPathExists:
|
220
260
|
Enabled: true
|
261
|
+
Minitest/AssertPredicate:
|
262
|
+
Enabled: false
|
263
|
+
Minitest/AssertRaisesWithRegexpArgument:
|
264
|
+
Enabled: true
|
265
|
+
Minitest/AssertSame:
|
266
|
+
Enabled: true
|
221
267
|
Minitest/AssertSilent:
|
222
268
|
Enabled: true
|
223
269
|
Minitest/AssertWithExpectedArgument:
|
224
270
|
Enabled: true
|
225
|
-
Minitest/
|
271
|
+
Minitest/AssertionInLifecycleHook:
|
226
272
|
Enabled: true
|
227
|
-
Minitest/
|
273
|
+
Minitest/DuplicateTestRun:
|
274
|
+
Enabled: true
|
275
|
+
Minitest/EmptyLineBeforeAssertionMethods:
|
228
276
|
Enabled: false
|
277
|
+
Minitest/LifecycleHooksOrder:
|
278
|
+
Enabled: true
|
279
|
+
Minitest/LiteralAsActualArgument:
|
280
|
+
Enabled: true
|
229
281
|
Minitest/MultipleAssertions:
|
230
282
|
Enabled: true
|
283
|
+
Minitest/NonExecutableTestMethod:
|
284
|
+
Enabled: true
|
285
|
+
Minitest/NonPublicTestMethod:
|
286
|
+
Enabled: true
|
287
|
+
Minitest/RedundantMessageArgument:
|
288
|
+
Enabled: true
|
231
289
|
Minitest/RefuteInDelta:
|
232
290
|
Enabled: true
|
233
291
|
Minitest/RefuteKindOf:
|
234
292
|
Enabled: true
|
293
|
+
Minitest/RefuteOperator:
|
294
|
+
Enabled: false
|
235
295
|
Minitest/RefutePathExists:
|
236
296
|
Enabled: true
|
297
|
+
Minitest/RefutePredicate:
|
298
|
+
Enabled: false
|
299
|
+
Minitest/RefuteSame:
|
300
|
+
Enabled: true
|
301
|
+
Minitest/ReturnInTestMethod:
|
302
|
+
Enabled: true
|
303
|
+
Minitest/SkipEnsure:
|
304
|
+
Enabled: true
|
305
|
+
Minitest/SkipWithoutReason:
|
306
|
+
Enabled: true
|
307
|
+
Minitest/TestFileName:
|
308
|
+
Enabled: true
|
309
|
+
Exclude:
|
310
|
+
- test/helper.rb
|
311
|
+
Minitest/TestMethodName:
|
312
|
+
Enabled: false
|
237
313
|
Minitest/UnreachableAssertion:
|
238
314
|
Enabled: true
|
239
315
|
Minitest/UnspecifiedException:
|
240
316
|
Enabled: true
|
317
|
+
Minitest/UselessAssertion:
|
318
|
+
Enabled: true
|
241
319
|
|
320
|
+
# Naming cops
|
321
|
+
# ----------------------------------------
|
242
322
|
Naming/FileName:
|
243
323
|
Enabled: false
|
244
324
|
Naming/HeredocDelimiterNaming:
|
245
325
|
Exclude:
|
246
|
-
|
326
|
+
- test/**/*.rb
|
247
327
|
Naming/MemoizedInstanceVariableName:
|
248
328
|
Exclude:
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
329
|
+
- lib/jekyll/convertible.rb
|
330
|
+
- lib/jekyll/drops/site_drop.rb
|
331
|
+
- lib/jekyll/drops/unified_payload_drop.rb
|
332
|
+
- lib/jekyll/page_without_a_file.rb
|
253
333
|
|
334
|
+
# Performance cops
|
335
|
+
# ----------------------------------------
|
254
336
|
Performance/AncestorsInclude:
|
255
337
|
Enabled: false
|
256
338
|
Performance/ArraySemiInfiniteRangeSlice:
|
@@ -267,6 +349,8 @@ Performance/ConstantRegexp:
|
|
267
349
|
Enabled: true
|
268
350
|
Performance/MapCompact:
|
269
351
|
Enabled: true
|
352
|
+
Performance/MapMethodChain:
|
353
|
+
Enabled: true
|
270
354
|
Performance/MethodObjectAsBlock:
|
271
355
|
Enabled: true
|
272
356
|
Performance/RedundantEqualityComparisonBlock:
|
@@ -288,23 +372,27 @@ Performance/StringIdentifierArgument:
|
|
288
372
|
Performance/StringInclude:
|
289
373
|
Enabled: true
|
290
374
|
Exclude:
|
291
|
-
|
375
|
+
- lib/jekyll/utils/platforms.rb
|
292
376
|
Performance/Sum:
|
293
377
|
Enabled: true
|
294
378
|
|
379
|
+
# Security cops
|
380
|
+
# ----------------------------------------
|
295
381
|
Security/CompoundHash:
|
296
382
|
Enabled: true
|
297
383
|
Security/IoMethods:
|
298
384
|
Enabled: true
|
299
385
|
Security/MarshalLoad:
|
300
386
|
Exclude:
|
301
|
-
|
302
|
-
|
387
|
+
- lib/jekyll/regenerator.rb
|
388
|
+
- test/**/*.rb
|
303
389
|
Security/YAMLLoad:
|
304
390
|
Exclude:
|
305
|
-
|
306
|
-
|
391
|
+
- features/**/*.rb
|
392
|
+
- test/**/*.rb
|
307
393
|
|
394
|
+
# Style cops
|
395
|
+
# ----------------------------------------
|
308
396
|
Style/AccessModifierDeclarations:
|
309
397
|
Enabled: false
|
310
398
|
Style/AccessorGrouping:
|
@@ -317,21 +405,25 @@ Style/ArgumentsForwarding:
|
|
317
405
|
Enabled: false
|
318
406
|
Style/ArrayCoercion:
|
319
407
|
Enabled: true
|
408
|
+
Style/ArrayIntersect:
|
409
|
+
Enabled: true
|
320
410
|
Style/BisectedAttrAccessor:
|
321
411
|
Enabled: true
|
322
412
|
Style/CaseLikeIf:
|
323
413
|
Enabled: true
|
324
|
-
Style/StringChars:
|
325
|
-
Enabled: true
|
326
414
|
Style/ClassAndModuleChildren:
|
327
415
|
Exclude:
|
328
|
-
|
416
|
+
- test/**/*.rb
|
329
417
|
Style/ClassEqualityComparison:
|
330
418
|
Enabled: true
|
331
419
|
Style/CollectionCompact:
|
332
420
|
Enabled: true
|
333
421
|
Style/CombinableLoops:
|
334
422
|
Enabled: true
|
423
|
+
Style/ConcatArrayLiterals:
|
424
|
+
Enabled: true
|
425
|
+
Style/DirEmpty:
|
426
|
+
Enabled: true
|
335
427
|
Style/DocumentDynamicEvalDefinition:
|
336
428
|
Enabled: true
|
337
429
|
Style/Documentation:
|
@@ -342,25 +434,29 @@ Style/EmptyHeredoc:
|
|
342
434
|
Enabled: true
|
343
435
|
Style/EndlessMethod:
|
344
436
|
Enabled: true
|
437
|
+
Style/EnvHome:
|
438
|
+
Enabled: true
|
439
|
+
Style/ExactRegexpMatch:
|
440
|
+
Enabled: true
|
345
441
|
Style/ExplicitBlockArgument:
|
346
442
|
Enabled: false
|
347
443
|
Style/ExponentialNotation:
|
348
444
|
Enabled: true
|
349
|
-
Style/EnvHome:
|
350
|
-
Enabled: true
|
351
445
|
Style/FetchEnvVar:
|
352
446
|
Enabled: false
|
447
|
+
Style/FileEmpty:
|
448
|
+
Enabled: true
|
353
449
|
Style/FileRead:
|
354
450
|
Enabled: false
|
451
|
+
Style/FileWrite:
|
452
|
+
Enabled: true
|
355
453
|
Style/FormatStringToken:
|
356
454
|
Exclude:
|
357
|
-
|
358
|
-
|
359
|
-
|
455
|
+
- lib/jekyll/liquid_renderer/table.rb
|
456
|
+
- lib/jekyll/profiler.rb
|
457
|
+
- lib/jekyll/utils/ansi.rb
|
360
458
|
Style/FrozenStringLiteralComment:
|
361
459
|
EnforcedStyle: always
|
362
|
-
Style/FileWrite:
|
363
|
-
Enabled: true
|
364
460
|
Style/GlobalStdStream:
|
365
461
|
Enabled: true
|
366
462
|
Style/GuardClause:
|
@@ -368,7 +464,7 @@ Style/GuardClause:
|
|
368
464
|
Style/HashAsLastArrayItem:
|
369
465
|
Enabled: true
|
370
466
|
Style/HashConversion:
|
371
|
-
Enabled: true
|
467
|
+
Enabled: true
|
372
468
|
Style/HashEachMethods:
|
373
469
|
Enabled: true
|
374
470
|
Style/HashExcept:
|
@@ -392,9 +488,11 @@ Style/MapCompactWithConditionalBlock:
|
|
392
488
|
Enabled: true
|
393
489
|
Style/MapToHash:
|
394
490
|
Enabled: true
|
491
|
+
Style/MinMaxComparison:
|
492
|
+
Enabled: true
|
395
493
|
Style/MixinUsage:
|
396
494
|
Exclude:
|
397
|
-
|
495
|
+
- test/helper.rb
|
398
496
|
Style/ModuleFunction:
|
399
497
|
Enabled: false
|
400
498
|
Style/MultilineTernaryOperator:
|
@@ -405,61 +503,94 @@ Style/NestedFileDirname:
|
|
405
503
|
Enabled: true
|
406
504
|
Style/NilLambda:
|
407
505
|
Enabled: true
|
506
|
+
Style/ObjectThen:
|
507
|
+
Enabled: true
|
508
|
+
Style/OperatorMethodCall:
|
509
|
+
Enabled: true
|
408
510
|
Style/OptionalBooleanParameter:
|
409
511
|
Enabled: true
|
410
512
|
Exclude:
|
411
|
-
|
513
|
+
- lib/jekyll/log_adapter.rb
|
412
514
|
Style/PercentLiteralDelimiters:
|
413
515
|
PreferredDelimiters:
|
414
516
|
"%Q": "{}"
|
415
|
-
"%W": ()
|
517
|
+
"%W": "()"
|
416
518
|
"%q": "{}"
|
417
519
|
"%r": "!!"
|
418
|
-
"%s": ()
|
419
|
-
"%w": ()
|
420
|
-
"%x": ()
|
520
|
+
"%s": "()"
|
521
|
+
"%w": "()"
|
522
|
+
"%x": "()"
|
421
523
|
Style/QuotedSymbols:
|
422
524
|
Enabled: true
|
423
525
|
Style/RedundantArgument:
|
424
526
|
Enabled: true
|
527
|
+
Style/RedundantArrayConstructor:
|
528
|
+
Enabled: true
|
425
529
|
Style/RedundantAssignment:
|
426
530
|
Enabled: true
|
531
|
+
Style/RedundantConstantBase:
|
532
|
+
Enabled: true
|
533
|
+
Style/RedundantCurrentDirectoryInPath:
|
534
|
+
Enabled: true
|
535
|
+
Style/RedundantDoubleSplatHashBraces:
|
536
|
+
Enabled: true
|
537
|
+
Style/RedundantEach:
|
538
|
+
Enabled: true
|
427
539
|
Style/RedundantFetchBlock:
|
428
540
|
Enabled: false
|
429
541
|
Style/RedundantFileExtensionInRequire:
|
430
542
|
Enabled: true
|
543
|
+
Style/RedundantFilterChain:
|
544
|
+
Enabled: true
|
545
|
+
Style/RedundantHeredocDelimiterQuotes:
|
546
|
+
Enabled: true
|
431
547
|
Style/RedundantInitialize:
|
432
548
|
Enabled: true
|
433
549
|
Exclude:
|
434
|
-
|
550
|
+
- lib/jekyll/plugin.rb
|
551
|
+
Style/RedundantLineContinuation:
|
552
|
+
Enabled: true
|
553
|
+
Style/RedundantRegexpArgument:
|
554
|
+
Enabled: true
|
435
555
|
Style/RedundantRegexpCharacterClass:
|
436
556
|
Enabled: true
|
557
|
+
Style/RedundantRegexpConstructor:
|
558
|
+
Enabled: true
|
437
559
|
Style/RedundantRegexpEscape:
|
438
560
|
Enabled: true
|
439
561
|
Style/RedundantSelfAssignment:
|
440
562
|
Enabled: true
|
441
563
|
Style/RedundantSelfAssignmentBranch:
|
442
564
|
Enabled: true
|
565
|
+
Style/RedundantStringEscape:
|
566
|
+
Enabled: true
|
443
567
|
Style/RegexpLiteral:
|
444
568
|
EnforcedStyle: percent_r
|
445
569
|
Style/RescueModifier:
|
446
570
|
Enabled: false
|
571
|
+
Style/ReturnNilInPredicateMethodDefinition:
|
572
|
+
Enabled: true
|
447
573
|
Style/SafeNavigation:
|
448
574
|
Exclude:
|
449
|
-
|
575
|
+
- lib/jekyll/document.rb
|
576
|
+
- lib/jekyll/page.rb
|
450
577
|
Style/SignalException:
|
451
578
|
EnforcedStyle: only_raise
|
452
579
|
Style/SingleArgumentDig:
|
453
580
|
Enabled: true
|
581
|
+
Style/SingleLineDoEndBlock:
|
582
|
+
Enabled: true
|
454
583
|
Style/SlicingWithRange:
|
455
584
|
Enabled: false
|
456
585
|
Style/SoleNestedConditional:
|
457
586
|
Enabled: true
|
587
|
+
Style/StringChars:
|
588
|
+
Enabled: true
|
458
589
|
Style/StringConcatenation:
|
459
590
|
Enabled: true
|
460
591
|
Exclude:
|
461
|
-
|
462
|
-
|
592
|
+
- lib/jekyll/commands/*.rb
|
593
|
+
- test/**/*.rb
|
463
594
|
Style/StringLiterals:
|
464
595
|
EnforcedStyle: double_quotes
|
465
596
|
Style/StringLiteralsInInterpolation:
|
@@ -28,7 +28,7 @@ module Jekyll
|
|
28
28
|
"the server is started.",],
|
29
29
|
"livereload" => ["-l", "--livereload",
|
30
30
|
"Use LiveReload to automatically refresh browsers",],
|
31
|
-
"livereload_ignore" => ["--livereload-ignore
|
31
|
+
"livereload_ignore" => ["--livereload-ignore GLOB1[,GLOB2[,...]]",
|
32
32
|
Array,
|
33
33
|
"Files for LiveReload to ignore. " \
|
34
34
|
"Remember to quote the values so your shell " \
|
@@ -71,7 +71,6 @@ module Jekyll
|
|
71
71
|
end
|
72
72
|
|
73
73
|
cmd.action do |_, opts|
|
74
|
-
opts["livereload_port"] ||= LIVERELOAD_PORT
|
75
74
|
opts["serving"] = true
|
76
75
|
opts["watch"] = true unless opts.key?("watch")
|
77
76
|
|
@@ -94,6 +93,7 @@ module Jekyll
|
|
94
93
|
opts = configuration_from_options(opts)
|
95
94
|
destination = opts["destination"]
|
96
95
|
if opts["livereload"]
|
96
|
+
opts["livereload_port"] ||= LIVERELOAD_PORT
|
97
97
|
validate_options(opts)
|
98
98
|
register_reload_hooks(opts)
|
99
99
|
end
|
@@ -138,7 +138,6 @@ module Jekyll
|
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
141
|
-
# rubocop:disable Metrics/AbcSize
|
142
141
|
def register_reload_hooks(opts)
|
143
142
|
require_relative "serve/live_reload_reactor"
|
144
143
|
@reload_reactor = LiveReloadReactor.new
|
@@ -160,7 +159,7 @@ module Jekyll
|
|
160
159
|
if @changed_pages && @reload_reactor && @reload_reactor.running?
|
161
160
|
ignore, @changed_pages = @changed_pages.partition do |p|
|
162
161
|
Array(opts["livereload_ignore"]).any? do |filter|
|
163
|
-
File.fnmatch(filter,
|
162
|
+
File.fnmatch(filter, p.relative_path)
|
164
163
|
end
|
165
164
|
end
|
166
165
|
Jekyll.logger.debug "LiveReload:", "Ignoring #{ignore.map(&:relative_path)}"
|
@@ -169,7 +168,6 @@ module Jekyll
|
|
169
168
|
@changed_pages = nil
|
170
169
|
end
|
171
170
|
end
|
172
|
-
# rubocop:enable Metrics/AbcSize
|
173
171
|
|
174
172
|
# Do a base pre-setup of WEBRick so that everything is in place
|
175
173
|
# when we get ready to party, checking for an setting up an error page
|
@@ -274,12 +272,19 @@ module Jekyll
|
|
274
272
|
def boot_or_detach(server, opts)
|
275
273
|
if opts["detach"]
|
276
274
|
pid = Process.fork do
|
275
|
+
# Detach the process from controlling terminal
|
276
|
+
$stdin.reopen("/dev/null", "r")
|
277
|
+
$stdout.reopen("/dev/null", "w")
|
278
|
+
$stderr.reopen("/dev/null", "w")
|
277
279
|
server.start
|
278
280
|
end
|
279
281
|
|
280
282
|
Process.detach(pid)
|
281
283
|
Jekyll.logger.info "Server detached with pid '#{pid}'.",
|
282
284
|
"Run `pkill -f jekyll' or `kill -9 #{pid}' to stop the server."
|
285
|
+
|
286
|
+
# Exit without running `at_exit` inherited by the forked process.
|
287
|
+
Process.exit! 0
|
283
288
|
else
|
284
289
|
t = Thread.new { server.start }
|
285
290
|
trap("INT") { server.shutdown }
|
data/lib/jekyll/drops/drop.rb
CHANGED
@@ -280,7 +280,8 @@ module Jekyll
|
|
280
280
|
return self[key] if key?(key)
|
281
281
|
raise KeyError, %(key not found: "#{key}") if default.nil? && block.nil?
|
282
282
|
return yield(key) unless block.nil?
|
283
|
-
|
283
|
+
|
284
|
+
default unless default.nil?
|
284
285
|
end
|
285
286
|
|
286
287
|
private
|
data/lib/jekyll/filters.rb
CHANGED
@@ -441,6 +441,14 @@ module Jekyll
|
|
441
441
|
property.split(".").reduce(liquid_data) do |data, key|
|
442
442
|
data.respond_to?(:[]) && data[key]
|
443
443
|
end
|
444
|
+
rescue TypeError => e
|
445
|
+
msg = if liquid_data.is_a?(Array)
|
446
|
+
"Error accessing object (#{liquid_data.to_s[0...20]}) with given key. Expected an " \
|
447
|
+
"integer but got #{property.inspect} instead."
|
448
|
+
else
|
449
|
+
e.message
|
450
|
+
end
|
451
|
+
raise e, msg
|
444
452
|
end
|
445
453
|
|
446
454
|
FLOAT_LIKE = %r!\A\s*-?(?:\d+\.?\d*|\.\d+)\s*\Z!.freeze
|
@@ -109,7 +109,7 @@ module Jekyll
|
|
109
109
|
sanitized_path = sanitize_path(path)
|
110
110
|
|
111
111
|
if rel_scope_path.include?("*")
|
112
|
-
|
112
|
+
File.fnmatch?(strip_collections_dir(rel_scope_path), sanitized_path)
|
113
113
|
else
|
114
114
|
path_is_subpath?(sanitized_path, strip_collections_dir(rel_scope_path))
|
115
115
|
end
|
@@ -83,7 +83,7 @@ module Jekyll
|
|
83
83
|
# Returns an array of strings, each string being the name of a gem name
|
84
84
|
# that is allowed to be used.
|
85
85
|
def whitelist
|
86
|
-
@whitelist ||=
|
86
|
+
@whitelist ||= [site.config["whitelist"]].flatten
|
87
87
|
end
|
88
88
|
|
89
89
|
# Require all .rb files if safe mode is off
|
data/lib/jekyll/site.rb
CHANGED
@@ -49,7 +49,7 @@ module Jekyll
|
|
49
49
|
|
50
50
|
%w(safe lsi highlighter baseurl exclude include future unpublished
|
51
51
|
show_drafts limit_posts keep_files).each do |opt|
|
52
|
-
send("#{opt}=", config[opt])
|
52
|
+
send(:"#{opt}=", config[opt])
|
53
53
|
end
|
54
54
|
|
55
55
|
# keep using `gems` to avoid breaking change
|
@@ -486,7 +486,7 @@ module Jekyll
|
|
486
486
|
# Returns nothing
|
487
487
|
def limit_posts!
|
488
488
|
if limit_posts.positive?
|
489
|
-
limit = posts.docs.length
|
489
|
+
limit = [posts.docs.length, limit_posts].min
|
490
490
|
posts.docs = posts.docs[-limit, limit]
|
491
491
|
end
|
492
492
|
end
|
data/lib/jekyll/static_file.rb
CHANGED
@@ -4,7 +4,9 @@ module Jekyll
|
|
4
4
|
class StaticFile
|
5
5
|
extend Forwardable
|
6
6
|
|
7
|
-
attr_reader :relative_path, :extname,
|
7
|
+
attr_reader :relative_path, :extname,
|
8
|
+
:type, # Returns the type of the collection if present, nil otherwise.
|
9
|
+
:name
|
8
10
|
|
9
11
|
def_delegator :to_liquid, :to_json, :to_json
|
10
12
|
|
@@ -34,6 +36,7 @@ module Jekyll
|
|
34
36
|
@collection = collection
|
35
37
|
@relative_path = File.join(*[@dir, @name].compact)
|
36
38
|
@extname = File.extname(@name)
|
39
|
+
@type = @collection&.label&.to_sym
|
37
40
|
end
|
38
41
|
# rubocop: enable Metrics/ParameterLists
|
39
42
|
|
@@ -171,11 +174,6 @@ module Jekyll
|
|
171
174
|
end
|
172
175
|
end
|
173
176
|
|
174
|
-
# Returns the type of the collection if present, nil otherwise.
|
175
|
-
def type
|
176
|
-
@type ||= @collection.nil? ? nil : @collection.label.to_sym
|
177
|
-
end
|
178
|
-
|
179
177
|
# Returns the front matter defaults defined for the file's URL and/or type
|
180
178
|
# as defined in _config.yml.
|
181
179
|
def defaults
|
@@ -23,7 +23,9 @@ module Jekyll
|
|
23
23
|
|
24
24
|
#{markup}
|
25
25
|
|
26
|
-
Valid syntax: highlight <lang> [linenos]
|
26
|
+
Valid syntax: highlight <lang> [linenos] [mark_lines="3 4 5"]
|
27
|
+
|
28
|
+
See https://jekyllrb.com/docs/liquid/tags/#code-snippet-highlighting for more details.
|
27
29
|
MSG
|
28
30
|
end
|
29
31
|
end
|
@@ -80,32 +82,45 @@ module Jekyll
|
|
80
82
|
|
81
83
|
def render_rouge(code)
|
82
84
|
require "rouge"
|
83
|
-
formatter =
|
84
|
-
if @highlight_options[:
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
:css_class => "highlight",
|
89
|
-
:gutter_class => "gutter",
|
90
|
-
:code_class => "code",
|
91
|
-
}
|
92
|
-
)
|
93
|
-
end
|
94
|
-
lexer = ::Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
|
85
|
+
formatter = Rouge::Formatters::HTML.new
|
86
|
+
formatter = line_highlighter_formatter(formatter) if @highlight_options[:mark_lines]
|
87
|
+
formatter = table_formatter(formatter) if @highlight_options[:linenos]
|
88
|
+
|
89
|
+
lexer = Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
|
95
90
|
formatter.format(lexer.lex(code))
|
96
91
|
end
|
97
92
|
|
93
|
+
def line_highlighter_formatter(formatter)
|
94
|
+
Rouge::Formatters::HTMLLineHighlighter.new(
|
95
|
+
formatter,
|
96
|
+
:highlight_lines => mark_lines
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
100
|
+
def mark_lines
|
101
|
+
value = @highlight_options[:mark_lines]
|
102
|
+
return value.map(&:to_i) if value.is_a?(Array)
|
103
|
+
|
104
|
+
raise SyntaxError, "Syntax Error for mark_lines declaration. Expected a " \
|
105
|
+
"double-quoted list of integers."
|
106
|
+
end
|
107
|
+
|
108
|
+
def table_formatter(formatter)
|
109
|
+
Rouge::Formatters::HTMLTable.new(
|
110
|
+
formatter,
|
111
|
+
:css_class => "highlight",
|
112
|
+
:gutter_class => "gutter",
|
113
|
+
:code_class => "code"
|
114
|
+
)
|
115
|
+
end
|
116
|
+
|
98
117
|
def render_codehighlighter(code)
|
99
118
|
h(code).strip
|
100
119
|
end
|
101
120
|
|
102
121
|
def add_code_tag(code)
|
103
|
-
|
104
|
-
|
105
|
-
"data-lang=\"#{@lang}\"",
|
106
|
-
].join(" ")
|
107
|
-
"<figure class=\"highlight\"><pre><code #{code_attributes}>" \
|
108
|
-
"#{code.chomp}</code></pre></figure>"
|
122
|
+
code_attrs = %(class="language-#{@lang.tr("+", "-")}" data-lang="#{@lang}")
|
123
|
+
%(<figure class="highlight"><pre><code #{code_attrs}>#{code.chomp}</code></pre></figure>)
|
109
124
|
end
|
110
125
|
end
|
111
126
|
end
|
data/lib/jekyll/version.rb
CHANGED
data/lib/site_template/404.html
CHANGED
@@ -26,8 +26,11 @@ module RuboCop
|
|
26
26
|
# @alpha.omega
|
27
27
|
# )
|
28
28
|
#
|
29
|
-
class AssertEqualLiteralActual <
|
30
|
-
|
29
|
+
class AssertEqualLiteralActual < Base
|
30
|
+
extend AutoCorrector
|
31
|
+
|
32
|
+
MSG = "Provide the 'expected value' as the first argument to `assert_equal`."
|
33
|
+
RESTRICT_ON_SEND = %i[assert_equal].freeze
|
31
34
|
|
32
35
|
SIMPLE_LITERALS = %i(
|
33
36
|
true
|
@@ -61,12 +64,10 @@ module RuboCop
|
|
61
64
|
|
62
65
|
def on_send(node)
|
63
66
|
return unless literal_actual?(node) || literal_actual_with_msg?(node)
|
64
|
-
add_offense(node, location: :expression)
|
65
|
-
end
|
66
67
|
|
67
|
-
|
68
|
-
|
69
|
-
corrector.replace(
|
68
|
+
range = node.loc.expression
|
69
|
+
add_offense(range) do |corrector|
|
70
|
+
corrector.replace(range, replacement(node))
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
@@ -1,20 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "rubocop"
|
4
|
-
|
5
3
|
module RuboCop
|
6
4
|
module Cop
|
7
5
|
module Jekyll
|
8
|
-
class NoPAllowed <
|
9
|
-
MSG = "Avoid using `p` to print things. Use `Jekyll.logger` instead."
|
6
|
+
class NoPAllowed < Base
|
7
|
+
MSG = "Avoid using `p` to print things. Use `Jekyll.logger` instead."
|
8
|
+
RESTRICT_ON_SEND = %i[p].freeze
|
10
9
|
|
11
10
|
def_node_search :p_called?, <<-PATTERN
|
12
|
-
|
11
|
+
(send _ :p _)
|
13
12
|
PATTERN
|
14
13
|
|
15
14
|
def on_send(node)
|
16
15
|
if p_called?(node)
|
17
|
-
add_offense(node
|
16
|
+
add_offense(node.loc.selector)
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
@@ -1,20 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "rubocop"
|
4
|
-
|
5
3
|
module RuboCop
|
6
4
|
module Cop
|
7
5
|
module Jekyll
|
8
|
-
class NoPutsAllowed <
|
9
|
-
MSG = "Avoid using `puts` to print things. Use `Jekyll.logger` instead."
|
6
|
+
class NoPutsAllowed < Base
|
7
|
+
MSG = "Avoid using `puts` to print things. Use `Jekyll.logger` instead."
|
8
|
+
RESTRICT_ON_SEND = %i[puts].freeze
|
10
9
|
|
11
10
|
def_node_search :puts_called?, <<-PATTERN
|
12
|
-
|
11
|
+
(send nil? :puts _)
|
13
12
|
PATTERN
|
14
13
|
|
15
14
|
def on_send(node)
|
16
15
|
if puts_called?(node)
|
17
|
-
add_offense(node
|
16
|
+
add_offense(node.loc.selector)
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
8
8
|
- Parker Moore
|
9
9
|
- Matt Rogers
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2025-01-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -26,6 +26,20 @@ dependencies:
|
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '2.4'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: base64
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0.2'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0.2'
|
29
43
|
- !ruby/object:Gem::Dependency
|
30
44
|
name: colorator
|
31
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -40,6 +54,20 @@ dependencies:
|
|
40
54
|
- - "~>"
|
41
55
|
- !ruby/object:Gem::Version
|
42
56
|
version: '1.0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: csv
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '3.0'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '3.0'
|
43
71
|
- !ruby/object:Gem::Dependency
|
44
72
|
name: em-websocket
|
45
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,6 +130,20 @@ dependencies:
|
|
102
130
|
- - "~>"
|
103
131
|
- !ruby/object:Gem::Version
|
104
132
|
version: '2.0'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: json
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '2.6'
|
140
|
+
type: :runtime
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '2.6'
|
105
147
|
- !ruby/object:Gem::Dependency
|
106
148
|
name: kramdown
|
107
149
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,22 +196,22 @@ dependencies:
|
|
154
196
|
name: mercenary
|
155
197
|
requirement: !ruby/object:Gem::Requirement
|
156
198
|
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0.3'
|
157
202
|
- - ">="
|
158
203
|
- !ruby/object:Gem::Version
|
159
204
|
version: 0.3.6
|
160
|
-
- - "<"
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
version: '0.5'
|
163
205
|
type: :runtime
|
164
206
|
prerelease: false
|
165
207
|
version_requirements: !ruby/object:Gem::Requirement
|
166
208
|
requirements:
|
209
|
+
- - "~>"
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: '0.3'
|
167
212
|
- - ">="
|
168
213
|
- !ruby/object:Gem::Version
|
169
214
|
version: 0.3.6
|
170
|
-
- - "<"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '0.5'
|
173
215
|
- !ruby/object:Gem::Dependency
|
174
216
|
name: pathutil
|
175
217
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,7 +436,7 @@ metadata:
|
|
394
436
|
bug_tracker_uri: https://github.com/jekyll/jekyll/issues
|
395
437
|
changelog_uri: https://github.com/jekyll/jekyll/releases
|
396
438
|
homepage_uri: https://jekyllrb.com
|
397
|
-
post_install_message:
|
439
|
+
post_install_message:
|
398
440
|
rdoc_options:
|
399
441
|
- "--charset=UTF-8"
|
400
442
|
require_paths:
|
@@ -403,7 +445,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
403
445
|
requirements:
|
404
446
|
- - ">="
|
405
447
|
- !ruby/object:Gem::Version
|
406
|
-
version: 2.
|
448
|
+
version: 2.7.0
|
407
449
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
408
450
|
requirements:
|
409
451
|
- - ">="
|
@@ -411,7 +453,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
411
453
|
version: 2.7.0
|
412
454
|
requirements: []
|
413
455
|
rubygems_version: 3.1.6
|
414
|
-
signing_key:
|
456
|
+
signing_key:
|
415
457
|
specification_version: 4
|
416
458
|
summary: A simple, blog aware, static site generator.
|
417
459
|
test_files: []
|