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.)
npm install textlint-rule-terminology
textlint --fix --rule terminology Readme.md
You can configure the rule in your .textlintrc
:
{
"rules": {
"terminology": {
// Your options here
}
}
}
Read more about configuring textlint.
Whether to load the default replacements (terms). Example:
{
"rules": {
"terminology": {
// Don't load default replacements
"defaultTerms": false,
}
}
}
Syntax elements to skip. By default skips blockquotes. Example:
{
"rules": {
"terminology": {
// Don't check terms inside links
"skip": ["Link"],
}
}
}
See all available element types.
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.
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"
]
}
}
}
Use textlint-filter-rule-comments to disable terminology check for particular paragraphs:
<!-- textlint-disable terminology -->
Oh my javascript!
<!-- textlint-enable -->
- 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
The change log can be found on the Releases page.
Bug fixes are welcome, but not new features. Please take a moment to review the contributing guidelines.
This software has been developed with lots of coffee, buy me one more cup to keep it going.
Artem Sapegin and contributors.
MIT License, see the included License.md file. Also see the project status.