
Product
Introducing Socket Scanning for OpenVSX Extensions
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.
retext-quotes
Advanced tools
retext plugin to check quotes and apostrophes, and warn if their
style ("straight" or “smart”) or level of nesting is not the preferred
style.
npm:
npm install retext-quotes
Say we have the following file, example.txt:
A sentence "with quotes, 'nested' quotes,
and '80s apostrophes."
…and our script, example.js, looks like this:
var vfile = require('to-vfile')
var report = require('vfile-reporter')
var unified = require('unified')
var english = require('retext-english')
var stringify = require('retext-stringify')
var quotes = require('retext-quotes')
unified()
.use(english)
.use(quotes)
.use(stringify)
.process(vfile.readSync('example.txt'), function(err, file) {
console.error(report(err || file))
})
Now, running node example yields:
example.txt
1:12-1:13 warning Expected a smart quote: `“`, not `"` quote retext-quotes
1:26-1:27 warning Expected a smart quote: `‘`, not `'` quote retext-quotes
1:33-1:34 warning Expected a smart quote: `’`, not `'` quote retext-quotes
2:5-2:6 warning Expected a smart apostrophe: `’`, not `'` apostrophe retext-quotes
2:22-2:23 warning Expected a smart quote: `”`, not `"` quote retext-quotes
⚠ 5 warnings
This plugin can be configured to prefer “straight” quotes instead:
.use(english)
- .use(quotes)
+ .use(quotes, {preferred: 'straight'})
.use(stringify)
Now, running node example again would yield:
no issues found
You can also pass in different markers that count as “smart”:
.use(english)
- .use(quotes)
+ .use(quotes, {smart: ['«»', '‹›']})
.use(stringify)
Running node example a final time yields:
example.txt
1:12-1:13 warning Expected a smart quote: `«`, not `"` quote retext-quotes
1:26-1:27 warning Expected a smart quote: `‹`, not `'` quote retext-quotes
1:33-1:34 warning Expected a smart quote: `›`, not `'` quote retext-quotes
2:5-2:6 warning Expected a smart apostrophe: `’`, not `'` apostrophe retext-quotes
2:22-2:23 warning Expected a smart quote: `»`, not `"` quote retext-quotes
⚠ 5 warnings
retext().use(quotes[, options])Check quotes and apostrophes. Emit warnings when they don’t match the preferred style.
This plugin knows about apostrophes as well and prefers ' when
preferred: 'straight', and ’ otherwise.
The values in straight and smart can be one or two characters.
When two, the first character determines the opening quote and the second the
closing quote at that level.
When one, both the opening and closing quote are that character.
The order in which the preferred quotes appear in their respective list
determines which quotes to use at which level of nesting.
So, to prefer ‘’ at the first level of nesting, and “” at the second, pass:
smart: ['‘’', '“”'].
If quotes are nested deeper than the given amount of quotes, the markers wrap
around: a third level of nesting when using smart: ['«»', '‹›'] should have
double guillemets, a fourth single, a fifth double again, etc.
options.preferredStyle of quotes to prefer ('smart' or 'straight', default: 'smart').
options.straightList of quotes to see as “straight” (Array.<string>, default: ['"', '\'']).
options.smartList of quotes to see as “smart” (Array.<string>, default: ['“”', '‘’']).
Each message is emitted as a VFileMessage on file, with the
following fields:
message.sourceName of this plugin ('retext-quotes').
message.ruleIdCategory of message ('apostrophe' or 'quote')
message.actualCurrent not ok character (string).
message.expectedSuggested replacement character (Array.<string>).
retext-contractions
— Check apostrophe use in contractionsretext-diacritics
— Check for proper use of diacriticsretext-sentence-spacing
— Check spacing (one or two spaces) between sentencesSee 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, organisation, or community you agree to abide by its terms.
FAQs
retext plugin to check quotes and apostrophes
The npm package retext-quotes receives a total of 5,854 weekly downloads. As such, retext-quotes popularity was classified as popular.
We found that retext-quotes demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies