A Python module and command-line utility for converting .ANS format ANSI art to HTML.
pip install ansipants
python -m ansipants input.ans > output.html
For additional options, run python -m ansipants --help
.
The output is a fragment of HTML, in UTF-8 encoding, intended to be inserted into a preformatted text element (<pre>...</pre>
). Further styling is up to you - for the proper MS-DOS experience, The Ultimate Oldschool PC Font Pack by VileR is recommended.
Example code:
from ansipants import ANSIDecoder
with open('input.ans', 'rt', encoding='cp437') as f:
decoder = ANSIDecoder(f)
print(decoder.as_html())
class ansipants.ANSIDecoder(stream=None, palette='vga', width=80, strict=False)
Parameters:
stream
- the ANSI input data as a file-like object. This should be opened for reading in text mode, which means you'll need to specify the appropriate encoding - for ANSI art created for DOS this will most likely becp437
.palette
- the colour palette to use; either'vga'
or'workbench'
width
- the number of columns the text should wrap atstrict
- If True, the decoder will raise anansipants.ANSIDecodeError
exception on any unrecognised or malformed escape codes; if False, it will skip past them.
ANSIDecoder.as_html()
Returns the HTML output as a string.
ANSIDecoder.as_html_lines()
Returns the HTML output as an iterator, yielding one line at a time.
Matt Westcott matt@west.co.tt