theme-check 1.0.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/theme-check.yml +2 -6
- data/CHANGELOG.md +50 -0
- data/CONTRIBUTING.md +1 -1
- data/README.md +39 -0
- data/RELEASING.md +34 -2
- data/bin/theme-check +29 -0
- data/bin/theme-check-language-server +29 -0
- data/config/default.yml +28 -1
- data/config/nothing.yml +11 -0
- data/config/theme_app_extension.yml +168 -0
- data/data/shopify_liquid/objects.yml +1 -0
- data/docs/checks/app_block_valid_tags.md +40 -0
- data/docs/checks/asset_size_app_block_css.md +52 -0
- data/docs/checks/asset_size_app_block_javascript.md +57 -0
- data/docs/checks/deprecate_lazysizes.md +0 -3
- data/docs/checks/missing_template.md +25 -0
- data/docs/checks/pagination_size.md +44 -0
- data/docs/checks/template_length.md +1 -1
- data/docs/checks/undefined_object.md +5 -0
- data/lib/theme_check/analyzer.rb +26 -21
- data/lib/theme_check/asset_file.rb +3 -15
- data/lib/theme_check/bug.rb +3 -1
- data/lib/theme_check/check.rb +26 -4
- data/lib/theme_check/checks/app_block_valid_tags.rb +36 -0
- data/lib/theme_check/checks/asset_size_app_block_css.rb +44 -0
- data/lib/theme_check/checks/asset_size_app_block_javascript.rb +44 -0
- data/lib/theme_check/checks/asset_size_css.rb +3 -3
- data/lib/theme_check/checks/asset_size_javascript.rb +2 -2
- data/lib/theme_check/checks/convert_include_to_render.rb +3 -1
- data/lib/theme_check/checks/default_locale.rb +3 -1
- data/lib/theme_check/checks/deprecate_bgsizes.rb +1 -1
- data/lib/theme_check/checks/deprecate_lazysizes.rb +7 -4
- data/lib/theme_check/checks/img_lazy_loading.rb +1 -1
- data/lib/theme_check/checks/img_width_and_height.rb +3 -3
- data/lib/theme_check/checks/missing_template.rb +21 -5
- data/lib/theme_check/checks/pagination_size.rb +65 -0
- data/lib/theme_check/checks/parser_blocking_javascript.rb +1 -1
- data/lib/theme_check/checks/remote_asset.rb +3 -3
- data/lib/theme_check/checks/space_inside_braces.rb +27 -7
- data/lib/theme_check/checks/template_length.rb +1 -1
- data/lib/theme_check/checks/undefined_object.rb +1 -1
- data/lib/theme_check/checks/valid_html_translation.rb +1 -1
- data/lib/theme_check/checks.rb +11 -1
- data/lib/theme_check/cli.rb +52 -15
- data/lib/theme_check/config.rb +56 -10
- data/lib/theme_check/corrector.rb +9 -0
- data/lib/theme_check/exceptions.rb +29 -27
- data/lib/theme_check/file_system_storage.rb +12 -0
- data/lib/theme_check/html_check.rb +0 -1
- data/lib/theme_check/html_node.rb +37 -16
- data/lib/theme_check/html_visitor.rb +17 -3
- data/lib/theme_check/json_check.rb +2 -2
- data/lib/theme_check/json_file.rb +11 -27
- data/lib/theme_check/json_printer.rb +26 -0
- data/lib/theme_check/language_server/constants.rb +21 -6
- data/lib/theme_check/language_server/document_link_engine.rb +3 -31
- data/lib/theme_check/language_server/document_link_provider.rb +70 -0
- data/lib/theme_check/language_server/document_link_providers/asset_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/include_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/render_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/document_link_providers/section_document_link_provider.rb +11 -0
- data/lib/theme_check/language_server/handler.rb +7 -4
- data/lib/theme_check/language_server/server.rb +13 -2
- data/lib/theme_check/language_server.rb +5 -0
- data/lib/theme_check/node.rb +6 -4
- data/lib/theme_check/offense.rb +56 -3
- data/lib/theme_check/parsing_helpers.rb +4 -3
- data/lib/theme_check/position.rb +98 -14
- data/lib/theme_check/regex_helpers.rb +5 -2
- data/lib/theme_check/tags.rb +26 -9
- data/lib/theme_check/template.rb +3 -32
- data/lib/theme_check/theme.rb +3 -0
- data/lib/theme_check/theme_file.rb +40 -0
- data/lib/theme_check/version.rb +1 -1
- data/lib/theme_check.rb +16 -0
- data/theme-check.gemspec +1 -1
- metadata +24 -6
- data/bin/liquid-server +0 -4
data/lib/theme_check/theme.rb
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "pathname"
|
3
|
+
|
4
|
+
module ThemeCheck
|
5
|
+
class ThemeFile
|
6
|
+
def initialize(relative_path, storage)
|
7
|
+
@relative_path = relative_path
|
8
|
+
@storage = storage
|
9
|
+
end
|
10
|
+
|
11
|
+
def path
|
12
|
+
@storage.path(@relative_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
def relative_path
|
16
|
+
@relative_pathname ||= Pathname.new(@relative_path)
|
17
|
+
end
|
18
|
+
|
19
|
+
def name
|
20
|
+
relative_path.sub_ext('').to_s
|
21
|
+
end
|
22
|
+
|
23
|
+
def source
|
24
|
+
@source ||= @storage.read(@relative_path)
|
25
|
+
end
|
26
|
+
|
27
|
+
def json?
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
31
|
+
def liquid?
|
32
|
+
false
|
33
|
+
end
|
34
|
+
|
35
|
+
def ==(other)
|
36
|
+
other.is_a?(self.class) && relative_path == other.relative_path
|
37
|
+
end
|
38
|
+
alias_method :eql?, :==
|
39
|
+
end
|
40
|
+
end
|
data/lib/theme_check/version.rb
CHANGED
data/lib/theme_check.rb
CHANGED
@@ -4,6 +4,7 @@ require "liquid"
|
|
4
4
|
require_relative "theme_check/version"
|
5
5
|
require_relative "theme_check/bug"
|
6
6
|
require_relative "theme_check/exceptions"
|
7
|
+
require_relative "theme_check/theme_file"
|
7
8
|
require_relative "theme_check/analyzer"
|
8
9
|
require_relative "theme_check/check"
|
9
10
|
require_relative "theme_check/checks_tracking"
|
@@ -26,6 +27,7 @@ require_relative "theme_check/config"
|
|
26
27
|
require_relative "theme_check/node"
|
27
28
|
require_relative "theme_check/offense"
|
28
29
|
require_relative "theme_check/printer"
|
30
|
+
require_relative "theme_check/json_printer"
|
29
31
|
require_relative "theme_check/shopify_liquid"
|
30
32
|
require_relative "theme_check/storage"
|
31
33
|
require_relative "theme_check/string_helpers"
|
@@ -45,3 +47,17 @@ Dir[__dir__ + "/theme_check/checks/*.rb"].each { |file| require file }
|
|
45
47
|
# UTF-8 is the default internal and external encoding, like in Rails & Shopify.
|
46
48
|
Encoding.default_external = Encoding::UTF_8
|
47
49
|
Encoding.default_internal = Encoding::UTF_8
|
50
|
+
|
51
|
+
module ThemeCheck
|
52
|
+
def self.with_liquid_c_disabled
|
53
|
+
if defined?(Liquid::C)
|
54
|
+
was_enabled = Liquid::C.enabled
|
55
|
+
Liquid::C.enabled = false if was_enabled
|
56
|
+
end
|
57
|
+
yield
|
58
|
+
ensure
|
59
|
+
if defined?(Liquid::C) && was_enabled
|
60
|
+
Liquid::C.enabled = true
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/theme-check.gemspec
CHANGED
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: 1.
|
4
|
+
version: 1.4.0
|
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-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: liquid
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 5.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: nokogiri
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.12'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.12'
|
41
41
|
description:
|
42
42
|
email:
|
43
43
|
- marcandre.cournoyer@shopify.com
|
@@ -60,8 +60,11 @@ files:
|
|
60
60
|
- README.md
|
61
61
|
- RELEASING.md
|
62
62
|
- Rakefile
|
63
|
-
- bin/
|
63
|
+
- bin/theme-check
|
64
|
+
- bin/theme-check-language-server
|
64
65
|
- config/default.yml
|
66
|
+
- config/nothing.yml
|
67
|
+
- config/theme_app_extension.yml
|
65
68
|
- data/shopify_liquid/deprecated_filters.yml
|
66
69
|
- data/shopify_liquid/filters.yml
|
67
70
|
- data/shopify_liquid/objects.yml
|
@@ -74,6 +77,9 @@ files:
|
|
74
77
|
- docs/api/json_check.md
|
75
78
|
- docs/api/liquid_check.md
|
76
79
|
- docs/checks/TEMPLATE.md.erb
|
80
|
+
- docs/checks/app_block_valid_tags.md
|
81
|
+
- docs/checks/asset_size_app_block_css.md
|
82
|
+
- docs/checks/asset_size_app_block_javascript.md
|
77
83
|
- docs/checks/asset_size_css.md
|
78
84
|
- docs/checks/asset_size_css_stylesheet_tag.md
|
79
85
|
- docs/checks/asset_size_javascript.md
|
@@ -94,6 +100,7 @@ files:
|
|
94
100
|
- docs/checks/missing_required_template_files.md
|
95
101
|
- docs/checks/missing_template.md
|
96
102
|
- docs/checks/nested_snippet.md
|
103
|
+
- docs/checks/pagination_size.md
|
97
104
|
- docs/checks/parser_blocking_javascript.md
|
98
105
|
- docs/checks/parser_blocking_script_tag.md
|
99
106
|
- docs/checks/remote_asset.md
|
@@ -120,6 +127,9 @@ files:
|
|
120
127
|
- lib/theme_check/check.rb
|
121
128
|
- lib/theme_check/checks.rb
|
122
129
|
- lib/theme_check/checks/TEMPLATE.rb.erb
|
130
|
+
- lib/theme_check/checks/app_block_valid_tags.rb
|
131
|
+
- lib/theme_check/checks/asset_size_app_block_css.rb
|
132
|
+
- lib/theme_check/checks/asset_size_app_block_javascript.rb
|
123
133
|
- lib/theme_check/checks/asset_size_css.rb
|
124
134
|
- lib/theme_check/checks/asset_size_css_stylesheet_tag.rb
|
125
135
|
- lib/theme_check/checks/asset_size_javascript.rb
|
@@ -140,6 +150,7 @@ files:
|
|
140
150
|
- lib/theme_check/checks/missing_required_template_files.rb
|
141
151
|
- lib/theme_check/checks/missing_template.rb
|
142
152
|
- lib/theme_check/checks/nested_snippet.rb
|
153
|
+
- lib/theme_check/checks/pagination_size.rb
|
143
154
|
- lib/theme_check/checks/parser_blocking_javascript.rb
|
144
155
|
- lib/theme_check/checks/parser_blocking_script_tag.rb
|
145
156
|
- lib/theme_check/checks/remote_asset.rb
|
@@ -171,6 +182,7 @@ files:
|
|
171
182
|
- lib/theme_check/json_check.rb
|
172
183
|
- lib/theme_check/json_file.rb
|
173
184
|
- lib/theme_check/json_helpers.rb
|
185
|
+
- lib/theme_check/json_printer.rb
|
174
186
|
- lib/theme_check/language_server.rb
|
175
187
|
- lib/theme_check/language_server/completion_engine.rb
|
176
188
|
- lib/theme_check/language_server/completion_helper.rb
|
@@ -182,6 +194,11 @@ files:
|
|
182
194
|
- lib/theme_check/language_server/constants.rb
|
183
195
|
- lib/theme_check/language_server/diagnostics_tracker.rb
|
184
196
|
- lib/theme_check/language_server/document_link_engine.rb
|
197
|
+
- lib/theme_check/language_server/document_link_provider.rb
|
198
|
+
- lib/theme_check/language_server/document_link_providers/asset_document_link_provider.rb
|
199
|
+
- lib/theme_check/language_server/document_link_providers/include_document_link_provider.rb
|
200
|
+
- lib/theme_check/language_server/document_link_providers/render_document_link_provider.rb
|
201
|
+
- lib/theme_check/language_server/document_link_providers/section_document_link_provider.rb
|
185
202
|
- lib/theme_check/language_server/handler.rb
|
186
203
|
- lib/theme_check/language_server/protocol.rb
|
187
204
|
- lib/theme_check/language_server/server.rb
|
@@ -209,6 +226,7 @@ files:
|
|
209
226
|
- lib/theme_check/tags.rb
|
210
227
|
- lib/theme_check/template.rb
|
211
228
|
- lib/theme_check/theme.rb
|
229
|
+
- lib/theme_check/theme_file.rb
|
212
230
|
- lib/theme_check/version.rb
|
213
231
|
- lib/theme_check/visitor.rb
|
214
232
|
- packaging/homebrew/theme_check.base.rb
|
data/bin/liquid-server
DELETED