theme-check 0.8.2 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/theme-check.yml +3 -0
- data/CHANGELOG.md +45 -0
- data/CONTRIBUTING.md +20 -90
- data/README.md +4 -1
- data/RELEASING.md +5 -3
- data/Rakefile +31 -0
- data/config/default.yml +45 -0
- data/docs/api/check.md +15 -0
- data/docs/api/html_check.md +46 -0
- data/docs/api/json_check.md +19 -0
- data/docs/api/liquid_check.md +99 -0
- data/docs/checks/{CHECK_DOCS_TEMPLATE.md → TEMPLATE.md.erb} +5 -5
- data/docs/checks/asset_url_filters.md +56 -0
- data/docs/checks/content_for_header_modification.md +42 -0
- data/docs/checks/img_lazy_loading.md +61 -0
- data/docs/checks/parser_blocking_script_tag.md +53 -0
- data/exe/theme-check-language-server +1 -2
- data/lib/theme_check.rb +8 -1
- data/lib/theme_check/analyzer.rb +72 -16
- data/lib/theme_check/bug.rb +1 -0
- data/lib/theme_check/check.rb +32 -7
- data/lib/theme_check/checks.rb +9 -1
- data/lib/theme_check/checks/TEMPLATE.rb.erb +11 -0
- data/lib/theme_check/checks/asset_url_filters.rb +46 -0
- data/lib/theme_check/checks/content_for_header_modification.rb +41 -0
- data/lib/theme_check/checks/img_lazy_loading.rb +25 -0
- data/lib/theme_check/checks/img_width_and_height.rb +18 -49
- data/lib/theme_check/checks/missing_template.rb +1 -0
- data/lib/theme_check/checks/parser_blocking_javascript.rb +6 -38
- data/lib/theme_check/checks/parser_blocking_script_tag.rb +20 -0
- data/lib/theme_check/checks/remote_asset.rb +21 -79
- data/lib/theme_check/checks/template_length.rb +3 -0
- data/lib/theme_check/checks/valid_html_translation.rb +1 -0
- data/lib/theme_check/config.rb +2 -0
- data/lib/theme_check/disabled_check.rb +6 -4
- data/lib/theme_check/disabled_checks.rb +25 -9
- data/lib/theme_check/html_check.rb +7 -0
- data/lib/theme_check/html_node.rb +56 -0
- data/lib/theme_check/html_visitor.rb +38 -0
- data/lib/theme_check/json_file.rb +13 -0
- data/lib/theme_check/language_server.rb +1 -0
- data/lib/theme_check/language_server/completion_providers/filter_completion_provider.rb +1 -0
- data/lib/theme_check/language_server/diagnostics_tracker.rb +66 -0
- data/lib/theme_check/language_server/handler.rb +31 -26
- data/lib/theme_check/language_server/server.rb +1 -1
- data/lib/theme_check/liquid_check.rb +1 -4
- data/lib/theme_check/offense.rb +18 -0
- data/lib/theme_check/template.rb +9 -0
- data/lib/theme_check/theme.rb +7 -2
- data/lib/theme_check/version.rb +1 -1
- data/lib/theme_check/visitor.rb +2 -11
- metadata +20 -3
data/lib/theme_check/offense.rb
CHANGED
@@ -114,6 +114,24 @@ module ThemeCheck
|
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
+
def whole_theme?
|
118
|
+
check.whole_theme?
|
119
|
+
end
|
120
|
+
|
121
|
+
def single_file?
|
122
|
+
check.single_file?
|
123
|
+
end
|
124
|
+
|
125
|
+
def ==(other)
|
126
|
+
other.is_a?(Offense) &&
|
127
|
+
code_name == other.code_name &&
|
128
|
+
message == other.message &&
|
129
|
+
location == other.location &&
|
130
|
+
start_index == other.start_index &&
|
131
|
+
end_index == other.end_index
|
132
|
+
end
|
133
|
+
alias_method :eql?, :==
|
134
|
+
|
117
135
|
def to_s
|
118
136
|
if template
|
119
137
|
"#{message} at #{location}"
|
data/lib/theme_check/template.rb
CHANGED
@@ -32,6 +32,14 @@ module ThemeCheck
|
|
32
32
|
relative_path.sub_ext('').to_s
|
33
33
|
end
|
34
34
|
|
35
|
+
def json?
|
36
|
+
false
|
37
|
+
end
|
38
|
+
|
39
|
+
def liquid?
|
40
|
+
true
|
41
|
+
end
|
42
|
+
|
35
43
|
def template?
|
36
44
|
name.start_with?('templates')
|
37
45
|
end
|
@@ -83,6 +91,7 @@ module ThemeCheck
|
|
83
91
|
def ==(other)
|
84
92
|
other.is_a?(Template) && relative_path == other.relative_path
|
85
93
|
end
|
94
|
+
alias_method :eql?, :==
|
86
95
|
|
87
96
|
def self.parse(source)
|
88
97
|
Liquid::Template.parse(
|
data/lib/theme_check/theme.rb
CHANGED
@@ -52,8 +52,13 @@ module ThemeCheck
|
|
52
52
|
@all ||= json + liquid + assets
|
53
53
|
end
|
54
54
|
|
55
|
-
def [](
|
56
|
-
|
55
|
+
def [](name_or_relative_path)
|
56
|
+
case name_or_relative_path
|
57
|
+
when Pathname
|
58
|
+
all.find { |t| t.relative_path == name_or_relative_path }
|
59
|
+
else
|
60
|
+
all.find { |t| t.name == name_or_relative_path }
|
61
|
+
end
|
57
62
|
end
|
58
63
|
|
59
64
|
def templates
|
data/lib/theme_check/version.rb
CHANGED
data/lib/theme_check/visitor.rb
CHANGED
@@ -3,14 +3,13 @@ module ThemeCheck
|
|
3
3
|
class Visitor
|
4
4
|
attr_reader :checks
|
5
5
|
|
6
|
-
def initialize(checks)
|
6
|
+
def initialize(checks, disabled_checks)
|
7
7
|
@checks = checks
|
8
|
+
@disabled_checks = disabled_checks
|
8
9
|
end
|
9
10
|
|
10
11
|
def visit_template(template)
|
11
|
-
@disabled_checks = DisabledChecks.new
|
12
12
|
visit(Node.new(template.root, nil, template))
|
13
|
-
remove_disabled_offenses
|
14
13
|
rescue Liquid::Error => exception
|
15
14
|
exception.template_name = template.name
|
16
15
|
call_checks(:on_error, exception)
|
@@ -35,13 +34,5 @@ module ThemeCheck
|
|
35
34
|
def call_checks(method, *args)
|
36
35
|
checks.call(method, *args)
|
37
36
|
end
|
38
|
-
|
39
|
-
def remove_disabled_offenses
|
40
|
-
checks.disableable.each do |check|
|
41
|
-
check.offenses.reject! do |offense|
|
42
|
-
@disabled_checks.disabled?(offense.code_name, offense.start_index)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
37
|
end
|
47
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theme-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marc-André Cournoyer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -69,12 +69,19 @@ files:
|
|
69
69
|
- data/shopify_liquid/tags.yml
|
70
70
|
- data/shopify_translation_keys.yml
|
71
71
|
- dev.yml
|
72
|
-
- docs/
|
72
|
+
- docs/api/check.md
|
73
|
+
- docs/api/html_check.md
|
74
|
+
- docs/api/json_check.md
|
75
|
+
- docs/api/liquid_check.md
|
76
|
+
- docs/checks/TEMPLATE.md.erb
|
73
77
|
- docs/checks/asset_size_css.md
|
74
78
|
- docs/checks/asset_size_javascript.md
|
79
|
+
- docs/checks/asset_url_filters.md
|
80
|
+
- docs/checks/content_for_header_modification.md
|
75
81
|
- docs/checks/convert_include_to_render.md
|
76
82
|
- docs/checks/default_locale.md
|
77
83
|
- docs/checks/deprecated_filter.md
|
84
|
+
- docs/checks/img_lazy_loading.md
|
78
85
|
- docs/checks/img_width_and_height.md
|
79
86
|
- docs/checks/liquid_tag.md
|
80
87
|
- docs/checks/matching_schema_translations.md
|
@@ -84,6 +91,7 @@ files:
|
|
84
91
|
- docs/checks/missing_template.md
|
85
92
|
- docs/checks/nested_snippet.md
|
86
93
|
- docs/checks/parser_blocking_javascript.md
|
94
|
+
- docs/checks/parser_blocking_script_tag.md
|
87
95
|
- docs/checks/remote_asset.md
|
88
96
|
- docs/checks/required_directories.md
|
89
97
|
- docs/checks/required_layout_theme_object.md
|
@@ -107,11 +115,15 @@ files:
|
|
107
115
|
- lib/theme_check/bug.rb
|
108
116
|
- lib/theme_check/check.rb
|
109
117
|
- lib/theme_check/checks.rb
|
118
|
+
- lib/theme_check/checks/TEMPLATE.rb.erb
|
110
119
|
- lib/theme_check/checks/asset_size_css.rb
|
111
120
|
- lib/theme_check/checks/asset_size_javascript.rb
|
121
|
+
- lib/theme_check/checks/asset_url_filters.rb
|
122
|
+
- lib/theme_check/checks/content_for_header_modification.rb
|
112
123
|
- lib/theme_check/checks/convert_include_to_render.rb
|
113
124
|
- lib/theme_check/checks/default_locale.rb
|
114
125
|
- lib/theme_check/checks/deprecated_filter.rb
|
126
|
+
- lib/theme_check/checks/img_lazy_loading.rb
|
115
127
|
- lib/theme_check/checks/img_width_and_height.rb
|
116
128
|
- lib/theme_check/checks/liquid_tag.rb
|
117
129
|
- lib/theme_check/checks/matching_schema_translations.rb
|
@@ -121,6 +133,7 @@ files:
|
|
121
133
|
- lib/theme_check/checks/missing_template.rb
|
122
134
|
- lib/theme_check/checks/nested_snippet.rb
|
123
135
|
- lib/theme_check/checks/parser_blocking_javascript.rb
|
136
|
+
- lib/theme_check/checks/parser_blocking_script_tag.rb
|
124
137
|
- lib/theme_check/checks/remote_asset.rb
|
125
138
|
- lib/theme_check/checks/required_directories.rb
|
126
139
|
- lib/theme_check/checks/required_layout_theme_object.rb
|
@@ -143,6 +156,9 @@ files:
|
|
143
156
|
- lib/theme_check/disabled_checks.rb
|
144
157
|
- lib/theme_check/exceptions.rb
|
145
158
|
- lib/theme_check/file_system_storage.rb
|
159
|
+
- lib/theme_check/html_check.rb
|
160
|
+
- lib/theme_check/html_node.rb
|
161
|
+
- lib/theme_check/html_visitor.rb
|
146
162
|
- lib/theme_check/in_memory_storage.rb
|
147
163
|
- lib/theme_check/json_check.rb
|
148
164
|
- lib/theme_check/json_file.rb
|
@@ -156,6 +172,7 @@ files:
|
|
156
172
|
- lib/theme_check/language_server/completion_providers/render_snippet_completion_provider.rb
|
157
173
|
- lib/theme_check/language_server/completion_providers/tag_completion_provider.rb
|
158
174
|
- lib/theme_check/language_server/constants.rb
|
175
|
+
- lib/theme_check/language_server/diagnostics_tracker.rb
|
159
176
|
- lib/theme_check/language_server/document_link_engine.rb
|
160
177
|
- lib/theme_check/language_server/handler.rb
|
161
178
|
- lib/theme_check/language_server/protocol.rb
|