【问题标题】:Rendering terminal output in the browser在浏览器中渲染终端输出
【发布时间】:2022-04-27 14:09:16
【问题描述】:

我有一个文件,其中包含使用screen 实用程序捕获的一堆终端日志。这是一个sn-p:

[A[0m[27m[24m[J[34m~[39m


(base) [38;5;242mbase[39m [35m❯[39m ]133;B[K[?1l>[?2004l

[A[0m[27m[24m[J[34m~[39m

等等等等等等。

输出充满了 ANSI 转义码、\r、\n 等。但我的终端设法很好地呈现了它们,我想我应该也能做到。我找到了一些将 ANSI 代码转换为 HTML 的库,但我认为它们不处理任何其他转义。

我仍然觉得一定有人在我之前以某种方式解决了这个问题。有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: html bash logging terminal ansi


    【解决方案1】:

    我有一个使用为 Rancher 制作的此类库的书签。

    你可以在里面找到那个库:-)

    javascript:var oReq = new XMLHttpRequest();oReq.open("GET", "https://raw.githubusercontent.com/drudru/ansi_up/master/ansi_up.js", true);oReq.onloadend = function (oEvent) {new Function(oReq.responseText)();var el=document.getElementsByTagName("PRE")[0];el.innerHTML=(new AnsiUp).ansi_to_html(el.innerText);};oReq.send();document.body.style="color:white;background-color:black";undefined
    

    对于人类也是可读的版本;-)

    javascript:var oReq = new XMLHttpRequest();
    oReq.open("GET", "https://raw.githubusercontent.com/drudru/ansi_up/master/ansi_up.js", true);
    oReq.onloadend = function (oEvent) {
        new Function(oReq.responseText)();
        var el = document.getElementsByTagName("PRE")[0];
        el.innerHTML = (new AnsiUp).ansi_to_html(el.innerText);
    };
    oReq.send();
    document.body.style = "color:white;background-color:black";
    undefined
    

    【讨论】:

      【解决方案2】:

      an old SE post 有很多不错的答案 根据你的环境,你可能会找到一些其他的包来

      【讨论】:

        猜你喜欢
        • 2019-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        • 2020-04-27
        相关资源
        最近更新 更多