remark-textr
remark plugin to improve typography with Textr.
Contents
What is this?
This package is a unified (remark) plugin to support Textr.
When should I use this?
This project is useful if you want to automatically improve the text in your markdown documents. Textr is a simple way to do that: no need to worry about ASTs. On the other hand, ASTs are powerful, so some things are better done with custom plugins: see Create a plugin.
Install
This package is ESM only. In Node.js (version 16+), install with npm:
npm install remark-textr
In Deno with esm.sh
:
import remarkTextr from 'https://esm.sh/remark-textr@6'
In browsers with esm.sh
:
<script type="module">
import remarkTextr from 'https://esm.sh/remark-textr@6?bundle'
</script>
Use
Say we have the following file example.md
:
## spread operator...
```js
function(...args) { return args; }
```
…and a module example.js
:
/**
* @typedef {import('remark-textr').TextrPlugin} TextrPlugin
*/
import {remark} from 'remark'
import remarkTextr from 'remark-textr'
import {read} from 'to-vfile'
const file = await remark()
.use(remarkTextr, {plugins: [ellipses]})
.process(await read('example.md'))
console.log(String(file))
/**
* Replace triple dots with ellipses.
*
* @type {TextrPlugin}
*/
function ellipses(input) {
return input.replace(/\.{3}/gim, '…')
}
…then running node example.js
yields:
## spread operator…
```js
function(...args) { return args; }
```
API
This package exports no identifiers. The default export is remarkTextr
.
unified().use(remarkTextr[, options])
Improve typography with Textr.
Parameters
options
(Options
, optional) — configuration
Returns
Transform (Transformer
).
Options
Configuration (TypeScript type).
Fields
options
(object
, optional) — configuration passed totextr
; for example, you may want to set the ISO 639-1 locale code of the content, which is important for stuff like the correct primary and secondary quotesplugins
(Array<TextrPlugin | string>
, optional) — textr plugins; if strings are passed in, those are loaded withimport
TextrPlugin
Textr plugin (TypeScript type).
Textr plugins are available on npm labelled with a textr
keyword. You can also create them yourself, as shown in the example above.
Parameters
value
(string
) — value to transformoptions
(object
) — global configuration passed to textr
Returns
Changed text (string
, optional).
Types
This package is fully typed with TypeScript. It exports the additional types Options
and TextrPlugin
.
Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, remark-textr@^6
, compatible with Node.js 16.
This plugin works with unified
version 6+ and remark
version 7+.
Security
Use of remark-textr
does not involve rehype (hast) or user content so there are no openings for cross-site scripting (XSS) attacks. Textr operates on text nodes, which are always escaped by remark.
Contribute
See contributing.md
in remarkjs/.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.