Ansi code to HTML
re-ansi supports:
- Cursor movement:
\n
, line erase and\r
line erase - SGR parameter: italic, bold, underline and line-through
- 3/4 bits color code
re-ansi removes styles on new lines, so that a <br />
can't be nested inside <span style>
elements.
For details, see the AnsiCode.parse
function.
Add to your package.json
:
npm install @softwarefactory-project/re-ansi
Or using yarn:
yarn add @softwarefactory-project/re-ansi
Add to your rescript.json
:
"bs-dependencies": [
+ "@softwarefactory-project/re-ansi"
]
In reason:
let log = "green color: \x1b[01m\x1b[01;32mOK\x1b[00m";
@react.component
let make = () => {
<Ansi log />
}
In javascript:
import Ansi from "@softwarefactory-project/re-ansi";
let make = () => (
<Ansi log="content..." />;
);
Contributions are most welcome, for example the project needs help to:
- support more ANSI code.
- enable custom colors, such as solarized, by changing the
fourBitColors
function to a property.
Get started by running:
git clone https://github.com/softwarefactory-project/re-ansi
cd re-ansi
npm install
npm run test
Then build and run tests with yarn test
.
Make sure to read about React and Reason too.
- Use a bundle for the published JS library thanks to rescript-lang/rescript#6754 (comment)
- Use @rescript/std instead of rescript.
- Update to rescript version 11.
- Fix support for bright colors.
- Add support for
[m
and[K
.
- Add support for underline and line-through text decoration.
- Add support for lighter font style.
- Add initial support for color reset.
- Add unique keys to react list elements.
- Create a href elements for http links.
- Fix Ansi.parse to return the full document instead of the last line.
- Fix a recursion limit in Ansi.parse for log bigger than 10MB.
- Initial release.