Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

seomonkey

1.1.6 • Public • Published

SeoMonkey

=============================

This monkey tool will help detect your html tags or content by pre-define rules. Hope for fun

Tips

If you use VsCode our package has typing file. Makesure you can develop more easy, You can add //@ts-check on your js file Learn more here

Important

If you want default class can use typing file to checking type. You need change require('seomonkey).default to require('seomonkey).SeoMonkey

Demo VsCode typing Demo

Prerequisites

Makesure you're use NodeJs version 8 and above You can download from here

Install

$ npm i seomonkey

How to play with SeoMonkey

Before start play, You need add config file on project root path. Usually call seomonkey.config.json

semonkey.config.js

{
    "DetectedText":"{RuleName} are match  {Num} of elements,Mini:{Minimum} Max:{Maximum}",
    "MonkeyRules":[
        {
            "RuleName": "MonkeyRule1",
            "SearchRule":"head > title",
            "Minimum" : 1,
            "Maximum":1,
            "DetectedText":"Your {RuleName} is Match {Num} of elements"
        },
        {
            "RuleName":"MonkeyRule2",
            "SearchRule":"img:not([alt])",
            "Maximum":2
        },
        {
            "RuleName":"MonkeyRule3",
            "SearchRule":"head > meta[name='descriptions']",
            "Maximum":1
        },
        {
            "RuleName":"MonkeyRule4",
            "SearchRule":"head > meta[name='keywords']",
            "Maximum":1
        },
        {
            "RuleName":"MonkeyRule5",
            "SearchRule":"strong",
            "Maximum":15
        },
        {
            "RuleName":"MonkeyRule6",
            "SearchRule":"h1",
            "Maximum":1
        }
    ]
}

Config definition

  • DetectedText: (required) Which content and information you want to monkey told you
    • you can replace common detected text by add it to monkeyrules,Please see the MonkeyRule1
    • For got more information,You can use expression on your detected text
      • {RuleName} : Will replace by monkey rule name.
      • {Num} : Will replace by how many html elements is fit the rule.
      • {Minimum} : Will replace by monkey rule definition minimum elements.
      • {Maximum} : Will replace by monkey rule definition maximum elements.
  • MonkeyRules: (required) All of your rules want to monkey search.
    • RuleName: (required) Your favorite rule name.
    • SearchRule: (required) Write the rule by use CSS-Selector.If you're not familer with this please refer this
    • Minimum: Definition minimum elements should be match by rule.If not .The detected text will add [Warning] to remind you. Default: 0
    • Maximum: Definition maximum elements should be match by rule.If not .The detected text will add [Warning] to remind you Default: 0
    • DetectedText: Like common detected text.But this content will overwrite it

Usage

Easy example

    const SeoMonkey = require('seomonkey').default;
    const HtmlSource = require('seomonkey').HtmlSource;
 
    // Init your monkey
    const monkey = new SeoMonkey();
    // Set your source for detect
    monkey.inputSource = new HtmlSource('test.html');
    // Run the save method and get the result
    monkey.saveResultToConsole();

Input Source Definition

  • HtmlSource : This source is let you can input html file path as source.
  • StreamSource: This source is let you can input custom stream as source.

HtmlSource example

You can choose which outputs you want

    const fs = require('fs')
    const SeoMonkey = require('seomonkey').default;
    const HtmlSource = require('seomonkey').HtmlSource;
 
    const monkey = new SeoMonkey();
    monkey.inputSource = new HtmlSource('test.html');
    // Print result to console
    monkey.saveResultToConsole();
    // Save result as stream
    let writerStream = fs.createWriteStream('output.txt');
    monkey.saveResultToStream(writerStream);
    // Save result to file  
    monkey.saveResultToFile('demo.txt');

StreamSource example

    const fs = require('fs')
    const SeoMonkey = require('seomonkey').default;
    const StreamSource = require('seomonkey').StreamSource;
 
    const monkey = new SeoMonkey();
    const readableStream = fs.createReadStream(filePath);
    let stream =   new StreamSource(readableStream);
    monkey.inputSource = stream;
    // Print result to console
    monkey.saveResultToConsole();
    // Save result as stream
    let writerStream = fs.createWriteStream('output.txt');
    monkey.saveResultToStream(writerStream);
    // Save result to file  
    monkey.saveResultToFile('demo.txt');

Change Rule in code example

Add new rule

    const fs = require('fs')
    const SeoMonkey = require('seomonkey').default;
    const HtmlSource = require('seomonkey').HtmlSource;
 
    const monkey = new SeoMonkey();
    // Add new detect rule (The rule will push to the end of rules)
    let rule = new MonkeyRule();
    rule.DetectedText='Hello';
    rule.Maximum=1;
    rule.Minimum=1;
    rule.RuleName='This is new Rule';
    rule.SearchRule='head'
    monkey.config.addRule(rule);
    monkey.inputSource = new HtmlSource('test.html');
    // Print result to console
    monkey.saveResultToConsole();

clearAllRule

    const fs = require('fs')
    const SeoMonkey = require('seomonkey').default;
    const HtmlSource = require('seomonkey').HtmlSource;
    const monkey = new SeoMonkey();
    monkey.config.clearAllRule();
    monkey.inputSource = new HtmlSource('test.html');
    // will not export any result to console. because rules is empty
    monkey.saveResultToConsole();

removeRuleAt

    const fs = require('fs')
    const SeoMonkey = require('seomonkey').default;
    const HtmlSource = require('seomonkey').HtmlSource;
    const monkey = new SeoMonkey();
    monkey.config.removeRuleAt(4);
    monkey.inputSource = new HtmlSource('test.html');
    // MonkeyRule4 is removed ,So detected result and output will not include 
    monkey.saveResultToConsole();

Install

npm i seomonkey

DownloadsWeekly Downloads

1

Version

1.1.6

License

MIT

Unpacked Size

34.8 kB

Total Files

12

Last publish

Collaborators

  • avatar