jekyll 4.3.4 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|