# rebber-plugins

> Stringifies custom MDAST nodes to LaTeX

Latest version **4.4.0** (published 2024-04-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install rebber-plugins
pnpm add rebber-plugins
yarn add rebber-plugins
bun add rebber-plugins
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.4.0 |
| Published | 2024-04-27 |
| First published | 2017-08-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 67 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Victor Felder |
| Maintainers | situphen, talone |
| Keywords | mdast, latex |

## Links

- npm: https://www.npmjs.com/package/rebber-plugins
- Repository: https://github.com/zestedesavoir/zmarkdown.git#master
- Homepage: https://github.com/zestedesavoir/zmarkdown/tree/master#readme
- Issues: https://github.com/zestedesavoir/zmarkdown/issues
- npm.io page: https://npm.io/package/rebber-plugins

## Dependencies (2)

- [has](https://npm.io/package/has.md) ^1.0.3
- [xtend](https://npm.io/package/xtend.md) ^4.0.2

## 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

- 4.4.0 (latest) — 2024-04-27
- 4.3.9 — 2024-04-20
- 4.3.8 — 2024-03-01
- 4.3.7 — 2023-07-05
- 4.3.6 — 2023-05-05
- 4.3.5 — 2022-12-27
- 4.3.4 — 2022-12-15
- 4.3.3 — 2022-10-23
- 4.3.2 — 2022-04-02
- 4.3.1 — 2022-03-30
- 4.3.0 — 2022-03-29
- 4.2.3 — 2021-08-30
- 4.2.2 — 2021-06-22
- 4.2.1 — 2021-03-06
- 4.2.0 — 2021-02-14
- … 42 more at https://npm.io/package/rebber-plugins/versions

## README

# rebber-plugins [![Build Status][build-badge]][build-status] [![Coverage Status][coverage-badge]][coverage-status]


**rebber-plugins** is a collection of LaTeX stringifiers for custom [mdast][] nodes. These plugins are intended to be used with [rebber][].

It currently supports:

* [remark-abbr][]
* [remark-align][]
* [remark-custom-blocks][]
* [remark-emoticons][]
* [remark-footnotes][]
* [remark-grid-tables][]
* [remark-iframes][]
* [remark-kbd][]
* [remark-ping][]
* [remark-sub-super][]

## Installation

[npm][]:

```bash
npm install rebber-plugins
```

## Usage

```javascript
const unified = require('unified')
const remarkParser = require('remark-parse')
const rebber = require('rebber')

const {contents} = unified()
  .use(remarkParser, remarkConfig)
  .use(rebber, rebberConfig)
  .processSync('### foo')

console.log(contents);
```

## Supported remark plugins

###### [remark-abbr][]

* `remarkConfig` needs to be configured for `remark-abbr`
* `rebberConfig.overrides.abbr = require('rebber-plugins/dist/type/abbr')`
* `rebberConfig.abbr = (displayText, definition) => ''`


###### [remark-align][]

* `remarkConfig` needs to be configured for `remark-align`
* `rebberConfig.overrides.centerAligned = require('rebber-plugins/dist/type/align')`
* `rebberConfig.overrides.leftAligned = require('rebber-plugins/dist/type/align')`
* `rebberConfig.overrides.rightAligned = require('rebber-plugins/dist/type/align')`
* `rebberConfig.leftAligned = (innerText) => ''`
* `rebberConfig.centerAligned = (innerText) => ''`
* `rebberConfig.rightAligned = (innerText) => ''`
* `rebberConfig.defaultType = (innerText, type) => ''`


###### [remark-custom-blocks][]

* `remarkConfig` needs to be configured for `remark-custom-blocks`
* `rebberConfig.overrides.errorCustomBlock = require('rebber-plugins/dist/type/customBlocks')`
* `rebberConfig.errorCustomBlock = (innerText, environmentName) => ''`


###### [remark-emoticons][]

* `remarkConfig` needs to be configured for `remark-emoticons`
* `rebberConfig.overrides.emoticon = require('rebber-plugins/dist/type/emoticon')`
* `rebberConfig.emoticons = remarkConfig.emoticons`


###### [remark-grid-tables][]

* `remarkConfig` needs to be configured for `remark-grid-tables`
* `rebberConfig.overrides.gridTable = require('rebber-plugins/dist/type/gridTable')`

Proper handling of fenced code blocks in grid tables being hard to achieve in LaTeX, you can use the following preprocessor to automatically move the code blocks to an appendix section and replace the original location with a reference to the appendix section:

```js
  .use(rebber, {
    preprocessors: {
      iframe: require('rebber-plugins/dist/preprocessors/iframe')
    }
  })
```


###### [remark-iframes][]

* `remarkConfig` needs to be configured for `remark-iframes`

`iframe` nodes require some preprocessing before getting compiled to LaTeX:

```javascript
const unified = require('unified')
const remarkParser = require('remark-parse')
const rebber = require('rebber')

const {contents} = unified()
  .use(remarkParser, {
    // see config options in the remark-iframes package
    iframes: {
      'www.dailymotion.com': {
        tag: 'iframe',
        width: 480,
        height: 270,
        disabled: false,
        replace: [
          ['video/', 'embed/video/'],
        ],
        thumbnail: {
          format: 'http://www.dailymotion.com/thumbnail/video/{id}',
          id: '.+/(.+)$'
        }
      },
    }
  })
  .use(rebber, {
    preprocessors: {
      iframe: require('rebber-plugins/dist/preprocessors/iframe')
    }
  })
  .processSync('some markdown')

console.log(contents);
```


###### [remark-kbd][]

* `remarkConfig` needs to be configured for `remark-kbd`
* `rebberConfig.overrides.kbd = require('rebber-plugins/dist/type/kbd')`

###### [remark-ping][]

* `remarkConfig` needs to be configured for `remark-ping`
* `rebberConfig.overrides.ping = require('rebber-plugins/dist/type/ping')`


###### [remark-sub-super][]

* `remarkConfig` needs to be configured for `remark-sub-super`
* `rebberConfig.overrides.sub = require('rebber-plugins/dist/type/sub')`
* `rebberConfig.overrides.sup = require('rebber-plugins/dist/type/sup')`


## License

[MIT][license] © [Zeste de Savoir][zds]

<!-- Definitions -->

[build-badge]: https://img.shields.io/travis/zestedesavoir/zmarkdown.svg

[build-status]: https://travis-ci.org/zestedesavoir/zmarkdown

[coverage-badge]: https://img.shields.io/coveralls/zestedesavoir/zmarkdown.svg

[coverage-status]: https://coveralls.io/github/zestedesavoir/zmarkdown

[license]: https://github.com/zestedesavoir/zmarkdown/blob/master/packages/rebber-plugins/LICENSE-MIT

[rebber]: https://github.com/zestedesavoir/zmarkdown/blob/master/packages/rebber

[zds]: https://zestedesavoir.com

[npm]: https://www.npmjs.com/package/rebber-plugins

[mdast]: https://github.com/syntax-tree/mdast/blob/master/readme.md

[remark-abbr]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-abbr#remark-abbr--

[remark-align]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-align#remark-align--

[remark-custom-blocks]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-custom-blocks#remark-custom-blocks--

[remark-emoticons]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-emoticons#remark-emoticons--

[remark-footnotes]: https://github.com/remarkjs/remark-footnotes

[remark-grid-tables]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-grid-tables#remark-grid-tables--

[remark-iframes]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-iframes#remark-iframes--

[remark-kbd]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-kbd#remark-kbd--

[remark-ping]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-ping#remark-ping--

[remark-sub-super]: https://github.com/zestedesavoir/zmarkdown/tree/master/packages/remark-sub-super#remark-sub-super--

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