@herb-tools/linter 0.8.4 → 0.8.5
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.
- package/README.md +3 -3
- package/dist/herb-lint.js +122 -26
- package/dist/herb-lint.js.map +1 -1
- package/dist/index.cjs +29 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +29 -3
- package/dist/index.js.map +1 -1
- package/dist/loader.cjs +68 -7
- package/dist/loader.cjs.map +1 -1
- package/dist/loader.js +68 -7
- package/dist/loader.js.map +1 -1
- package/dist/package.json +7 -7
- package/dist/src/rules/html-no-duplicate-meta-names.js +11 -0
- package/dist/src/rules/html-no-duplicate-meta-names.js.map +1 -1
- package/dist/src/rules/html-tag-name-lowercase.js +22 -5
- package/dist/src/rules/html-tag-name-lowercase.js.map +1 -1
- package/package.json +7 -7
- package/src/rules/html-no-duplicate-meta-names.ts +13 -0
- package/src/rules/html-tag-name-lowercase.ts +22 -5
package/dist/index.cjs
CHANGED
|
@@ -5785,6 +5785,9 @@ class HTMLNoDuplicateMetaNamesVisitor extends ControlFlowTrackingVisitor {
|
|
|
5785
5785
|
else if (name === "http-equiv" && value) {
|
|
5786
5786
|
metaTag.httpEquivValue = value;
|
|
5787
5787
|
}
|
|
5788
|
+
else if (name === "media" && value) {
|
|
5789
|
+
metaTag.mediaValue = value;
|
|
5790
|
+
}
|
|
5788
5791
|
});
|
|
5789
5792
|
}
|
|
5790
5793
|
}
|
|
@@ -5816,6 +5819,14 @@ class HTMLNoDuplicateMetaNamesVisitor extends ControlFlowTrackingVisitor {
|
|
|
5816
5819
|
}
|
|
5817
5820
|
}
|
|
5818
5821
|
areMetaTagsDuplicate(meta1, meta2) {
|
|
5822
|
+
if (meta1.mediaValue && meta2.mediaValue) {
|
|
5823
|
+
if (meta1.mediaValue.toLowerCase() !== meta2.mediaValue.toLowerCase()) {
|
|
5824
|
+
return false;
|
|
5825
|
+
}
|
|
5826
|
+
}
|
|
5827
|
+
if ((meta1.mediaValue && !meta2.mediaValue) || (!meta1.mediaValue && meta2.mediaValue)) {
|
|
5828
|
+
return false;
|
|
5829
|
+
}
|
|
5819
5830
|
if (meta1.nameValue && meta2.nameValue) {
|
|
5820
5831
|
return meta1.nameValue.toLowerCase() === meta2.nameValue.toLowerCase();
|
|
5821
5832
|
}
|
|
@@ -6520,10 +6531,25 @@ class HTMLTagNameLowercaseRule extends ParserRule {
|
|
|
6520
6531
|
autofix(offense, result, _context) {
|
|
6521
6532
|
if (!offense.autofixContext)
|
|
6522
6533
|
return null;
|
|
6523
|
-
const { node
|
|
6524
|
-
if (!tag_name)
|
|
6534
|
+
const { node, correctedTagName } = offense.autofixContext;
|
|
6535
|
+
if (!node.tag_name)
|
|
6525
6536
|
return null;
|
|
6526
|
-
tag_name.value = correctedTagName;
|
|
6537
|
+
node.tag_name.value = correctedTagName;
|
|
6538
|
+
const parentElement = findParent(result.value, node);
|
|
6539
|
+
if (!parentElement || !core.isHTMLElementNode(parentElement))
|
|
6540
|
+
return result;
|
|
6541
|
+
switch (node.type) {
|
|
6542
|
+
case "AST_HTML_OPEN_TAG_NODE":
|
|
6543
|
+
if (!parentElement.close_tag)
|
|
6544
|
+
break;
|
|
6545
|
+
const closeTag = parentElement.close_tag;
|
|
6546
|
+
closeTag.tag_name.value = correctedTagName;
|
|
6547
|
+
break;
|
|
6548
|
+
case "AST_HTML_CLOSE_TAG_NODE":
|
|
6549
|
+
const openTag = parentElement.open_tag;
|
|
6550
|
+
openTag.tag_name.value = correctedTagName;
|
|
6551
|
+
break;
|
|
6552
|
+
}
|
|
6527
6553
|
return result;
|
|
6528
6554
|
}
|
|
6529
6555
|
}
|