如何将 ConPTY 输出转换为 HTML
How to convert ConPTY output to HTML
我正在使用 ConPTY 节点 api 来模拟终端并捕获文本。在此之前,我使用常规 powershell.exe 终端并使用此模块将其转换为完美运行的 html。
https://www.npmjs.com/package/ansi-to-html
但是现在有了 ConPTY,格式有点不同,效果也不太好。我看到一些奇怪的文字。有谁知道将其转换为友好 HTML 的最佳方法是什么?
想通了
const pty = require('node-pty');
const AnsiTerminal = require('node-ansiterminal').AnsiTerminal;
const AnsiParser = require('node-ansiparser');
const Convert = require('ansi-to-html');
const shell = ptyProcess = pty.spawn('powershell.exe', ['-executionpolicy', 'remotesigned', '-File', 'test.ps1'], { name: 'test', cols: terminal_columns, rows: 30, cwd: __dirname, env: process.env });
var convert = new Convert({
newline:true
});
const terminal_columns = 160;
var terminal = new AnsiTerminal(terminal_columns, 30, 500);
var parser = new AnsiParser(terminal);
ptyProcess.onData((data) => {
const msg = data.toString();
parser.parse(msg);
const str = terminal.toString().trim() + "\n\n";
var html_str = convert.toHtml(str);
});
ptyProcess.onExit(function(data) {
// exit event
});
我正在使用 ConPTY 节点 api 来模拟终端并捕获文本。在此之前,我使用常规 powershell.exe 终端并使用此模块将其转换为完美运行的 html。
https://www.npmjs.com/package/ansi-to-html
但是现在有了 ConPTY,格式有点不同,效果也不太好。我看到一些奇怪的文字。有谁知道将其转换为友好 HTML 的最佳方法是什么?
想通了
const pty = require('node-pty');
const AnsiTerminal = require('node-ansiterminal').AnsiTerminal;
const AnsiParser = require('node-ansiparser');
const Convert = require('ansi-to-html');
const shell = ptyProcess = pty.spawn('powershell.exe', ['-executionpolicy', 'remotesigned', '-File', 'test.ps1'], { name: 'test', cols: terminal_columns, rows: 30, cwd: __dirname, env: process.env });
var convert = new Convert({
newline:true
});
const terminal_columns = 160;
var terminal = new AnsiTerminal(terminal_columns, 30, 500);
var parser = new AnsiParser(terminal);
ptyProcess.onData((data) => {
const msg = data.toString();
parser.parse(msg);
const str = terminal.toString().trim() + "\n\n";
var html_str = convert.toHtml(str);
});
ptyProcess.onExit(function(data) {
// exit event
});