retext plugin to check for possible profane and vulgar wording.
- What is this?
- When should I use this?
- Install
- Use
- API
- Rules
- Messages
- Types
- Compatibility
- Related
- Contribute
- License
This package is a unified (retext) plugin to check for possible
profane or otherwise vulgar wording, in certain contexts.
It uses cuss for sureness.
You can opt-into this plugin when you’re dealing with your own text and want to check for potential mistakes.
This package is ESM only. In Node.js (version 14.14+, 16.0+), install with npm:
npm install retext-profanitiesIn Deno with esm.sh:
import retextProfanities from 'https://esm.sh/retext-profanities@7'In browsers with esm.sh:
<script type="module">
import retextProfanities from 'https://esm.sh/retext-profanities@7?bundle'
</script>Say our document example.txt contains:
He’s pretty set on beating your butt for sheriff.…and our module example.js looks as follows:
import {read} from 'to-vfile'
import {reporter} from 'vfile-reporter'
import {unified} from 'unified'
import retextEnglish from 'retext-english'
import retextProfanities from 'retext-profanities'
import retextStringify from 'retext-stringify'
const file = await unified()
.use(retextEnglish)
.use(retextProfanities)
.use(retextStringify)
.process(await read('example.txt'))
console.error(reporter(file))…now running node example.js yields:
example.txt
1:33-1:37 warning Be careful with “butt”, it’s profane in some cases butt retext-profanities
⚠ 1 warningThis package exports no identifiers.
The default export is retextProfanities.
Check for possible profane and vulgar wording.
Configuration (optional).
Phrases not to warn about (Array<string>, default: []).
Minimum sureness to warn about, see cuss (number, default: 0).
See rules.md for a list of rules.
Note that Latin-script Arabic (retext-profanities/ar-latn), French
(retext-profanities/fr), Spanish (retext-profanities/es), Italian
(retext-profanities/it), and Portuguese (Brazilian) (retext-profanities/pt)
are also supported.
See rules.md for a list of rules and how rules work.
Each message is emitted as a VFileMessage on file, with
the following fields:
Name of this plugin ('retext-profanities').
See id in rules.md.
Cuss sureness (number).
Profane phrase (string).
Empty array to signal that actual should be removed or changed ([]).
This package is fully typed with TypeScript.
It exports the additional type Options.
Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. Our projects sometimes work with older versions, but this is not guaranteed. It also works in Deno and modern browsers.
retext-equality— check possible insensitive, inconsiderate languageretext-passive— check passive voiceretext-simplify— check phrases for simpler alternatives
See contributing.md in retextjs/.github for ways
to get started.
See support.md for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.