remark plugin to improve typography with Textr.
- What is this?
- When should I use this?
- Install
- Use
- API
- Types
- Compatibility
- Security
- Contribute
- License
This package is a unified (remark) plugin to support Textr.
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.
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>
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; }
```
This package exports no identifiers.
The default export is remarkTextr
.
Improve typography with Textr.
options
(Options
, optional) — configuration
Transform (Transformer
).
Configuration (TypeScript type).
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
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.
value
(string
) — value to transformoptions
(object
) — global configuration passed to textr
Changed text (string
, optional).
This package is fully typed with TypeScript.
It exports the additional types Options
and
TextrPlugin
.
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+.
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.
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.