remark-textr

remark plugin to improve typography with Textr

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
remark-textr
3606.1.02 months ago8 years agoMinified + gzip package size for remark-textr in KB

Readme

remark-textr
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
remark plugin to improve typographytypewriter-habits with Textr.

Contents

*   [`unified().use(remarkTextr[, options])`](#unifieduseremarktextr-options)
*   [`Options`](#options)
*   [`TextrPlugin`](#textrplugin)

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 pluginunified-create-a-plugin.

Install

This package is ESM onlyesm. In Node.js (version 16+), install with npm:
npm install remark-textr

In Deno with esm.shesmsh:
import remarkTextr from 'https://esm.sh/remark-textr@6'

In browsers with esm.shesmsh:
<script type="module">
  import remarkTextr from 'https://esm.sh/remark-textr@6?bundle'
</script>

Use

Say we have the following file example.md:
````markdown

spread operator...

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:
````markdown

spread operator…

function(...args) { return args; }
````

API

This package exports no identifiers. The default export is remarkTextrapi-remark-text.

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

Improve typographytypewriter-habits with Textr.
Parameters
— configuration
Returns
Transform (Transformerunified-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][textr-locale]
of the content, which is important for stuff like the correct primary and
secondary quotes
  • plugins (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 textrtextr-plugins keyword. You can also create them yourself, as shown in the example above.
Parameters
  • value (string)
— value to transform
  • options (object)
— global configuration passed to textr
Returns
Changed text (string, optional).

Types

This package is fully typed with TypeScript. It exports the additional types Optionsapi-options and TextrPluginapi-textr-plugin.

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)wiki-xss attacks. Textr operates on text nodes, which are always escaped by remark.

Contribute

See contributing.mdcontributing in remarkjs/.githubhealth for ways to get started. See support.mdsupport for ways to get help.
This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.

License

MITlicense © Denys Dovhanauthor