jekyll 4.2.1 → 4.3.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 +474 -350
- data/LICENSE +21 -21
- data/README.markdown +83 -86
- data/exe/jekyll +57 -57
- data/lib/blank_template/_config.yml +3 -3
- data/lib/blank_template/_layouts/default.html +12 -12
- data/lib/blank_template/_sass/main.scss +9 -9
- data/lib/blank_template/assets/css/main.scss +4 -4
- data/lib/blank_template/index.md +8 -8
- data/lib/jekyll/cache.rb +186 -190
- data/lib/jekyll/cleaner.rb +111 -111
- data/lib/jekyll/collection.rb +310 -309
- data/lib/jekyll/command.rb +105 -105
- data/lib/jekyll/commands/build.rb +82 -93
- data/lib/jekyll/commands/clean.rb +44 -45
- data/lib/jekyll/commands/doctor.rb +177 -177
- data/lib/jekyll/commands/help.rb +34 -34
- data/lib/jekyll/commands/new.rb +168 -169
- data/lib/jekyll/commands/new_theme.rb +39 -40
- data/lib/jekyll/commands/serve/live_reload_reactor.rb +119 -122
- data/lib/jekyll/commands/serve/livereload_assets/livereload.js +1183 -1183
- data/lib/jekyll/commands/serve/mime_types_charset.json +71 -0
- data/lib/jekyll/commands/serve/servlet.rb +206 -202
- data/lib/jekyll/commands/serve/websockets.rb +81 -81
- data/lib/jekyll/commands/serve.rb +367 -362
- data/lib/jekyll/configuration.rb +313 -313
- data/lib/jekyll/converter.rb +54 -54
- data/lib/jekyll/converters/identity.rb +41 -41
- data/lib/jekyll/converters/markdown/kramdown_parser.rb +197 -199
- data/lib/jekyll/converters/markdown.rb +113 -113
- data/lib/jekyll/converters/smartypants.rb +70 -70
- data/lib/jekyll/convertible.rb +257 -257
- data/lib/jekyll/data_entry.rb +83 -0
- data/lib/jekyll/data_hash.rb +61 -0
- data/lib/jekyll/deprecator.rb +50 -50
- data/lib/jekyll/document.rb +543 -544
- data/lib/jekyll/drops/collection_drop.rb +20 -20
- data/lib/jekyll/drops/document_drop.rb +71 -70
- data/lib/jekyll/drops/drop.rb +293 -293
- data/lib/jekyll/drops/excerpt_drop.rb +23 -19
- data/lib/jekyll/drops/jekyll_drop.rb +32 -32
- data/lib/jekyll/drops/site_drop.rb +71 -66
- data/lib/jekyll/drops/static_file_drop.rb +14 -14
- data/lib/jekyll/drops/theme_drop.rb +36 -0
- data/lib/jekyll/drops/unified_payload_drop.rb +30 -26
- data/lib/jekyll/drops/url_drop.rb +140 -140
- data/lib/jekyll/entry_filter.rb +117 -121
- data/lib/jekyll/errors.rb +20 -20
- data/lib/jekyll/excerpt.rb +200 -201
- data/lib/jekyll/external.rb +75 -79
- data/lib/jekyll/filters/date_filters.rb +110 -110
- data/lib/jekyll/filters/grouping_filters.rb +64 -64
- data/lib/jekyll/filters/url_filters.rb +98 -98
- data/lib/jekyll/filters.rb +532 -535
- data/lib/jekyll/frontmatter_defaults.rb +238 -240
- data/lib/jekyll/generator.rb +5 -5
- data/lib/jekyll/hooks.rb +107 -107
- data/lib/jekyll/inclusion.rb +32 -32
- data/lib/jekyll/layout.rb +55 -67
- data/lib/jekyll/liquid_extensions.rb +22 -22
- data/lib/jekyll/liquid_renderer/file.rb +77 -77
- data/lib/jekyll/liquid_renderer/table.rb +55 -55
- data/lib/jekyll/liquid_renderer.rb +80 -80
- data/lib/jekyll/log_adapter.rb +151 -151
- data/lib/jekyll/mime.types +939 -866
- data/lib/jekyll/page.rb +215 -217
- data/lib/jekyll/page_excerpt.rb +25 -25
- data/lib/jekyll/page_without_a_file.rb +14 -14
- data/lib/jekyll/path_manager.rb +74 -74
- data/lib/jekyll/plugin.rb +92 -92
- data/lib/jekyll/plugin_manager.rb +123 -115
- data/lib/jekyll/profiler.rb +55 -58
- data/lib/jekyll/publisher.rb +23 -23
- data/lib/jekyll/reader.rb +209 -192
- data/lib/jekyll/readers/collection_reader.rb +23 -23
- data/lib/jekyll/readers/data_reader.rb +116 -79
- data/lib/jekyll/readers/layout_reader.rb +62 -62
- data/lib/jekyll/readers/page_reader.rb +25 -25
- data/lib/jekyll/readers/post_reader.rb +85 -85
- data/lib/jekyll/readers/static_file_reader.rb +25 -25
- data/lib/jekyll/readers/theme_assets_reader.rb +52 -52
- data/lib/jekyll/regenerator.rb +195 -195
- data/lib/jekyll/related_posts.rb +52 -52
- data/lib/jekyll/renderer.rb +263 -265
- data/lib/jekyll/site.rb +582 -551
- data/lib/jekyll/static_file.rb +205 -208
- data/lib/jekyll/stevenson.rb +60 -60
- data/lib/jekyll/tags/highlight.rb +114 -110
- data/lib/jekyll/tags/include.rb +275 -275
- data/lib/jekyll/tags/link.rb +42 -42
- data/lib/jekyll/tags/post_url.rb +106 -106
- data/lib/jekyll/theme.rb +90 -86
- data/lib/jekyll/theme_builder.rb +121 -121
- data/lib/jekyll/url.rb +167 -167
- data/lib/jekyll/utils/ansi.rb +57 -57
- data/lib/jekyll/utils/exec.rb +26 -26
- data/lib/jekyll/utils/internet.rb +37 -37
- data/lib/jekyll/utils/platforms.rb +67 -67
- data/lib/jekyll/utils/thread_event.rb +31 -31
- data/lib/jekyll/utils/win_tz.rb +46 -75
- data/lib/jekyll/utils.rb +378 -367
- data/lib/jekyll/version.rb +5 -5
- data/lib/jekyll.rb +197 -195
- data/lib/site_template/.gitignore +5 -5
- data/lib/site_template/404.html +25 -25
- data/lib/site_template/_config.yml +55 -55
- data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +29 -29
- data/lib/site_template/about.markdown +18 -18
- data/lib/site_template/index.markdown +6 -6
- data/lib/theme_template/CODE_OF_CONDUCT.md.erb +74 -74
- data/lib/theme_template/Gemfile +4 -4
- data/lib/theme_template/LICENSE.txt.erb +21 -21
- data/lib/theme_template/README.md.erb +50 -52
- data/lib/theme_template/_layouts/default.html +1 -1
- data/lib/theme_template/_layouts/page.html +5 -5
- data/lib/theme_template/_layouts/post.html +5 -5
- data/lib/theme_template/example/_config.yml.erb +1 -1
- data/lib/theme_template/example/_post.md +12 -12
- data/lib/theme_template/example/index.html +14 -14
- data/lib/theme_template/example/style.scss +7 -7
- data/lib/theme_template/gitignore.erb +6 -6
- data/lib/theme_template/theme.gemspec.erb +16 -16
- data/rubocop/jekyll/assert_equal_literal_actual.rb +149 -149
- data/rubocop/jekyll/no_p_allowed.rb +23 -23
- data/rubocop/jekyll/no_puts_allowed.rb +23 -23
- data/rubocop/jekyll.rb +5 -5
- metadata +62 -14
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RuboCop
|
|
4
|
-
module Cop
|
|
5
|
-
module Jekyll
|
|
6
|
-
# Checks for `assert_equal(exp, act, msg = nil)` calls containing literal values as
|
|
7
|
-
# second argument. The second argument should ideally be a method called on the tested
|
|
8
|
-
# instance.
|
|
9
|
-
#
|
|
10
|
-
# @example
|
|
11
|
-
# # bad
|
|
12
|
-
# assert_equal @foo.bar, "foobar"
|
|
13
|
-
# assert_equal @alpha.beta, { "foo" => "bar", "lorem" => "ipsum" }
|
|
14
|
-
# assert_equal @alpha.omega, ["foobar", "lipsum"]
|
|
15
|
-
#
|
|
16
|
-
# # good
|
|
17
|
-
# assert_equal "foobar", @foo.bar
|
|
18
|
-
#
|
|
19
|
-
# assert_equal(
|
|
20
|
-
# { "foo" => "bar", "lorem" => "ipsum" },
|
|
21
|
-
# @alpha.beta
|
|
22
|
-
# )
|
|
23
|
-
#
|
|
24
|
-
# assert_equal(
|
|
25
|
-
# ["foobar", "lipsum"],
|
|
26
|
-
# @alpha.omega
|
|
27
|
-
# )
|
|
28
|
-
#
|
|
29
|
-
class AssertEqualLiteralActual < Cop
|
|
30
|
-
MSG = "Provide the 'expected value' as the first argument to `assert_equal`.".freeze
|
|
31
|
-
|
|
32
|
-
SIMPLE_LITERALS = %i(
|
|
33
|
-
true
|
|
34
|
-
false
|
|
35
|
-
nil
|
|
36
|
-
int
|
|
37
|
-
float
|
|
38
|
-
str
|
|
39
|
-
sym
|
|
40
|
-
complex
|
|
41
|
-
rational
|
|
42
|
-
regopt
|
|
43
|
-
).freeze
|
|
44
|
-
|
|
45
|
-
COMPLEX_LITERALS = %i(
|
|
46
|
-
array
|
|
47
|
-
hash
|
|
48
|
-
pair
|
|
49
|
-
irange
|
|
50
|
-
erange
|
|
51
|
-
regexp
|
|
52
|
-
).freeze
|
|
53
|
-
|
|
54
|
-
def_node_matcher :literal_actual?, <<-PATTERN
|
|
55
|
-
(send nil? :assert_equal $(send ...) $#literal?)
|
|
56
|
-
PATTERN
|
|
57
|
-
|
|
58
|
-
def_node_matcher :literal_actual_with_msg?, <<-PATTERN
|
|
59
|
-
(send nil? :assert_equal $(send ...) $#literal? $#opt_msg?)
|
|
60
|
-
PATTERN
|
|
61
|
-
|
|
62
|
-
def on_send(node)
|
|
63
|
-
return unless literal_actual?(node) || literal_actual_with_msg?(node)
|
|
64
|
-
add_offense(node, location: :expression)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def autocorrect(node)
|
|
68
|
-
lambda do |corrector|
|
|
69
|
-
corrector.replace(node.loc.expression, replacement(node))
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
private
|
|
74
|
-
|
|
75
|
-
def opt_msg?(node)
|
|
76
|
-
node&.source
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# This is not implement using a NodePattern because it seems
|
|
80
|
-
# to not be able to match against an explicit (nil) sexp
|
|
81
|
-
def literal?(node)
|
|
82
|
-
node && (simple_literal?(node) || complex_literal?(node))
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def simple_literal?(node)
|
|
86
|
-
SIMPLE_LITERALS.include?(node.type)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def complex_literal?(node)
|
|
90
|
-
COMPLEX_LITERALS.include?(node.type) &&
|
|
91
|
-
node.each_child_node.all?(&method(:literal?))
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def replacement(node)
|
|
95
|
-
_, _, first_param, second_param, optional_param = *node
|
|
96
|
-
|
|
97
|
-
replaced_text = \
|
|
98
|
-
if second_param.type == :hash
|
|
99
|
-
replace_hash_with_variable(first_param.source, second_param.source)
|
|
100
|
-
elsif second_param.type == :array && second_param.source != "[]"
|
|
101
|
-
replace_array_with_variable(first_param.source, second_param.source)
|
|
102
|
-
else
|
|
103
|
-
replace_based_on_line_length(first_param.source, second_param.source)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
return "#{replaced_text}, #{optional_param.source}" if optional_param
|
|
107
|
-
replaced_text
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def replace_based_on_line_length(first_expression, second_expression)
|
|
111
|
-
result = "assert_equal #{second_expression}, #{first_expression}"
|
|
112
|
-
return result if result.length < 80
|
|
113
|
-
|
|
114
|
-
# fold long lines independent of Rubocop configuration for better readability
|
|
115
|
-
<<~TEXT
|
|
116
|
-
assert_equal(
|
|
117
|
-
#{second_expression},
|
|
118
|
-
#{first_expression}
|
|
119
|
-
)
|
|
120
|
-
TEXT
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
def replace_hash_with_variable(first_expression, second_expression)
|
|
124
|
-
expect_expression = if second_expression.start_with?("{")
|
|
125
|
-
second_expression
|
|
126
|
-
else
|
|
127
|
-
"{#{second_expression}}"
|
|
128
|
-
end
|
|
129
|
-
<<~TEXT
|
|
130
|
-
expected = #{expect_expression}
|
|
131
|
-
assert_equal expected, #{first_expression}
|
|
132
|
-
TEXT
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
def replace_array_with_variable(first_expression, second_expression)
|
|
136
|
-
expect_expression = if second_expression.start_with?("%")
|
|
137
|
-
second_expression
|
|
138
|
-
else
|
|
139
|
-
Array(second_expression)
|
|
140
|
-
end
|
|
141
|
-
<<~TEXT
|
|
142
|
-
expected = #{expect_expression}
|
|
143
|
-
assert_equal expected, #{first_expression}
|
|
144
|
-
TEXT
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RuboCop
|
|
4
|
+
module Cop
|
|
5
|
+
module Jekyll
|
|
6
|
+
# Checks for `assert_equal(exp, act, msg = nil)` calls containing literal values as
|
|
7
|
+
# second argument. The second argument should ideally be a method called on the tested
|
|
8
|
+
# instance.
|
|
9
|
+
#
|
|
10
|
+
# @example
|
|
11
|
+
# # bad
|
|
12
|
+
# assert_equal @foo.bar, "foobar"
|
|
13
|
+
# assert_equal @alpha.beta, { "foo" => "bar", "lorem" => "ipsum" }
|
|
14
|
+
# assert_equal @alpha.omega, ["foobar", "lipsum"]
|
|
15
|
+
#
|
|
16
|
+
# # good
|
|
17
|
+
# assert_equal "foobar", @foo.bar
|
|
18
|
+
#
|
|
19
|
+
# assert_equal(
|
|
20
|
+
# { "foo" => "bar", "lorem" => "ipsum" },
|
|
21
|
+
# @alpha.beta
|
|
22
|
+
# )
|
|
23
|
+
#
|
|
24
|
+
# assert_equal(
|
|
25
|
+
# ["foobar", "lipsum"],
|
|
26
|
+
# @alpha.omega
|
|
27
|
+
# )
|
|
28
|
+
#
|
|
29
|
+
class AssertEqualLiteralActual < Cop
|
|
30
|
+
MSG = "Provide the 'expected value' as the first argument to `assert_equal`.".freeze
|
|
31
|
+
|
|
32
|
+
SIMPLE_LITERALS = %i(
|
|
33
|
+
true
|
|
34
|
+
false
|
|
35
|
+
nil
|
|
36
|
+
int
|
|
37
|
+
float
|
|
38
|
+
str
|
|
39
|
+
sym
|
|
40
|
+
complex
|
|
41
|
+
rational
|
|
42
|
+
regopt
|
|
43
|
+
).freeze
|
|
44
|
+
|
|
45
|
+
COMPLEX_LITERALS = %i(
|
|
46
|
+
array
|
|
47
|
+
hash
|
|
48
|
+
pair
|
|
49
|
+
irange
|
|
50
|
+
erange
|
|
51
|
+
regexp
|
|
52
|
+
).freeze
|
|
53
|
+
|
|
54
|
+
def_node_matcher :literal_actual?, <<-PATTERN
|
|
55
|
+
(send nil? :assert_equal $(send ...) $#literal?)
|
|
56
|
+
PATTERN
|
|
57
|
+
|
|
58
|
+
def_node_matcher :literal_actual_with_msg?, <<-PATTERN
|
|
59
|
+
(send nil? :assert_equal $(send ...) $#literal? $#opt_msg?)
|
|
60
|
+
PATTERN
|
|
61
|
+
|
|
62
|
+
def on_send(node)
|
|
63
|
+
return unless literal_actual?(node) || literal_actual_with_msg?(node)
|
|
64
|
+
add_offense(node, location: :expression)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def autocorrect(node)
|
|
68
|
+
lambda do |corrector|
|
|
69
|
+
corrector.replace(node.loc.expression, replacement(node))
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
private
|
|
74
|
+
|
|
75
|
+
def opt_msg?(node)
|
|
76
|
+
node&.source
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# This is not implement using a NodePattern because it seems
|
|
80
|
+
# to not be able to match against an explicit (nil) sexp
|
|
81
|
+
def literal?(node)
|
|
82
|
+
node && (simple_literal?(node) || complex_literal?(node))
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def simple_literal?(node)
|
|
86
|
+
SIMPLE_LITERALS.include?(node.type)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def complex_literal?(node)
|
|
90
|
+
COMPLEX_LITERALS.include?(node.type) &&
|
|
91
|
+
node.each_child_node.all?(&method(:literal?))
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def replacement(node)
|
|
95
|
+
_, _, first_param, second_param, optional_param = *node
|
|
96
|
+
|
|
97
|
+
replaced_text = \
|
|
98
|
+
if second_param.type == :hash
|
|
99
|
+
replace_hash_with_variable(first_param.source, second_param.source)
|
|
100
|
+
elsif second_param.type == :array && second_param.source != "[]"
|
|
101
|
+
replace_array_with_variable(first_param.source, second_param.source)
|
|
102
|
+
else
|
|
103
|
+
replace_based_on_line_length(first_param.source, second_param.source)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
return "#{replaced_text}, #{optional_param.source}" if optional_param
|
|
107
|
+
replaced_text
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def replace_based_on_line_length(first_expression, second_expression)
|
|
111
|
+
result = "assert_equal #{second_expression}, #{first_expression}"
|
|
112
|
+
return result if result.length < 80
|
|
113
|
+
|
|
114
|
+
# fold long lines independent of Rubocop configuration for better readability
|
|
115
|
+
<<~TEXT
|
|
116
|
+
assert_equal(
|
|
117
|
+
#{second_expression},
|
|
118
|
+
#{first_expression}
|
|
119
|
+
)
|
|
120
|
+
TEXT
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def replace_hash_with_variable(first_expression, second_expression)
|
|
124
|
+
expect_expression = if second_expression.start_with?("{")
|
|
125
|
+
second_expression
|
|
126
|
+
else
|
|
127
|
+
"{#{second_expression}}"
|
|
128
|
+
end
|
|
129
|
+
<<~TEXT
|
|
130
|
+
expected = #{expect_expression}
|
|
131
|
+
assert_equal expected, #{first_expression}
|
|
132
|
+
TEXT
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def replace_array_with_variable(first_expression, second_expression)
|
|
136
|
+
expect_expression = if second_expression.start_with?("%")
|
|
137
|
+
second_expression
|
|
138
|
+
else
|
|
139
|
+
Array(second_expression)
|
|
140
|
+
end
|
|
141
|
+
<<~TEXT
|
|
142
|
+
expected = #{expect_expression}
|
|
143
|
+
assert_equal expected, #{first_expression}
|
|
144
|
+
TEXT
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rubocop"
|
|
4
|
-
|
|
5
|
-
module RuboCop
|
|
6
|
-
module Cop
|
|
7
|
-
module Jekyll
|
|
8
|
-
class NoPAllowed < Cop
|
|
9
|
-
MSG = "Avoid using `p` to print things. Use `Jekyll.logger` instead.".freeze
|
|
10
|
-
|
|
11
|
-
def_node_search :p_called?, <<-PATTERN
|
|
12
|
-
(send _ :p _)
|
|
13
|
-
PATTERN
|
|
14
|
-
|
|
15
|
-
def on_send(node)
|
|
16
|
-
if p_called?(node)
|
|
17
|
-
add_offense(node, :location => :selector)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rubocop"
|
|
4
|
+
|
|
5
|
+
module RuboCop
|
|
6
|
+
module Cop
|
|
7
|
+
module Jekyll
|
|
8
|
+
class NoPAllowed < Cop
|
|
9
|
+
MSG = "Avoid using `p` to print things. Use `Jekyll.logger` instead.".freeze
|
|
10
|
+
|
|
11
|
+
def_node_search :p_called?, <<-PATTERN
|
|
12
|
+
(send _ :p _)
|
|
13
|
+
PATTERN
|
|
14
|
+
|
|
15
|
+
def on_send(node)
|
|
16
|
+
if p_called?(node)
|
|
17
|
+
add_offense(node, :location => :selector)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "rubocop"
|
|
4
|
-
|
|
5
|
-
module RuboCop
|
|
6
|
-
module Cop
|
|
7
|
-
module Jekyll
|
|
8
|
-
class NoPutsAllowed < Cop
|
|
9
|
-
MSG = "Avoid using `puts` to print things. Use `Jekyll.logger` instead.".freeze
|
|
10
|
-
|
|
11
|
-
def_node_search :puts_called?, <<-PATTERN
|
|
12
|
-
(send nil? :puts _)
|
|
13
|
-
PATTERN
|
|
14
|
-
|
|
15
|
-
def on_send(node)
|
|
16
|
-
if puts_called?(node)
|
|
17
|
-
add_offense(node, :location => :selector)
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "rubocop"
|
|
4
|
+
|
|
5
|
+
module RuboCop
|
|
6
|
+
module Cop
|
|
7
|
+
module Jekyll
|
|
8
|
+
class NoPutsAllowed < Cop
|
|
9
|
+
MSG = "Avoid using `puts` to print things. Use `Jekyll.logger` instead.".freeze
|
|
10
|
+
|
|
11
|
+
def_node_search :puts_called?, <<-PATTERN
|
|
12
|
+
(send nil? :puts _)
|
|
13
|
+
PATTERN
|
|
14
|
+
|
|
15
|
+
def on_send(node)
|
|
16
|
+
if puts_called?(node)
|
|
17
|
+
add_offense(node, :location => :selector)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
data/rubocop/jekyll.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
Dir[File.join(File.expand_path("jekyll", __dir__), "*.rb")].each do |ruby_file|
|
|
4
|
-
require ruby_file
|
|
5
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Dir[File.join(File.expand_path("jekyll", __dir__), "*.rb")].each do |ruby_file|
|
|
4
|
+
require ruby_file
|
|
5
|
+
end
|
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.
|
|
4
|
+
version: 4.3.0
|
|
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:
|
|
13
|
+
date: 2022-10-20 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.
|
|
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.
|
|
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: '
|
|
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: '
|
|
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
|
|
@@ -250,6 +295,8 @@ files:
|
|
|
250
295
|
- lib/jekyll/converters/markdown/kramdown_parser.rb
|
|
251
296
|
- lib/jekyll/converters/smartypants.rb
|
|
252
297
|
- lib/jekyll/convertible.rb
|
|
298
|
+
- lib/jekyll/data_entry.rb
|
|
299
|
+
- lib/jekyll/data_hash.rb
|
|
253
300
|
- lib/jekyll/deprecator.rb
|
|
254
301
|
- lib/jekyll/document.rb
|
|
255
302
|
- lib/jekyll/drops/collection_drop.rb
|
|
@@ -259,6 +306,7 @@ files:
|
|
|
259
306
|
- lib/jekyll/drops/jekyll_drop.rb
|
|
260
307
|
- lib/jekyll/drops/site_drop.rb
|
|
261
308
|
- lib/jekyll/drops/static_file_drop.rb
|
|
309
|
+
- lib/jekyll/drops/theme_drop.rb
|
|
262
310
|
- lib/jekyll/drops/unified_payload_drop.rb
|
|
263
311
|
- lib/jekyll/drops/url_drop.rb
|
|
264
312
|
- lib/jekyll/entry_filter.rb
|
|
@@ -357,14 +405,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
357
405
|
requirements:
|
|
358
406
|
- - ">="
|
|
359
407
|
- !ruby/object:Gem::Version
|
|
360
|
-
version: 2.
|
|
408
|
+
version: 2.5.0
|
|
361
409
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
362
410
|
requirements:
|
|
363
411
|
- - ">="
|
|
364
412
|
- !ruby/object:Gem::Version
|
|
365
413
|
version: 2.7.0
|
|
366
414
|
requirements: []
|
|
367
|
-
rubygems_version: 3.
|
|
415
|
+
rubygems_version: 3.1.6
|
|
368
416
|
signing_key:
|
|
369
417
|
specification_version: 4
|
|
370
418
|
summary: A simple, blog aware, static site generator.
|