markdown-it-terminal

0.4.0 • Public • Published

markdown-it-terminal

Build Status

This is a plugin to provide ansi terminal output for markdown-it. It is heavily inspired by 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.

var markdown = require('markdown-it');
var terminal = require('markdown-it-terminal');

markdown.use(terminal);

You can override the default options if you choose.

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.

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:

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).

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
# Heading 1
## Heading 2
Some stuff indented twice
#
Only indented once
Heading 1
Heading 2
Some stuff indented twice

Only indented once

Highlighting

markdown-it-terminal uses the 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.

Package Sidebar

Install

npm i markdown-it-terminal

Weekly Downloads

145,631

Version

0.4.0

License

MIT

Unpacked Size

23.3 kB

Total Files

8

Last publish

Collaborators

  • trabus