Skip to main content

ANSI codes to HTML converter

Project description

Features

  • It can be used either as module or as a command line tool.

  • Supports most ‘m’ codes (colors and attributes).

  • The apperance can be customized using styles in a very convenient and powerful way.

    • ANSI attributes are mapped to stylable HTML classes (ansi_yellow, ansi_bright…)

    • Text sequences with the same set of ANSI attributes are enclosed in a single span with those classes activated.

    • You can define styles for a class or for a certain combination of classes

    • You can define the style depending on the enclosing container so that different styles can coexist in a single document.

  • It has been test driven developed and back2back tested.

Usage as Python module

  • deansi.styleSheet(): returns the default stylesheet for the ANSI classes you can customize.

  • deansi.deansi(consoleText): returns the HTML conversion

The following example use them to build a simple console look of the output:

import deansi

html_template = """\
<style>
.ansi_terminal {{ background-color: #222; color: #cfc; }}
{defaultStyle}
</style>
<div class="ansi_terminal">{ansiText}</div>
"""
ansiInput = "\033[31mHello World!!\033[m"

print html_template.format(
    defaultStyle = deansi.styleSheet(),
    ansiText = deansi.deansi(ansiInput),
    )

Command line use

deansi can be used as pipe based command line tool. A quite simple use, could be:

$ ls --color | deansi.py > ls.html

Besides, we can use some options to modify its behaviour:

$ deansy.py --help

usage: deansi.py [-h] [-s FILE] [-t FILE] [--dark] [INPUT_FILE] [OUTPUT_FILE]

Converts coloured console output into equivalent HTML

positional arguments:
  INPUT_FILE            the console input to convert (default stdin)
  OUTPUT_FILE           the file where to drop the html output (default
                        stdout)

optional arguments:
  -h, --help            show this help message and exit
  -s FILE, --style FILE
                        use FILE as stylesheet
  -t FILE, --template FILE
                        use FILE as html template
  --dark                use the dark background style

Customizing stylesheets

The default stylesheet looks like this:

.ansi_terminal { background-color: #222; color: #cfc; }
.ansi_terminal { white-space: pre; font-family: monospace; }
.ansi_black { color: black; }
.ansi_red { color: darkred; }
.ansi_green { color: darkgreen; }
.ansi_yellow { color: orange; }
.ansi_blue { color: darkblue; }
.ansi_magenta { color: purple; }
.ansi_cyan { color: darkcyan; }
.ansi_white { color: lightgray; }
.ansi_bright.ansi_black { color: gray; }
.ansi_bright.ansi_red { color: red; }
.ansi_bright.ansi_green { color: green; }
.ansi_bright.ansi_yellow { color: yellow; }
.ansi_bright.ansi_blue { color: blue; }
.ansi_bright.ansi_magenta { color: magenta; }
.ansi_bright.ansi_cyan { color: cyan; }
.ansi_bright.ansi_white { color: white; }
.ansi_bgblack { background-color: black; }
.ansi_bgred { background-color: red; }
.ansi_bggreen { background-color: green; }
.ansi_bgyellow { background-color: yellow; }
.ansi_bgblue { background-color: blue; }
.ansi_bgmagenta { background-color: magenta; }
.ansi_bgcyan { background-color: cyan; }
.ansi_bgwhite { background-color: white; }
.ansi_bright { font-weight: bold; }
.ansi_faint { opacity: .5; }
.ansi_italic { font-style: italic; }
.ansi_underscore { text-decoration: underline; }
.ansi_blink { text-decoration: blink; }
.ansi_reverse { border: 1pt solid; }
.ansi_hide { opacity: 0; }
.ansi_strike { text-decoration: line-through; }

Because of the cascading behaviour of CSS whichever style rules after the default ones, will override those ones. For example if you want to change the yellow color when the ansi bright attribute apply, instead of applying bold font you can say:

.ansi_yellow.ansi_bright { color: #FF7; font-weight: inherit; }

If you want several behaviours in the same html you can use css magic like that:

.my_own_ansi_enviroment .ansi_inverse { font-style: italic; border: none; }

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deansi-1.2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

deansi-1.2.linux-i686.tar.gz (7.7 kB view details)

Uploaded Source

File details

Details for the file deansi-1.2.tar.gz.

File metadata

  • Download URL: deansi-1.2.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for deansi-1.2.tar.gz
Algorithm Hash digest
SHA256 349a13743240e8f580ea33fd63dfaca31cca632f06f957777456c230bd642318
MD5 0413b53790844681d92289eef2965a14
BLAKE2b-256 5465d3ddc93e5ecfdf6d4c9dd3c3d75cdfb85f0d14534f0c720ab735673faf1e

See more details on using hashes here.

File details

Details for the file deansi-1.2.linux-i686.tar.gz.

File metadata

File hashes

Hashes for deansi-1.2.linux-i686.tar.gz
Algorithm Hash digest
SHA256 ed2f84f8628b650c56347ac417cabb6e7153e503d68304f4e906655467a4ea1a
MD5 e123cac70ef66c0385079377e4b2d0c6
BLAKE2b-256 56a1e56808f3cd0fbf9dc636c0cfa676179e0d6c18c5a1f8135b826cd053326e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page