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
:
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))
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
.
Improve typography with Textr.
Parameters
options
(Options
, optional)
— configuration
Returns
Transform (Transformer
).
Options
Configuration (TypeScript type).
Fields
options
(object
, optional)
— configuration passed to textr
;
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 with import
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.
License
MIT © Denys Dovhan