retext-contractions
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatretextretext plugin to check apostrophes in elided contractions: if they exist (
isnt
> isn’t
) and if they are placed properly (is’nt
> isn’t
).Install
This package is ESM only: Node 12+ is needed to use it and it must beimport
ed instead of require
d.npm install retext-contractions
## Use
Say we have the following file, `example.txt`:
```txt
Well, it does’nt have to be so bad yall, it isnt like the 80’s.
…and our script,
example.js
, looks like this:import {readSync} from 'to-vfile'
import {reporter} from 'vfile-reporter'
import {unified} from 'unified'
import retextEnglish from 'retext-english'
import retextContractions from 'retext-contractions'
import retextStringify from 'retext-stringify'
const file = readSync('example.txt')
unified()
.use(retextEnglish)
.use(retextContractions)
.use(retextStringify)
.process(file, (file) => {
console.error(reporter(file))
})
Now, running
node example
yields:example.txt
1:10-1:17 warning Expected the apostrophe in `does’nt` to be like this: `doesn’t` retext-contractions retext-contractions
1:36-1:40 warning Expected an apostrophe in `yall`, like this: `y’all` retext-contractions retext-contractions
1:45-1:49 warning Expected an apostrophe in `isnt`, like this: `isn’t` retext-contractions retext-contractions
1:59-1:63 warning Expected the apostrophe in `80’s` to be like this: `’80s` retext-contractions retext-contractions
⚠ 4 warnings
API
This package exports no identifiers. The default export isretextContractions
.retext().use(retextContractions[, options])
Emit warnings when a) elided contractions don’t have their required apostrophe,
and b) when that apostrophe isn’t placed correctly.options
options.straight
Suggest straight ('
) instead of smart (’
) apostrophes (boolean
, default:
false
).
Use retext-quotes
quotes if you want to properly check that though.options.allowLiterals
Include literal phrases (boolean
, default: false
).
The default is to ignore them.Messages
The followingVFileMessage
messages are used:|
source
| ruleId
| Example | Reason |
| - | - | - | - |
| retext-contractions
| missing-smart-apostrophe
| Yall
| Expected an apostrophe in Yall
, like this: Y’all
|
| retext-contractions
| missing-straight-apostrophe
| Yall
, with straight: true
| Expected an apostrophe in Dont
, like this: Don't
|
| retext-contractions
| straight-apostrophe
| Don't
| Expected the apostrophe in Don't
to be like this: Don’t
|
| retext-contractions
| smart-apostrophe
| Don’t
, with straight: true
| Expected the apostrophe in Don’t
to be like this: Don't
|The offending value is stored at
message.actual
, and the suggested values are
stored at message.expected
.Related
— Check for proper use of diacritics
— Check quote and apostrophe usage
— Check spacing between sentences
Contribute
Seecontributing.md
contributing in retextjs/.github
health for ways
to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.