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