danger-plugin-spellcheck
Spell checks any created or modified files in a GitHub PR using
- node-markdown-spellcheck for Markdown.
- cspell for code (opt-in).
Usage
Install:
yarn add danger-plugin-spellcheck --dev
At a glance:
// dangerfile.js
import spellcheck from 'danger-plugin-spellcheck'
spellcheck()
You can have a shared repo for the settings for your spell checking, or you can have a file called spellcheck.json
in your repo's root.
// dangerfile.js
import spellcheck from 'danger-plugin-spellcheck'
spellcheck({ settings: "artsy/artsy-danger@spellcheck.json" })
The JSON should look something like:
{
"ignore": ["orta", "artsy", "github", "/danger-*."],
"whitelistFiles": ["README.md"]
}
The "ignore"
section is case in-sensitive for words, if a word has a prefix of "/"
then it will be treated as a RegExp
.
The "whitelistFiles"
section is an array of files which will NOT be spellchecked.
Dynamic Content
The spellcheck function also accepts ignore
and whitelistFiles
as properties of the options object. If you already have a list of spell check exceptions (e.g. from your editor), you can build them in your dangerfile and pass them in to your spellcheck function call.
// dangerfile.js
import spellcheck from 'danger-plugin-spellcheck'
spellcheck({
ignore: ['Nachoz', 'Tacoz'],
whitelistFiles: ['README.md']
})
Checking Code
The spellcheck also takes a set of globs to run cspell against:
// dangerfile.js
import spellcheck from 'danger-plugin-spellcheck'
spellcheck({
ignore: ['Nachoz', 'Tacoz'],
whitelistFiles: ['README.md'],
codeSpellCheck: ["**/*.ts", "**/*.js"]
})
Peril
If you're using Peril you can use both a global settings for org wide-spellchecking, and then have local additions to any of the settings. This can make it easier to handle specific one off cases that feel a bit too unique to a single project.
Here is our Artsy setup where we do this:
Credits
This was created by Orta Therox and Yuki Nishijima in an amazing pairing session on cold thursday before an Artsy Happy Hour.
Contributing
See CONTRIBUTING.md.