canon 0.3.104 → 0.3.106
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/lib/canon/validators/html_validator.rb +16 -16
- data/lib/canon/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b2537da047da64e91f3c492a6bd5d2888a7946d289bac3752cbc930e5994ccf3
|
|
4
|
+
data.tar.gz: 9ebddee1a5dd6555ed87e493f9dfc20b52996f35876c7a9da7d223e4782adf20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a9c6bf6780b6f487d31888c892d05d88c9084c38c3fa76041d53d9a76f19c46d2a35e052529ff7c8e09ec8b5f03ebac320c9b061efb25f8f749ae523a682e212
|
|
7
|
+
data.tar.gz: 5b55d9efee2f551ee33ec9ba02362ed22017419b119f3227d53e7b84238df878509d2417291748ade02ab2068d502b39fc23f4b525ab77651e3ee1031570fb56
|
|
@@ -87,42 +87,42 @@ module Canon
|
|
|
87
87
|
expected-doctype-token
|
|
88
88
|
].freeze
|
|
89
89
|
|
|
90
|
-
# The HTML5 lint layer
|
|
91
|
-
#
|
|
92
|
-
#
|
|
93
|
-
#
|
|
94
|
-
#
|
|
90
|
+
# The HTML5 lint layer goes through the moxml facade: the
|
|
91
|
+
# leptris adapter forwards collect_errors (leptris#1771's
|
|
92
|
+
# §13.2.5 token stream) and Document#parse_diagnostics answers
|
|
93
|
+
# the machine-readable code plus line/column, so canon no
|
|
94
|
+
# longer reaches into the engine.
|
|
95
95
|
def self.validate_html5!(input)
|
|
96
|
-
doc =
|
|
97
|
-
|
|
98
|
-
errors = doc.
|
|
99
|
-
DOCTYPE_CLASS_CODES.include?(e
|
|
96
|
+
doc = Moxml.new.parse_html(input, mode: :whatwg,
|
|
97
|
+
collect_errors: true)
|
|
98
|
+
errors = doc.parse_diagnostics.reject do |e|
|
|
99
|
+
DOCTYPE_CLASS_CODES.include?(e[:code])
|
|
100
100
|
end
|
|
101
101
|
return if errors.empty?
|
|
102
102
|
|
|
103
103
|
error = errors.first
|
|
104
104
|
raise Canon::ValidationError.new(
|
|
105
|
-
"[#{error
|
|
105
|
+
"[#{error[:code]}] #{error[:message]}",
|
|
106
106
|
format: :html,
|
|
107
|
-
line: error
|
|
108
|
-
column: error
|
|
107
|
+
line: error[:line],
|
|
108
|
+
column: error[:column],
|
|
109
109
|
details: build_error_details(errors),
|
|
110
110
|
)
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
# Build error details from multiple errors
|
|
114
114
|
#
|
|
115
|
-
# @param errors [Array<
|
|
115
|
+
# @param errors [Array<Hash>] moxml parse diagnostics
|
|
116
116
|
# @return [String, nil] Combined error details
|
|
117
117
|
def self.build_error_details(errors)
|
|
118
118
|
significant = errors.reject do |e|
|
|
119
|
-
DOCTYPE_CLASS_CODES.include?(e
|
|
119
|
+
DOCTYPE_CLASS_CODES.include?(e[:code])
|
|
120
120
|
end
|
|
121
121
|
return nil if significant.size <= 1
|
|
122
122
|
|
|
123
123
|
significant[1..3].map do |e|
|
|
124
|
-
msg = e
|
|
125
|
-
msg += " (line #{e
|
|
124
|
+
msg = e[:message]
|
|
125
|
+
msg += " (line #{e[:line]})" if e[:line]
|
|
126
126
|
msg
|
|
127
127
|
end.join("; ")
|
|
128
128
|
end
|
data/lib/canon/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: canon
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.106
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-10-
|
|
11
|
+
date: 2026-10-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: diff-lcs
|
|
@@ -44,28 +44,28 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.9.
|
|
47
|
+
version: 1.9.376
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.9.
|
|
54
|
+
version: 1.9.376
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: moxml
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 0.5.
|
|
61
|
+
version: 0.5.149
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 0.5.
|
|
68
|
+
version: 0.5.149
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: paint
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|