spech
Check your text for grammar and spelling mistakes using multiple providers
- Multiple libraries/services for grammar and spelling checking
- Multilingual document support
- Zero config
- Can work offline (only with Hunspell provider)
Usage
Files checking
npx spech README.md
File name can be omitted, by default it searches files by **/*.md
mask.
Default language is English, it can be changed with -l
flag:
spech -l ru
spech -l ru-RU -l en-US
- for multilingual documents
String and STDIN checking
You can check a string value using STDIN or --input argument
cat README.md | spech
spech --input 'Check the text'
Directives
disable
<!-- spech-disable -->This text is ignored<!-- spech-enable -->
dictionary
Add a phrase to a local document dictionary
<!-- spech-dictionary myword -->
languages
Add document-specific languages
<!-- spech-languages en es -->
Providers
To configure a provider pass -p
flag:
spech -p hunspell -p yandex
Other options can be set in a config file.
Hunspell
Hunspell is the most popular open-source spell checker which supports a great variety of languages.
GrammarBot
Free grammar checking API. With an API key, you can receive 250 requests/day (~7500/mo) at no cost. Without an API key, requests are limited to 100 per day per IP address (~3000/mo). The API supports only English (en-US and en-GB).
Yandex Speller
Free and very fast spell checker API for en, ru and uk languages. It provides free 10k requests/day or 10m characters/day.
Configuring
Configuration can be stored in:
- spech.config.js
- "spech" section of the package.json
spech.config.js
moduleexports = languages: 'en-us' providers: name: 'hunspell' name: 'grammarBot' apiKey: 'YOUR_API_KEY' ;
Dictionaries
It's possible to add words which are marked as a mistake into a dictionary file. Just create a file with .dic extension in your project root:
mydictionary.dic
# Simple word
browserify
# Regexp
/Component.tsx?/
API Usage
The most useful parts of the library are available through facade class SpellChecker.
Here is a simple example how it can be used:
const Config SpellChecker = ; { const config = ignoreCase: false ; const checker = config; await checker; checker; checker; const noMistakes = await checker; if noMistakes return ; const corrections = checkerdocuments; return corrections;}