【问题标题】:How to convert ConPTY output to HTML如何将 ConPTY 输出转换为 HTML
【发布时间】:2021-06-05 21:40:45
【问题描述】:

我正在使用 ConPTY 节点 api 来模拟终端并捕获文本。在此之前,我使用常规的 powershell.exe 终端并使用此模块将其转换为完美运行的 html。

https://www.npmjs.com/package/ansi-to-html

但是现在使用 ConPTY,格式略有不同,并且效果不佳。我看到一些奇怪的文字。有谁知道将其转换为友好 HTML 的最佳方法是什么?

https://github.com/microsoft/node-pty

【问题讨论】:

    标签: node.js terminal ansi pty


    【解决方案1】:

    想通了

    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
    });
    

    【讨论】:

    • node-ansiterminal 自带 html-converter,比ansi-to-html 稍强一些。你可能想看看examples,尤其是。 html.js 和 tools.js
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 2017-12-31
    • 2015-07-29
    • 2017-11-19
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多