textlint-rule-terminology
v5.2.12
Published
TextLint rule to check correct terms spelling
Downloads
18,339
Maintainers
Readme
textlint-rule-terminology
Textlint rule to check and fix terms, brands and technologies spelling in your tech writing in English.
For example:
- Javascript → JavaScript
- NPM → npm
- front-end → frontend
- website → site
- Internet → internet
(You can customize the rules as you wish.)
Installation
npm install textlint-rule-terminology
Usage
textlint --fix --rule terminology Readme.md
Configuration
You can configure the rule in your .textlintrc
:
{
"rules": {
"terminology": {
// Your options here
}
}
}
Read more about configuring textlint.
defaultTerms
(default: true
)
Whether to load the default replacements (terms). Example:
{
"rules": {
"terminology": {
// Don't load default replacements
"defaultTerms": false,
}
}
}
skip
(default ['BlockQuote']
)
Syntax elements to skip. By default skips blockquotes. Example:
{
"rules": {
"terminology": {
// Don't check terms inside links
"skip": ["Link"],
}
}
}
See all available element types.
terms
Additional replacements.
Could be an array of replacements:
{
"rules": {
"terminology": {
// List of terms
"terms": [
// Exact spelling including the case
"JavaScript",
"ESLint",
"Sass",
"Less",
"npm",
// RegExp (case-insensitive) → replacement
["front[- ]end(\\w*)", "frontend$1"],
["back[- ]end(\\w*)", "backend$1"],
["web[- ]?site(s?)", "site$1"],
["hot[- ]key", "hotkey"],
["repo\\b", "repository"],
["CLI tool(s?)", "command line tool$1"],
["build system(s?)", "build tool$1"],
["id['’]?s", "IDs"],
["(\\w+[^.?!]\\)? )webpack", "$1webpack"],
["(\\w+[^.?!]\\)? )internet", "$internet"]
],
}
}
}
A path to a JSON file:
{
"rules": {
"terminology": {
// Load terms from a file
"terms": "~/terms.jsonc",
}
}
}
Or an npm module:
{
"rules": {
"terminology": {
// Load terms from npm
"terms": "@chucknorris/terms",
}
}
}
Check out the default replacements.
exclude
If you don’t like any of the default replacements, you can exclude them. For example, to exclude these entries:
// terms.jsonc
[
'JavaScript',
'API',
['V[ -]?S[ -]?Code', 'Visual Studio Code'],
['walk-through', 'walkthrough'],
['(?<![\\.-])css\\b', 'CSS']
];
You need to copy the exact entry (for array, just the first element) to the exclude
option of the terminology
rule in your Textlint config:
{
"rules": {
"terminology": {
// Excludes terms
"exclude": [
// Simple replacements, the casing should match terms.jsonc entry
"JavaScript",
"API",
// Complex replacements, put only the first array element exactly as
// in terms.jsonc
"V[ -]?S[ -]?Code",
"walk-through",
"(?<![\\.-])css\\b"
]
}
}
}
Tips & tricks
Use textlint-filter-rule-comments to disable terminology check for particular paragraphs:
<!-- textlint-disable terminology -->
Oh my javascript!
<!-- textlint-enable -->
Other textlint rules
- textlint-rule-apostrophe — correct apostrophe usage
- textlint-rule-diacritics — words with diacritics
- textlint-rule-quotes — correct quotes usage
- textlint-rule-stop-words — filler words, buzzwords and clichés
Change log
The change log can be found on the Releases page.
Contributing
Bug fixes are welcome, but not new features. Please take a moment to review the contributing guidelines.
Sponsoring
This software has been developed with lots of coffee, buy me one more cup to keep it going.
Authors and license
Artem Sapegin and contributors.
MIT License, see the included License.md file. Also see the project status.