Skip to content

Instantly share code, notes, and snippets.

@AutoSponge
Created March 21, 2020 15:41
Show Gist options
  • Select an option

  • Save AutoSponge/f67292428488a6252c70286c8a2efec4 to your computer and use it in GitHub Desktop.

Select an option

Save AutoSponge/f67292428488a6252c70286c8a2efec4 to your computer and use it in GitHub Desktop.

Revisions

  1. AutoSponge created this gist Mar 21, 2020.
    46 changes: 46 additions & 0 deletions .betterer.ts
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    const got = require('got');
    const cheerio = require('cheerio');
    const natural = require('natural');
    const sentenceTokenizer = new natural.SentenceTokenizer();
    const wordTokenizer = new natural.WordTokenizer();
    const automatedReadability = require('automated-readability');
    const page = 'https://www.24a11y.com/2019/automating-inclusive-documentation/';
    const { smaller } = require('@betterer/constraints');

    module.exports = {
    readability: {
    test: async () => {
    const response = await got(page);
    const $ = cheerio.load(response.body);
    const paragraphs = $('p')
    .toArray()
    .flatMap((p) => $(p).text().trim() || []);
    const content = paragraphs.join('\n');
    const sentences = sentenceTokenizer.tokenize(content);
    const words = wordTokenizer.tokenize(content);
    const counts = {
    sentence: sentences.length,
    word: words.length,
    character: content.match(/[a-z]/gim).length
    };
    const value = automatedReadability(counts);
    return value;
    },
    constraint: smaller,
    goal: 7
    },
    'reading-time': {
    test: async () => {
    const response = await got(page);
    const $ = cheerio.load(response.body);
    const paragraphs = $('p')
    .toArray()
    .flatMap((p) => $(p).text().trim() || []);
    const content = paragraphs.join('\n');
    const words = wordTokenizer.tokenize(content);
    return words.length / 240;
    },
    constraint: smaller,
    goal: 5
    }
    };
    23 changes: 23 additions & 0 deletions package.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,23 @@
    {
    "name": "betterer-test",
    "version": "1.0.0",
    "description": "example use of betterer",
    "scripts": {
    "test": "npm run betterer -s",
    "betterer": "betterer"
    },
    "author": "Paul <[email protected]>",
    "license": "MIT",
    "dependencies": {
    "@betterer/cli": "^0.5.2",
    "automated-readability": "^1.0.5",
    "cheerio": "^1.0.0-rc.3",
    "got": "^10.6.0",
    "jsdom": "^16.2.0",
    "natural": "^0.6.3"
    },
    "devDependencies": {
    "typescript": "^3.8.3",
    "@betterer/cli": "^0.5.2"
    }
    }