# remark-currency-formatter

> A Remark plugin to transform currency amounts into custom format.

Latest version **0.2.1** (published 2024-04-29) · CORE license · 0 weekly downloads

## Install

```sh
npm install remark-currency-formatter
pnpm add remark-currency-formatter
yarn add remark-currency-formatter
bun add remark-currency-formatter
```

## Health

**Score 35/100 (D)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; has provenance; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.1 |
| Published | 2024-04-29 |
| First published | 2024-04-24 |
| Weekly downloads | 0 |
| License | CORE |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=16 |
| Dependencies | 3 |
| Unpacked size | 8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Author | Blockchain Hub |
| Maintainers | coreorg |
| Keywords | remark, plugin, remark-plugin, markdown, links, transform, currency, formatter, ExchNumberFormat, Intl.NumberFormat, docusaurus, gatsby |

## Links

- npm: https://www.npmjs.com/package/remark-currency-formatter
- Repository: https://github.com/bchainhub/remark-currency-formatter
- Homepage: https://github.com/bchainhub/remark-currency-formatter#readme
- Issues: https://github.com/bchainhub/remark-currency-formatter/issues
- npm.io page: https://npm.io/package/remark-currency-formatter

## Dependencies (3)

- [@types/mdast](https://npm.io/package/@types/mdast.md) ^4.0.3
- [unist-util-visit](https://npm.io/package/unist-util-visit.md) ^5.0.0
- [exchange-rounding](https://npm.io/package/exchange-rounding.md) ^1.1.3

## Alternatives

- [@mdxeditor/editor](https://npm.io/package/@mdxeditor/editor.md) — 962.4K weekly downloads
- [mmdb-lib](https://npm.io/package/mmdb-lib.md) — 680.9K weekly downloads
- [playcanvas](https://npm.io/package/playcanvas.md) — 36.2K weekly downloads
- [@glw907/cairn-cms](https://npm.io/package/@glw907/cairn-cms.md) — 967 weekly downloads
- [markdown-to-confluence](https://npm.io/package/markdown-to-confluence.md) — 103 weekly downloads

## Recent versions

- 0.2.1 (latest) — 2024-04-29
- 0.2.0 — 2024-04-27
- 0.1.3 — 2024-04-24
- 0.1.2 — 2024-04-24
- 0.1.1 — 2024-04-24
- 0.1.0 — 2024-04-24

## README

# Remark Currency Formatter

This Remark plugin, "remark-currency-formatter," transforms numerical currency notations within markdown texts into formatted currency strings, enhancing documents with precise and locale-aware currency formatting. It leverages custom currency configurations and the powerful `exchange-rounding` library for accurate and visually appealing currency representations.

## Installation

Install the plugin using npm or yarn:

```bash
npm install remark-currency-formatter
```

Or:

```bash
yarn add remark-currency-formatter
```

## Usage

To automatically format currency notations in markdown texts:

```typescript
import remark from 'remark';
import remarkCurrencyFormatter from 'remark-currency-formatter';

(async () => {
  try {
    const file = await remark()
      .use(remarkCurrencyFormatter, {
        locale: 'en-US',
        customCurrencyData: {
          USD: {
            symbol: '$',
            narrowSymbol: '$',
            code: 'USD',
            name: 'US Dollar',
            defaultDecimals: 2
          }
        }
      })
      .process('Price is $(19.99,USD) and not equivalent to $(23.99,EUR).');
    console.log(String(file));
  } catch (err) {
    throw err;
  }
})();
```

The plugin recognizes currency notations like $(amount,currencyCode) and formats them based on the given customCurrencyData and locale settings.

## Options

Configure the plugin with the following options to customize its behavior and output:

- `locale`: Specify the locale used for formatting currencies (e.g., 'en-US').
- `customCurrencyData`: Define custom currency symbols, names, and decimal precision. This setting is essential for supporting non-standard or digital currencies like Bitcoin.
- Rest of Intl.NumberFormat options: Pass additional options supported by `Intl.NumberFormat` for currency formatting, such as `style`, `currency`, `currencyDisplay`, `minimumFractionDigits`, `maximumFractionDigits`, and `useGrouping`.

Example of customCurrencyData:

```js
{
  BTC: {
    symbol: '₿',
    narrowSymbol: '₿',
    code: 'BTC',
    name: 'Bitcoin',
    defaultDecimals: 8
  }
}
```

## Features

- Dynamic Currency Formatting: Automatically formats monetary values based on locale and custom settings.
- Support for Custom Currencies: Easily add support for any type of currency, including digital currencies like Bitcoin or Ethereum.
- Locale Awareness: Formats numbers according to the specified locale, ensuring that the currency presentation is regionally appropriate.
- Flexible Configuration: Tailor the behavior with a variety of options, adapting the formatter to meet different needs.

## Contributing

Contributions are welcome! Please submit pull requests or open issues to improve the plugin or add new features.

## License

Licensed under the [CORE License](LICENSE).

---
_Source: https://npm.io/package/remark-currency-formatter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
