voku/ansi-to-html

一个将包含ANSI代码的文本转换为HTML的库

v3.0.0 2022-06-07 10:39 UTC

This package is auto-updated.

Last update: 2024-09-04 02:38:11 UTC


README

Build Status Coverage Status

PHP的ANSI到HTML5转换器

*** 这只是 "https://github.com/sensiolabs/ansi-to-html" 的分支 ***

这个小型库只做一件事:将包含ANSI代码的文本转换为HTML5片段

require_once __DIR__ . '/vendor/autoload.php';

use voku\AnsiConverter\AnsiToHtmlConverter;

$converter = new AnsiToHtmlConverter();

$html = $converter->convert($ansi);

变量 $ansi 应该包含带有ANSI代码的文本,而 $html 将包含其转换后的HTML5版本。

然后您可以将HTML5片段输出到任何HTML文档中

<html>
    <body>
        <pre style="background-color: black; overflow: auto; padding: 10px 15px; font-family: monospace;"
        ><?php echo $html ?></pre>
    </body>
</html>

转换器支持不同的颜色主题

use voku\AnsiConverter\Theme\SolarizedTheme;

$theme = new SolarizedTheme();
$converter = new AnsiToHtmlConverter($theme);

默认情况下,颜色将内联到HTML中,但您也可以通过关闭样式内联来使用类

$converter = new AnsiToHtmlConverter($theme, false);

并且主题对象的 asCss() 方法允许您以CSS片段的形式检索主题样式

$styles = $theme->asCss();

然后您可以在HTML文档中使用这些样式

<html>
    <head>
        <style>
            <?php echo $styles ?>

            .ansi_box { overflow: auto; padding: 10px 15px; font-family: monospace; }
        </style>
    </head>
    <body>
        <pre class="ansi_color_bg_black ansi_color_fg_white ansi_box"><?php echo $html ?></pre>
    </body>
</html>

您还可以通过使用新的主题调用 setTheme() 方法来覆盖主题。