retext-smartypants

retext plugin to implement SmartyPants

Usage no npm install needed!

<script type="module">
  import retextSmartypants from 'https://cdn.skypack.dev/retext-smartypants';
</script>

README

retext-smartypants

Build Coverage Downloads Size Sponsors Backers Chat

retext plugin to implement SmartyPants.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install retext-smartypants

Use

import {retext} from 'retext'
import retextSmartypants from 'retext-smartypants'

const file = retext()
  .use(retextSmartypants)
  .processSync('He said, "A \'simple\' english sentence. . ."')

console.log(String(file))

Yields:

He said, “A ‘simple’ english sentence…”

API

This package exports no identifiers. The default export is retextSmartypants.

unified().use(retextSmartypants[, options])

Replaces dumb/straight/typewriter punctuation marks with smart/curly punctuation marks.

options
options.quotes

Create smart quotes (boolean, default: true).

Converts straight double and single quotes to smart double or single quotes.

options.ellipses

Create smart ellipses (boolean, default: true).

Converts triple dot characters (with or without spaces between) into a single Unicode ellipsis character

options.backticks

Create smart quotes from backticks (boolean or 'all', default: true).

When true, converts double back-ticks into an opening double quote, and double straight single quotes into a closing double quote.

When 'all': does the preceding and converts single back-ticks into an opening single quote, and a straight single quote into a closing single smart quote.

Note: Quotes can not be true when backticks is 'all';

options.dashes

Create smart dashes (boolean or 'oldschool', 'inverted', default: true).

When true, converts two dashes into an em-dash character.

When 'oldschool', converts two dashes into an en-dash, and three dashes into an em-dash.

When 'inverted', converts two dashes into an em-dash, and three dashes into an en-dash.

Contribute

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.

License

MIT © Titus Wormer