Socket
Book a DemoInstallSign in
Socket

seo-html-defect-checker

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

seo-html-defect-checker

Lightweight module for checking SEO HTML defect elements.

1.0.2
latest
Source
npmnpm
Version published
Weekly downloads
4
300%
Maintainers
1
Weekly downloads
 
Created
Source

SEO HTML defect checker

Lightweight module for checking SEO HTML defect elements.

Built for

  • NodeJS

Status

Build Status

Installation

This is node.js libarary. Install nodejs first, then:

npm install seo-html-defect-checker

or

yarn add seo-html-defect-checker

How to use?

There are 7 defined rules that you can use to validate HTML.

  • Detect if there are any <img /> tags without alt attribute
  • Detect if there are any <a /> tags without rel attribute
  • In tag
  • Detect if there is any header that doesn’t have <title> tag
  • Detect if there is any header that doesn’t have <meta name=“descriptions” … /> tag
  • Detect if there is any header that doesn’t have <meta name=“keywords” … /> tag
  • Detect if there are more than 15 <strong> tag in HTML (15 is a value should be configurable by user)
  • Detect if a HTML have more than one <H1> tag.

Rules object as follows:

Rules = {
  definedRules : {
    aTagWithoutRel,
    imgTagWithoutAlt,
    dontHaveTitle,
    dontHaveMetaDescription,
    dontHaveMetaKeywords,
    moreThan15StrongTag,
    moreThan1H1Tag,
  }
}

For example:

const {Checker, Rules} = require('seo-html-defect-checker')

const c = new Checker(htmlText)
c.check([Rules.definedRules.aTagWithoutRel], (results) => {
  // manipulate results
})

There is a defined rule list that include 7 rules as follows example:

const {Checker, Rules} = require('seo-html-defect-checker')
const htmlText = loadHtmlFunction() // function return string
const c = new Checker(htmlText)
c.check(Rules.definedRules.defaultRuleList, (results) => { // results is array
  // manipulate results
})

And you can customize the rules list such as

const {Checker, Rules} = require('seo-html-defect-checker')
const htmlText = loadHtmlFunction() // function return string
const c = new Checker(htmlText)
const myRules = [
  Rules.definedRules.aTagWithoutRel,
  Rules.definedRules.dontHaveMetaDescription
]
c.check(myRules, results => {
  console.log(results)
})

Beside that you can customize the rule throw 4 objects:

Rules = {
  //....
  MissAttributeRule,  // check tags that don't have some specific attributes
  MissTagRule,  // check HTML without tags which have some specific attributes (or only just tags)
  MoreTagThanRule, // check there is more than a specific number of tags which occur in HTML
  CustomRule, // custom whatever rule you want
}

Examples:

const {MissAttributeRule, MissTag, MoreTagThan} = Rules
const r1 = new MissAttributeRule('img', {
    alt: null,
})
const r2 = new MissTag('title', {}, 'head >')
const r3 = new MoreTagThan('strong', {}, null, 5)
const rules = [r1, r2, r3]
const c = new Checker(htmlText)
c.check(rules, results => {
  // manipulate results
})
const {CustomRule} = Rules
const r4 = new CustomRule('meta', {
        'keywords*': 'shopping'
    }, 'head >', (dom, selector) => {
        var num = dom.count(selector)
        if (num == 0) {
            return 'miss shopping keyword'
        }
        return null
    })
const c = new Checker(htmlText)
c.check([r4], results => {
  // manipulate results
})

And you can customize your selector query

const r5 = new CustomRule('p', {}, null, (dom, selector) => {
        var num = dom.count('p.highlight:not(.warning)')
        if (num == 0) {
            return `there are ${num} p tags with hightlight class and without warning class`
        }
        return null
    })
const c = new Checker(htmlText)
c.check([r4], results => {
  // manipulate results
})

API

Checker
  • constructor(input, output)
    • input is text or stream reader
    • output is file path or stream writer or console
  • check(rules, cb)
    • rules is an array list, contains rule object
    • cb is callback function with first parameter is results (array) of check
Rules.CustomRule
  • constructor(tag, attributes, prefix, cb)
  • check(domQuery)
Rules.MissAttributeRule
  • constructor(tag, attributes, prefix)
  • check(domQuery)
Rules.MissTag
  • constructor(tag, attributes, prefix)
  • check(domQuery)
Rules.MoreTagThan
  • constructor(tag, attributes, prefix, specificNumber)
  • check(domQuery)

Features

  • Detect HTML element defect by the defined rules
  • Can add customize rule flexibility
  • Support i18n

Contribute

Let people know how they can contribute into your project.

License

A short snippet describing the license (MIT, Apache etc)

MIT © DoHa

Keywords

seo-checker

FAQs

Package last updated on 14 Mar 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.