# markdown-it-terminal

> Plugin for markdown-it to parse and output markdown formatted for the terminal

Latest version **0.4.0** (published 2022-12-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install markdown-it-terminal
pnpm add markdown-it-terminal
yarn add markdown-it-terminal
bun add markdown-it-terminal
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.0 |
| Published | 2022-12-14 |
| First published | 2015-03-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 22.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | Jake Bixby |
| Maintainers | trabus |
| Keywords | markdown, markdown-it, terminal, cardinal, markdown-to-terminal |

## Links

- npm: https://www.npmjs.com/package/markdown-it-terminal
- Repository: https://github.com/trabus/markdown-it-terminal
- Issues: https://github.com/trabus/markdown-it-terminal/issues
- npm.io page: https://npm.io/package/markdown-it-terminal

## Dependencies (4)

- [cardinal](https://npm.io/package/cardinal.md) ^1.0.0
- [cli-table](https://npm.io/package/cli-table.md) ^0.3.1
- [ansi-styles](https://npm.io/package/ansi-styles.md) ^3.0.0
- [lodash.merge](https://npm.io/package/lodash.merge.md) ^4.6.2

## Alternatives

- [localforage](https://npm.io/package/localforage.md) — 6.2M weekly downloads
- [localforage-observable](https://npm.io/package/localforage-observable.md) — 30.8K weekly downloads
- [@y/y](https://npm.io/package/@y/y.md) — 30.1K weekly downloads
- [@metaobjectsdev/render](https://npm.io/package/@metaobjectsdev/render.md) — 3.5K weekly downloads
- [@ledgerhq/coin-algorand](https://npm.io/package/@ledgerhq/coin-algorand.md) — 1.1K weekly downloads

## Recent versions

- 0.4.0 (latest) — 2022-12-14
- 0.3.0 — 2022-12-05
- 0.2.1 — 2020-05-08
- 0.1.1 — 2019-11-09
- 0.1.0 — 2017-03-28
- 0.0.4 — 2016-08-06
- 0.0.3 — 2015-12-06
- 0.0.2 — 2015-03-14
- 0.0.1 — 2015-03-14

## README

markdown-it-terminal
===
[![Build Status](https://travis-ci.org/trabus/markdown-it-terminal.svg)](https://travis-ci.org/trabus/markdown-it-terminal)

This is a plugin to provide ansi terminal output for markdown-it. It is heavily inspired by [marked-terminal](https://github.com/mikaelbr/marked-terminal), a terminal renderer for the marked library.

__This library is not officially supported by markdown-it.__

## Install

`npm install markdown-it markdown-it-terminal`

## Usage

`markdown-it` provides a method for extending it with plugins.
```js
var markdown = require('markdown-it');
var terminal = require('markdown-it-terminal');

markdown.use(terminal);
```

You can override the default options if you choose.
```js
var styles   = require('ansi-styles');
var markdown = require('markdown-it');
var terminal = require('markdown-it-terminal');

var options = {
  styleOptions: {
    code: styles.green
  }
}
markdown.use(terminal, options);
// inline code now prints in green instead of the default yellow
```

## Options
`markdown-it-terminal` takes several options, most of which are to override existing defaults.
```js
var options = {
  styleOptions:{},
  highlight: require('cardinal').highlight,
  unescape: true,
  indent: '  '
}
```

### styleOptions
Styles are defined per token, and make use of the `ansi-styles` library, which provides a number of open and close values for ansi codes.

In the most basic implementation, you can simply provide a supported style like so:
```js
var styles   = require('ansi-styles');

var options = {
  styleOptions: {
    code: styles.green
  }
}
```
`markdown-it-terminal` exposes a utility method to build compound styles, using an array of style names (must be supported by `ansi-styles`).

```js
var styles   = require('ansi-styles');
var terminal = require('markdown-it-terminal');

var options = {
  styleOptions: {
    code: terminal.compoundStyle(['green','underline'])
  }
}
```

The following tokens can be overridden through styleOptions:
* code
* blockquote
* html
* heading
* firstHeading
* hr
* listitem
* table
* paragraph
* strong
* em
* codespan
* del
* link
* href

### highlight
Highlight function to parse code blocks. Should be a function that takes a string and outputs a formatted string.

### unescape
Unescape content, `true` by default.

### indent
Indent all content under a heading (`h1`..`h6`) using this string.  With `indent: '  '` (two spaces):

| Markdown                   | Rendered                      |
| -------------------------- | ----------------------------- |
| <pre># Heading 1<br>## Heading 2<br>Some stuff indented twice<br>#<br>Only indented once</pre> | <pre>Heading 1<br>  Heading 2<br>    Some stuff indented twice<br><br>  Only indented once</pre> |

## Highlighting
`markdown-it-terminal` uses the [cardinal](https://github.com/thlorenz/cardinal) library 
for code highlight support by default.

## Windows Support
Because ansi is not supported on cmd.exe, `markdown-it-terminal` only works on Windows shells with ansi support.

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