1.0.0 • Published 6 years ago

sbsblint v1.0.0

Weekly downloads
5
License
MIT
Repository
github
Last release
6 years ago

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 \.
  "tag": {
    "name": {}
  }
  • Name with array value attrs means must have \
  "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

1.0.0

6 years ago

1.0.1

6 years ago