sasslint 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/bin/sasslint +6 -0
- data/lib/sasslint.rb +10 -0
- data/lib/sasslint/cli.rb +28 -0
- data/lib/sasslint/helpers/path_helper.rb +10 -0
- data/lib/sasslint/helpers/rule_importer.rb +25 -0
- data/lib/sasslint/rules/css/adjoining-classes.rb +52 -0
- data/lib/sasslint/rules/css/box-model.rb +108 -0
- data/lib/sasslint/rules/css/box-sizing.rb +35 -0
- data/lib/sasslint/rules/css/bulletproof-font-face.rb +73 -0
- data/lib/sasslint/rules/css/compatible-vendor-prefixes.rb +193 -0
- data/lib/sasslint/rules/css/display-property-grouping.rb +124 -0
- data/lib/sasslint/rules/css/duplicate-background-images.rb +44 -0
- data/lib/sasslint/rules/css/duplicate-properties.rb +53 -0
- data/lib/sasslint/rules/css/empty-rules.rb +41 -0
- data/lib/sasslint/rules/css/errors.rb +30 -0
- data/lib/sasslint/rules/css/fallback-colors.rb +84 -0
- data/lib/sasslint/rules/css/floats.rb +43 -0
- data/lib/sasslint/rules/css/font-faces.rb +37 -0
- data/lib/sasslint/rules/css/font-sizes.rb +42 -0
- data/lib/sasslint/rules/css/gradients.rb +71 -0
- data/lib/sasslint/rules/css/ids.rb +57 -0
- data/lib/sasslint/rules/css/import.rb +30 -0
- data/lib/sasslint/rules/css/important.rb +44 -0
- data/lib/sasslint/rules/css/known-properties.rb +36 -0
- data/lib/sasslint/rules/css/outline-none.rb +80 -0
- data/lib/sasslint/rules/css/overqualified-elements.rb +70 -0
- data/lib/sasslint/rules/css/qualified-headings.rb +45 -0
- data/lib/sasslint/rules/css/regex-selectors.rb +51 -0
- data/lib/sasslint/rules/css/rules-count.rb +35 -0
- data/lib/sasslint/rules/css/selector-max-approaching.rb +35 -0
- data/lib/sasslint/rules/css/selector-max.rb +35 -0
- data/lib/sasslint/rules/css/shorthand.rb +94 -0
- data/lib/sasslint/rules/css/star-property-hack.rb +34 -0
- data/lib/sasslint/rules/css/text-indent.rb +60 -0
- data/lib/sasslint/rules/css/underscore-property-hack.rb +34 -0
- data/lib/sasslint/rules/css/unique-headings.rb +81 -0
- data/lib/sasslint/rules/css/universal-selector.rb +42 -0
- data/lib/sasslint/rules/css/unqualified-attributes.rb +49 -0
- data/lib/sasslint/rules/css/vendor-prefix.rb +150 -0
- data/lib/sasslint/rules/css/zero-units.rb +41 -0
- data/lib/sasslint/version.rb +3 -0
- data/sasslint.gemspec +29 -0
- metadata +146 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: You shouldn't need more than 9 font-size declarations.
|
10
|
+
# */
|
11
|
+
#
|
12
|
+
# /*global CSSLint*/
|
13
|
+
# CSSLint.addRule({
|
14
|
+
#
|
15
|
+
# //rule information
|
16
|
+
# id: "font-sizes",
|
17
|
+
# name: "Disallow too many font sizes",
|
18
|
+
# desc: "Checks the number of font-size declarations.",
|
19
|
+
# browsers: "All",
|
20
|
+
#
|
21
|
+
# //initialization
|
22
|
+
# init: function(parser, reporter){
|
23
|
+
# var rule = this,
|
24
|
+
# count = 0;
|
25
|
+
#
|
26
|
+
# //check for use of "font-size"
|
27
|
+
# parser.addListener("property", function(event){
|
28
|
+
# if (event.property == "font-size"){
|
29
|
+
# count++;
|
30
|
+
# }
|
31
|
+
# });
|
32
|
+
#
|
33
|
+
# //report the results
|
34
|
+
# parser.addListener("endstylesheet", function(){
|
35
|
+
# reporter.stat("font-sizes", count);
|
36
|
+
# if (count >= 10){
|
37
|
+
# reporter.rollupWarn("Too many font-size declarations (" + count + "), abstraction needed.", rule);
|
38
|
+
# }
|
39
|
+
# });
|
40
|
+
# }
|
41
|
+
#
|
42
|
+
# });
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: When using a vendor-prefixed gradient, make sure to use them all.
|
10
|
+
# */
|
11
|
+
# /*global CSSLint*/
|
12
|
+
# CSSLint.addRule({
|
13
|
+
#
|
14
|
+
# //rule information
|
15
|
+
# id: "gradients",
|
16
|
+
# name: "Require all gradient definitions",
|
17
|
+
# desc: "When using a vendor-prefixed gradient, make sure to use them all.",
|
18
|
+
# browsers: "All",
|
19
|
+
#
|
20
|
+
# //initialization
|
21
|
+
# init: function(parser, reporter){
|
22
|
+
# var rule = this,
|
23
|
+
# gradients;
|
24
|
+
#
|
25
|
+
# parser.addListener("startrule", function(){
|
26
|
+
# gradients = {
|
27
|
+
# moz: 0,
|
28
|
+
# webkit: 0,
|
29
|
+
# oldWebkit: 0,
|
30
|
+
# o: 0
|
31
|
+
# };
|
32
|
+
# });
|
33
|
+
#
|
34
|
+
# parser.addListener("property", function(event){
|
35
|
+
#
|
36
|
+
# if (/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(event.value)){
|
37
|
+
# gradients[RegExp.$1] = 1;
|
38
|
+
# } else if (/\-webkit\-gradient/i.test(event.value)){
|
39
|
+
# gradients.oldWebkit = 1;
|
40
|
+
# }
|
41
|
+
#
|
42
|
+
# });
|
43
|
+
#
|
44
|
+
# parser.addListener("endrule", function(event){
|
45
|
+
# var missing = [];
|
46
|
+
#
|
47
|
+
# if (!gradients.moz){
|
48
|
+
# missing.push("Firefox 3.6+");
|
49
|
+
# }
|
50
|
+
#
|
51
|
+
# if (!gradients.webkit){
|
52
|
+
# missing.push("Webkit (Safari 5+, Chrome)");
|
53
|
+
# }
|
54
|
+
#
|
55
|
+
# if (!gradients.oldWebkit){
|
56
|
+
# missing.push("Old Webkit (Safari 4+, Chrome)");
|
57
|
+
# }
|
58
|
+
#
|
59
|
+
# if (!gradients.o){
|
60
|
+
# missing.push("Opera 11.1+");
|
61
|
+
# }
|
62
|
+
#
|
63
|
+
# if (missing.length && missing.length < 4){
|
64
|
+
# reporter.report("Missing vendor-prefixed CSS gradients for " + missing.join(", ") + ".", event.selectors[0].line, event.selectors[0].col, rule);
|
65
|
+
# }
|
66
|
+
#
|
67
|
+
# });
|
68
|
+
#
|
69
|
+
# }
|
70
|
+
#
|
71
|
+
# });
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Don't use IDs for selectors.
|
10
|
+
# */
|
11
|
+
# /*global CSSLint*/
|
12
|
+
# CSSLint.addRule({
|
13
|
+
#
|
14
|
+
# //rule information
|
15
|
+
# id: "ids",
|
16
|
+
# name: "Disallow IDs in selectors",
|
17
|
+
# desc: "Selectors should not contain IDs.",
|
18
|
+
# browsers: "All",
|
19
|
+
#
|
20
|
+
# //initialization
|
21
|
+
# init: function(parser, reporter){
|
22
|
+
# var rule = this;
|
23
|
+
# parser.addListener("startrule", function(event){
|
24
|
+
# var selectors = event.selectors,
|
25
|
+
# selector,
|
26
|
+
# part,
|
27
|
+
# modifier,
|
28
|
+
# idCount,
|
29
|
+
# i, j, k;
|
30
|
+
#
|
31
|
+
# for (i=0; i < selectors.length; i++){
|
32
|
+
# selector = selectors[i];
|
33
|
+
# idCount = 0;
|
34
|
+
#
|
35
|
+
# for (j=0; j < selector.parts.length; j++){
|
36
|
+
# part = selector.parts[j];
|
37
|
+
# if (part.type == parser.SELECTOR_PART_TYPE){
|
38
|
+
# for (k=0; k < part.modifiers.length; k++){
|
39
|
+
# modifier = part.modifiers[k];
|
40
|
+
# if (modifier.type == "id"){
|
41
|
+
# idCount++;
|
42
|
+
# }
|
43
|
+
# }
|
44
|
+
# }
|
45
|
+
# }
|
46
|
+
#
|
47
|
+
# if (idCount == 1){
|
48
|
+
# reporter.report("Don't use IDs in selectors.", selector.line, selector.col, rule);
|
49
|
+
# } else if (idCount > 1){
|
50
|
+
# reporter.report(idCount + " IDs in the selector, really?", selector.line, selector.col, rule);
|
51
|
+
# }
|
52
|
+
# }
|
53
|
+
#
|
54
|
+
# });
|
55
|
+
# }
|
56
|
+
#
|
57
|
+
# });
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Don't use @import, use <link> instead.
|
10
|
+
# */
|
11
|
+
# /*global CSSLint*/
|
12
|
+
# CSSLint.addRule({
|
13
|
+
#
|
14
|
+
# //rule information
|
15
|
+
# id: "import",
|
16
|
+
# name: "Disallow @import",
|
17
|
+
# desc: "Don't use @import, use <link> instead.",
|
18
|
+
# browsers: "All",
|
19
|
+
#
|
20
|
+
# //initialization
|
21
|
+
# init: function(parser, reporter){
|
22
|
+
# var rule = this;
|
23
|
+
#
|
24
|
+
# parser.addListener("import", function(event){
|
25
|
+
# reporter.report("@import prevents parallel downloads, use <link> instead.", event.line, event.col, rule);
|
26
|
+
# });
|
27
|
+
#
|
28
|
+
# }
|
29
|
+
#
|
30
|
+
# });
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Make sure !important is not overused, this could lead to specificity
|
10
|
+
# * war. Display a warning on !important declarations, an error if it's
|
11
|
+
# * used more at least 10 times.
|
12
|
+
# */
|
13
|
+
# /*global CSSLint*/
|
14
|
+
# CSSLint.addRule({
|
15
|
+
#
|
16
|
+
# //rule information
|
17
|
+
# id: "important",
|
18
|
+
# name: "Disallow !important",
|
19
|
+
# desc: "Be careful when using !important declaration",
|
20
|
+
# browsers: "All",
|
21
|
+
#
|
22
|
+
# //initialization
|
23
|
+
# init: function(parser, reporter){
|
24
|
+
# var rule = this,
|
25
|
+
# count = 0;
|
26
|
+
#
|
27
|
+
# //warn that important is used and increment the declaration counter
|
28
|
+
# parser.addListener("property", function(event){
|
29
|
+
# if (event.important === true){
|
30
|
+
# count++;
|
31
|
+
# reporter.report("Use of !important", event.line, event.col, rule);
|
32
|
+
# }
|
33
|
+
# });
|
34
|
+
#
|
35
|
+
# //if there are more than 10, show an error
|
36
|
+
# parser.addListener("endstylesheet", function(){
|
37
|
+
# reporter.stat("important", count);
|
38
|
+
# if (count >= 10){
|
39
|
+
# reporter.rollupWarn("Too many !important declarations (" + count + "), try to use less than 10 to avoid specificity issues.", rule);
|
40
|
+
# }
|
41
|
+
# });
|
42
|
+
# }
|
43
|
+
#
|
44
|
+
# });
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Properties should be known (listed in CSS3 specification) or
|
10
|
+
# * be a vendor-prefixed property.
|
11
|
+
# */
|
12
|
+
# /*global CSSLint*/
|
13
|
+
# CSSLint.addRule({
|
14
|
+
#
|
15
|
+
# //rule information
|
16
|
+
# id: "known-properties",
|
17
|
+
# name: "Require use of known properties",
|
18
|
+
# desc: "Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",
|
19
|
+
# browsers: "All",
|
20
|
+
#
|
21
|
+
# //initialization
|
22
|
+
# init: function(parser, reporter){
|
23
|
+
# var rule = this;
|
24
|
+
#
|
25
|
+
# parser.addListener("property", function(event){
|
26
|
+
# var name = event.property.text.toLowerCase();
|
27
|
+
#
|
28
|
+
# // the check is handled entirely by the parser-lib (https://github.com/nzakas/parser-lib)
|
29
|
+
# if (event.invalid) {
|
30
|
+
# reporter.report(event.invalid.message, event.line, event.col, rule);
|
31
|
+
# }
|
32
|
+
#
|
33
|
+
# });
|
34
|
+
# }
|
35
|
+
#
|
36
|
+
# });
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: outline: none or outline: 0 should only be used in a :focus rule
|
10
|
+
# * and only if there are other properties in the same rule.
|
11
|
+
# */
|
12
|
+
# /*global CSSLint*/
|
13
|
+
# CSSLint.addRule({
|
14
|
+
#
|
15
|
+
# //rule information
|
16
|
+
# id: "outline-none",
|
17
|
+
# name: "Disallow outline: none",
|
18
|
+
# desc: "Use of outline: none or outline: 0 should be limited to :focus rules.",
|
19
|
+
# browsers: "All",
|
20
|
+
# tags: ["Accessibility"],
|
21
|
+
#
|
22
|
+
# //initialization
|
23
|
+
# init: function(parser, reporter){
|
24
|
+
# var rule = this,
|
25
|
+
# lastRule;
|
26
|
+
#
|
27
|
+
# function startRule(event){
|
28
|
+
# if (event.selectors){
|
29
|
+
# lastRule = {
|
30
|
+
# line: event.line,
|
31
|
+
# col: event.col,
|
32
|
+
# selectors: event.selectors,
|
33
|
+
# propCount: 0,
|
34
|
+
# outline: false
|
35
|
+
# };
|
36
|
+
# } else {
|
37
|
+
# lastRule = null;
|
38
|
+
# }
|
39
|
+
# }
|
40
|
+
#
|
41
|
+
# function endRule(event){
|
42
|
+
# if (lastRule){
|
43
|
+
# if (lastRule.outline){
|
44
|
+
# if (lastRule.selectors.toString().toLowerCase().indexOf(":focus") == -1){
|
45
|
+
# reporter.report("Outlines should only be modified using :focus.", lastRule.line, lastRule.col, rule);
|
46
|
+
# } else if (lastRule.propCount == 1) {
|
47
|
+
# reporter.report("Outlines shouldn't be hidden unless other visual changes are made.", lastRule.line, lastRule.col, rule);
|
48
|
+
# }
|
49
|
+
# }
|
50
|
+
# }
|
51
|
+
# }
|
52
|
+
#
|
53
|
+
# parser.addListener("startrule", startRule);
|
54
|
+
# parser.addListener("startfontface", startRule);
|
55
|
+
# parser.addListener("startpage", startRule);
|
56
|
+
# parser.addListener("startpagemargin", startRule);
|
57
|
+
# parser.addListener("startkeyframerule", startRule);
|
58
|
+
#
|
59
|
+
# parser.addListener("property", function(event){
|
60
|
+
# var name = event.property.text.toLowerCase(),
|
61
|
+
# value = event.value;
|
62
|
+
#
|
63
|
+
# if (lastRule){
|
64
|
+
# lastRule.propCount++;
|
65
|
+
# if (name == "outline" && (value == "none" || value == "0")){
|
66
|
+
# lastRule.outline = true;
|
67
|
+
# }
|
68
|
+
# }
|
69
|
+
#
|
70
|
+
# });
|
71
|
+
#
|
72
|
+
# parser.addListener("endrule", endRule);
|
73
|
+
# parser.addListener("endfontface", endRule);
|
74
|
+
# parser.addListener("endpage", endRule);
|
75
|
+
# parser.addListener("endpagemargin", endRule);
|
76
|
+
# parser.addListener("endkeyframerule", endRule);
|
77
|
+
#
|
78
|
+
# }
|
79
|
+
#
|
80
|
+
# });
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Don't use classes or IDs with elements (a.foo or a#foo).
|
10
|
+
# */
|
11
|
+
# /*global CSSLint*/
|
12
|
+
# CSSLint.addRule({
|
13
|
+
#
|
14
|
+
# //rule information
|
15
|
+
# id: "overqualified-elements",
|
16
|
+
# name: "Disallow overqualified elements",
|
17
|
+
# desc: "Don't use classes or IDs with elements (a.foo or a#foo).",
|
18
|
+
# browsers: "All",
|
19
|
+
#
|
20
|
+
# //initialization
|
21
|
+
# init: function(parser, reporter){
|
22
|
+
# var rule = this,
|
23
|
+
# classes = {};
|
24
|
+
#
|
25
|
+
# parser.addListener("startrule", function(event){
|
26
|
+
# var selectors = event.selectors,
|
27
|
+
# selector,
|
28
|
+
# part,
|
29
|
+
# modifier,
|
30
|
+
# i, j, k;
|
31
|
+
#
|
32
|
+
# for (i=0; i < selectors.length; i++){
|
33
|
+
# selector = selectors[i];
|
34
|
+
#
|
35
|
+
# for (j=0; j < selector.parts.length; j++){
|
36
|
+
# part = selector.parts[j];
|
37
|
+
# if (part.type == parser.SELECTOR_PART_TYPE){
|
38
|
+
# for (k=0; k < part.modifiers.length; k++){
|
39
|
+
# modifier = part.modifiers[k];
|
40
|
+
# if (part.elementName && modifier.type == "id"){
|
41
|
+
# reporter.report("Element (" + part + ") is overqualified, just use " + modifier + " without element name.", part.line, part.col, rule);
|
42
|
+
# } else if (modifier.type == "class"){
|
43
|
+
#
|
44
|
+
# if (!classes[modifier]){
|
45
|
+
# classes[modifier] = [];
|
46
|
+
# }
|
47
|
+
# classes[modifier].push({ modifier: modifier, part: part });
|
48
|
+
# }
|
49
|
+
# }
|
50
|
+
# }
|
51
|
+
# }
|
52
|
+
# }
|
53
|
+
# });
|
54
|
+
#
|
55
|
+
# parser.addListener("endstylesheet", function(){
|
56
|
+
#
|
57
|
+
# var prop;
|
58
|
+
# for (prop in classes){
|
59
|
+
# if (classes.hasOwnProperty(prop)){
|
60
|
+
#
|
61
|
+
# //one use means that this is overqualified
|
62
|
+
# if (classes[prop].length == 1 && classes[prop][0].part.elementName){
|
63
|
+
# reporter.report("Element (" + classes[prop][0].part + ") is overqualified, just use " + classes[prop][0].modifier + " without element name.", classes[prop][0].part.line, classes[prop][0].part.col, rule);
|
64
|
+
# }
|
65
|
+
# }
|
66
|
+
# }
|
67
|
+
# });
|
68
|
+
# }
|
69
|
+
#
|
70
|
+
# });
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# This rule is taken from https://github.com/stubbornella/csslint/tree/master/src/rules
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# Copyright (c) 2011 Nicole Sullivan and Nicholas C. Zakas. All rights reserved.
|
5
|
+
# TODO: Paste the CSSLint LICENSE here.
|
6
|
+
#
|
7
|
+
#
|
8
|
+
# /*
|
9
|
+
# * Rule: Headings (h1-h6) should not be qualified (namespaced).
|
10
|
+
# */
|
11
|
+
# /*global CSSLint*/
|
12
|
+
# CSSLint.addRule({
|
13
|
+
#
|
14
|
+
# //rule information
|
15
|
+
# id: "qualified-headings",
|
16
|
+
# name: "Disallow qualified headings",
|
17
|
+
# desc: "Headings should not be qualified (namespaced).",
|
18
|
+
# browsers: "All",
|
19
|
+
#
|
20
|
+
# //initialization
|
21
|
+
# init: function(parser, reporter){
|
22
|
+
# var rule = this;
|
23
|
+
#
|
24
|
+
# parser.addListener("startrule", function(event){
|
25
|
+
# var selectors = event.selectors,
|
26
|
+
# selector,
|
27
|
+
# part,
|
28
|
+
# i, j;
|
29
|
+
#
|
30
|
+
# for (i=0; i < selectors.length; i++){
|
31
|
+
# selector = selectors[i];
|
32
|
+
#
|
33
|
+
# for (j=0; j < selector.parts.length; j++){
|
34
|
+
# part = selector.parts[j];
|
35
|
+
# if (part.type == parser.SELECTOR_PART_TYPE){
|
36
|
+
# if (part.elementName && /h[1-6]/.test(part.elementName.toString()) && j > 0){
|
37
|
+
# reporter.report("Heading (" + part.elementName + ") should not be qualified.", part.line, part.col, rule);
|
38
|
+
# }
|
39
|
+
# }
|
40
|
+
# }
|
41
|
+
# }
|
42
|
+
# });
|
43
|
+
# }
|
44
|
+
#
|
45
|
+
# });
|