sbsblint
v1.0.0
Published
A simple pattern checker for HTML.
Downloads
1
Readme
Introduction
A simple HTML SEO lint for shopback assignment.
Installation
$ npm install -g sbsblint
Usage
$ sbsblint [target html file] [setting file (option)]
For git clone
$ git clone https://github.com/BakaWang/Sbsblint
$ npm install
$ npm run build
$ node ./bin/sbsblint.js [target html file] [setting file (option)]
In development
###Import
var Sbsblint = require('sbsblint');
###Usage
var sbsblint = new Sbsblint(config);
sbsblint.checkHTML(html);
###Custom message handling
sbsblint.setReportListener(function(message){
//console.log(message);
});
Rules Setting
Pre-difine the rules in file .sbsblintrc
under the directory where you want to execute the lint or use command line parameter.
{
"rules": {
"img-without-alt": true,
"a-without-rel": true,
"strong-more-than": {
"max": 15
},
"h1-more-than": {
"max": 1
},
"head-without-content": {
"title": true,
"meta": {
"name": ["descriptions", "keywords"]
}
}
}
You can simply remove the rule that you don't want from the setting, and you can also define your own rule using "custom" with following rules:
- Name with object value means tag must have <name>.
"tag": {
"name": {}
}
- Name with array value [attrs] means must have <tag name='attrs'>
"tag": {
"name": ["attrs"]
}
- "<=", "=>" define the maximum and minimun tag number.
"tag": {
">=": 1
}
- Support nested structures.
Example:
{
"rules": {
"custom": {
"head": {
"title": {
"<=": 1
},
"meta": {
"abc": ["zxc","rwb"]
}
},
"div": {
">=": 4,
"a": {
">=": 2,
"class": ["fake"]
},
"div": {
"img": {
}
}
},
"img": {
"test": ["test"]
}
}
}
Author
BakaWang