MCPcopy
hub / github.com/htmlhint/HTMLHint / verify

Method verify

src/core/core.ts:30–80  ·  view source on GitHub ↗
(html: string, ruleset: Ruleset = this.defaultRuleset)

Source from the content-addressed store, hash-verified

28 }
29
30 public verify(html: string, ruleset: Ruleset = this.defaultRuleset) {
31 if (Object.keys(ruleset).length === 0) {
32 ruleset = this.defaultRuleset
33 }
34
35 // parse inline ruleset
36 html = html.replace(
37 /^\s*<!--\s*htmlhint\s+([^\r\n]+?)\s*-->/i,
38 (all, strRuleset: string) => {
39 // For example:
40 // all is '<!-- htmlhint alt-require:true-->'
41 // strRuleset is 'alt-require:true'
42 strRuleset.replace(
43 /(?:^|,)\s*([^:,]+)\s*(?:\:\s*([^,\s]+))?/g,
44 (all, ruleId: string, value: string | undefined) => {
45 // For example:
46 // all is 'alt-require:true'
47 // ruleId is 'alt-require'
48 // value is 'true'
49
50 ruleset[ruleId] =
51 value !== undefined && value.length > 0 ? JSON.parse(value) : true
52
53 return ''
54 }
55 )
56
57 return ''
58 }
59 )
60
61 // Parse disable/enable comments
62 const disabledRulesMap = this.parseDisableComments(html)
63
64 const parser = new HTMLParser()
65 const reporter = new Reporter(html, ruleset, disabledRulesMap)
66
67 const rules = this.rules
68 let rule: Rule
69
70 for (const id in ruleset) {
71 rule = rules[id]
72 if (rule !== undefined && ruleset[id] !== false) {
73 rule.init(parser, reporter, ruleset[id])
74 }
75 }
76
77 parser.parse(html)
78
79 return reporter.messages
80 }
81
82 private parseDisableComments(html: string): DisabledRulesMap {
83 const disabledRulesMap: DisabledRulesMap = {}

Calls 3

parseMethod · 0.95
parseDisableCommentsMethod · 0.95
initMethod · 0.65

Tested by

no test coverage detected