在浏览器中呈现终端输出
Rendering terminal output in the browser
我有一个文件,其中包含使用 screen
实用程序捕获的一堆终端日志。这是一个片段:
[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 的库,但我认为它们不处理任何其他转义。
我仍然觉得一定有人在我之前以某种方式解决了这个问题。有没有简单的方法来做到这一点?
我有一个书签,使用为 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
an old SE post 上有很多不错的答案
根据您的环境,您可能会发现一些其他包
我有一个文件,其中包含使用 screen
实用程序捕获的一堆终端日志。这是一个片段:
[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 的库,但我认为它们不处理任何其他转义。
我仍然觉得一定有人在我之前以某种方式解决了这个问题。有没有简单的方法来做到这一点?
我有一个书签,使用为 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
an old SE post 上有很多不错的答案 根据您的环境,您可能会发现一些其他包