markdown-it-terminal

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

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
markdown-it-terminal
0.4.0a year ago9 years agoMinified + gzip package size for markdown-it-terminal in KB

Readme

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.