Noosphere Possibilities Maximized

    yaspeller

    8.0.1 • Public • Published

    yaspeller

    NPM version NPM Downloads Coverage Status install size

    This README is also available in Russian.

    Search tool typos in the text, files and websites.

    Used API Yandex.Speller.

    yaspeller

    Installation

    npm install yaspeller -g

    Using CLI

    yaspeller [options] <file-or-directory-or-link...>

    Using with pre-commit

    Add this to your .pre-commit-config.yaml:

    - repo: https://github.com/hcodes/yaspeller.git
      rev: '' # Use the sha / tag you want to point at
      hooks:
        - id: yaspeller

    Examples

    • yaspeller README.md — search typos in the file.
    • yaspeller "*.md" — node glob syntax for Windows.
    • yaspeller -e ".md,.html,.txt" ./texts/ — finding typos in files in the folder.
    • yaspeller https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BA%D0%B0 — search typos in the page.
    • yaspeller http://bem.info/sitemap.xml — search typos at the addresses specified in the sitemap.xml.
    • echo "Hello, world!" | yaspeller --stdin
    • echo "Hello, world!" | yaspeller --stdin --stdin-filename hello.txt

    Options

    -f, --format <value>

    Formats: plain, html, markdown or auto.
    Default: auto.

    -l, --lang <value>

    Languages: en, ru or uk.
    Default: en,ru.

    -c, --config <path>

    Configuration file path.

    -e, --file-extensions <value>

    Set file extensions to search for files in a folder.
    Example: .md,.htm,.txt.

    --dictionary <file>

    JSON file for own dictionary.

    [
        "someword1", // someword1 = someword1 and Someword1
        "Someword2", // Someword2 = Someword2
        "someword3"
    ]

    Regular expressions are supported:

    [
        "unknownword",
        "unknown(W|w)ord[12]?", // unknown(W|w)ord[12]? = unknown(W|w)ord[12]? and Unknown(W|w)ord[12]?
        "Unknown(W|w)ord[34]?" // Unknown(W|w)ord[34]? = Unknown(W|w)ord[34]?
    ]

    Examples:
    yaspeller --dictionary my_dict.json .
    yaspeller --dictionary my_dict.json:my_dict2.json .

    If you have tons of markdown and introduce this linter, you're likely to want generation of initial dictionary with yaspeller-dictionary-builder, so one line will cover all word's forms.

    --report <type>

    Set type of report: console, html, markdown, junit or json.
    Default: console
    Example: console,html,custom_report.js

    --check-yo

    Check the correctness of using the letter “Ё” (Yo) in Russian texts.

    --by-words

    Do not use a dictionary environment (context) during the scan.
    This is useful in cases where the service is transmitted to the input of a list of individual words.

    --find-repeat-words

    Highlight repetitions of words, consecutive. For example, I flew to to to Cyprus.

    --flag-latin

    Flag words, written in Latin, as erroneous.

    --ignore-tags <tags>

    Ignore HTML tags.
    Default: code,kbd,object,samp,script,style,var
    Option to formats html and markdown.

    --ignore-text <regexp>

    Remove the text from the scan using regular expressions.

    --ignore-capitalization

    Ignore the incorrect use of UPPERCASE / lowercase letters, for example, in the word moscow.

    --ignore-digits

    Ignore words with numbers, such as avp17h4534.

    --ignore-latin

    Ignore words, written in Latin, for example, madrid.

    --ignore-roman-numerals

    Ignore Roman numerals I, II, III, ....

    --ignore-uppercase

    Ignore words written in capital letters.

    --ignore-urls

    Ignore Internet addresses, email addresses and filenames.

    --max-requests <value>

    Max count of requests in parallel.
    Default: 2.

    --no-color

    Clean output without colors.

    --only-errors

    Output only errors.

    --stdin

    Process files on <STDIN>. Default: false

    --stdin-filename <file>

    Specify filename to process <STDIN> as. Used in reports.

    --debug

    Debug mode.

    Configuration

    npm install yaspeller --save-dev

    Add the text in package.json / scripts:
    "yaspeller": "yaspeller .",

    To run the linter:
    npm run yaspeller

    yaspeller is configured using JSON file at the root of the project:

    • .yaspellerrc
    • .yaspellerrc.js
    • .yaspellerrc.json
    • .yaspeller.json
    • package.json, field yaspeller
    {
      "excludeFiles": [
        ".git",
        "libs",
        "node_modules",
        "yaspeller"
      ],
      "lang": "ru",
      "fileExtensions": [
        ".md",
        ".css"
      ],
      "dictionary": [
        "someword1"
      ]
    }

    Advanced example:

    {
      "excludeFiles": [
        ".git",
        "yaspeller",
        "node_modules",
        "libs"
      ],
      "format": "html",
      "lang": "en",
      "fileExtensions": [
        ".md",
        ".css"
      ],
      "report": ["console", "html"],
      "dictionary": [
        // JSON comments
        "someword1", // someword1 = someword1 and Someword1
        "Someword2", // Someword2 = Someword2
        "some(w|W)ord[23]", // some(w|W)ord[23] = some(w|W)ord[23] and Some(w|W)ord[23]
        "Some(w|W)ord" // Some(w|W)ord = Some(w|W)ord
      ],
      "ignoreText": [
        "<php\?[^]*?\?>", // Shortly
        ["<php\?[^]*?\?>", "g"] // Longly
      ],
      "ignoreTags": ["code", "script"],
      "ignoreUrls": true,
      "findRepeatWords": true,
      "maxRequests": 5
    }
    Property  Type Details
    format String --format
    lang String --lang
    excludeFiles Array
    fileExtensions Array --file-extension
    dictionary Array --dictionary
    report Array --report
    checkYo Boolean --check-yo
    byWords Boolean --by-words
    findRepeatWords Boolean --find-repeat-words
    flagLatin Boolean --flag-latin
    ignoreTags Array --ignore-tags
    ignoreText Array --ignore-text
    ignoreCapitalization Boolean --ignore-capitalization
    ignoreDigits Boolean --ignore-digits
    ignoreLatin Boolean --ignore-latin
    ignoreRomanNumerals Boolean --ignore-roman-numerals
    ignoreUppercase Boolean --ignore-uppercase
    ignoreUrls Boolean --ignore-urls
    maxRequests Number --max-requests

    Ignore text from checking

    Ignore a line

    var re = /a-z/; // yaspeller ignore
    var re = /a-z/; /* yaspeller ignore */
    <span>a-z</span> <!-- yaspeller ignore -->

    Ignore a block

    /* yaspeller ignore:start */
    const reUpper = /A-Z/;
    const reLower = /a-z/;
    /* yaspeller ignore:end */
    <!-- yaspeller ignore:start -->
    <span>A-Z</span>
    <div>a-z</div>
    <!-- yaspeller ignore:end -->

    Gulp plugin

    const gulp = require('gulp');
    const run = require('gulp-run'); // npm install gulp-run --save-dev
    
    gulp.task('yaspeller', function (cb) {
        run('./node_modules/.bin/yaspeller .').exec()
            .on('error', function (err) {
                console.error(err.message);
                cb();
            })
            .on('finish', cb);
    });

    Grunt plugin

    module.exports = function(grunt) {
        grunt.loadNpmTasks('grunt-shell'); // npm install grunt-shell --save-dev
        grunt.initConfig({
            shell: {
                yaspeller: {
                    options: {stderr: false},
                    command: './node_modules/.bin/yaspeller .'
                }
            }
        });
        grunt.registerTask('lint', ['shell:yaspeller']);
    };

    Restrictions API Yandex.Speller

    Links

    License

    MIT License

    Install

    npm i yaspeller

    DownloadsWeekly Downloads

    1,741

    Version

    8.0.1

    License

    MIT

    Unpacked Size

    96.9 kB

    Total Files

    40

    Last publish

    Collaborators

    • hcodes