Kramdown::ANSI: A library for rendering Markdown(ish) documents with beautiful ANSI escape sequences in the terminal.
Complete API documentation is available at: GitHub.io
To install Kramdown::ANSI, you can use the following methods:
- Type
gem install kramdown-ansiin your terminal.
- Or add the line
gem 'kramdown-ansi'to your Gemfile and run bundle install in your terminal.
In your own software the library can be used as shown in this example:
require 'kramdown/ansi'
puts Kramdown::ANSI.parse(markdown)You can customize the ANSI styles by passing an ansi_styles option:
require 'kramdown/ansi'
ansi_styles = {
header: [:bold, :magenta],
strong: :green,
em: :yellow,
code: [:cyan, :underline]
}
puts Kramdown::ANSI.parse(markdown, ansi_styles:)You can configure ANSI styles programmatically from JSON using the built-in methods:
require 'kramdown/ansi'
# Using from_json method
json_config = '{"header": ["bold", "magenta"], "code": ["cyan", "underline"]}'
ansi_styles = Kramdown::ANSI::Styles.from_json(json_config)
# Apply to parsing
puts Kramdown::ANSI.parse(markdown, ansi_styles:)
# Using from_env_var method
ENV['MY_STYLES'] = '{"em": "yellow", "strong": "green"}'
ansi_styles = Kramdown::ANSI::Styles.from_env_var('MY_STYLES')
# Apply to parsing
puts Kramdown::ANSI.parse(markdown, ansi_styles:)| Method | Description | Environment Variables |
|---|---|---|
md executable |
Outputs Markdown files with ANSI escape sequences in the terminal | PAGER, KRAMDOWN_ANSI_MD_STYLES, KRAMDOWN_ANSI_STYLES |
git-md executable |
A Git plugin that outputs Markdown formatted git commit messages into the terminal | PAGER, GIT_PAGER, KRAMDOWN_ANSI_GIT_MD_STYLES, KRAMDOWN_ANSI_STYLES |
The md executable first checks for KRAMDOWN_ANSI_MD_STYLES environment
variable, and if not found, falls back to KRAMDOWN_ANSI_STYLES. These
variables can be used to customize ANSI styles for Markdown rendering. The
git-md executable follows the same pattern, checking
KRAMDOWN_ANSI_GIT_MD_STYLES first, then KRAMDOWN_ANSI_STYLES, allowing
customization of ANSI styles for Git commit message formatting.
The md executable can by used with file arguments:
md Foo.md Bar.md …or as a unix filter:
cat Foo.md Bar.md | mdIt outputs the markdown files with ANSI escape sequences in the terminal. If
the file has more lines than the current terminal window has, it attempts to
open a pager command like less or more and pipes its output into it.
By setting the PAGER environment variable accordingly one can define a custom
command for this purpose.
The output of the md command can be seen in this screenshot:
# Using KRAMDOWN_ANSI_MD_STYLES (most specific for md executable)
KRAMDOWN_ANSI_MD_STYLES='{"header": ["bold", "magenta"], "code": ["cyan", "underline"]}' md README.mdThe git-md executable is a git plugin that can be used to output markdown
formatted git commit messages (just like git log) into the terminal using
git mdYou can pass arguments to it like you would of git log, e.g.
git md -pto show the patches additionally to the log messages.
By setting the GIT_PAGER or PAGER environment variable accordingly one can
define a custom command for this purpose as well, unless a different
pager command was defined setting git config set core.pager FOO, in which
case the FOO command is used as a pager for all git commands including git md.
The output of the git md command can be seen in this screenshot:
# Using KRAMDOWN_ANSI_GIT_MD_STYLES (most specific for git-md executable)
KRAMDOWN_ANSI_GIT_MD_STYLES='{"header": ["bold", "blue"], "code": "red"}' git mdThe homepage of this library is located at
Kramdown ANSI was written by Florian Frank Florian Frank
This is the end.


