SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
06.04.2025

Convertendo Códigos ANSI para HTML com Perl, Python, Ruby

Resposta Rápida

💡 Dica: A biblioteca JavaScript ansi_up facilita a conversão de sequências ANSI em HTML. Essa abordagem é perfeita para renderizar texto com códigos ANSI em HTML com estilos pré-definidos. Veja o exemplo:

const ansi_up = new AnsiUp(); // Inicializa o objeto
const textWithAnsi = "\\u001b[31mIsso é vermelho\\u001b[0m texto normal."; // Este é o nosso texto original com códigos ANSI
const html = ansi_up.ansi_to_html(textWithAnsi); // Aqui é onde a conversão acontece!
document.getElementById('output').innerHTML = html; // No final, nosso texto é exibido no navegador com as cores designadas

Para usar o ansi_up, basta instalar a biblioteca apropriada e utilizar o método ansi_to_html.

Por outro lado, se você costuma trabalhar na linha de comando do Linux, a ferramenta aha (ANSI HTML Adapter) será um recurso confiável. Ela converte a saída colorida do terminal em documentos HTML formatados de forma elegante:

ls --color=always | aha > ls-output.html // A saída do comando ls será convertida em HTML colorido

Especificidades do Linux: Aha para o Resgate

Instalando o Aha: Uma Questão Técnica

Você pode instalar o aha usando o gerenciador de pacotes apt no Ubuntu ou compilar e instalar o programa a partir do código-fonte.

sudo apt-get install aha // Se você é um usuário do Ubuntu

Ou obtenha a versão mais recente diretamente do GitHub:

git clone https://github.com/theZiz/aha.git // Clone o repositório
cd aha // Navegue até o diretório do projeto
make // Compile-o
sudo make install // Instale-o no sistema

Obtendo Resultados Perfeitos com Aha

Sua saída será sempre perfeita se você executar comandos com formatação. Você pode usar o estilo padrão ou escolher um fundo escuro para o terminal com a opção --black:

ls --color=always | aha > ls-output.html // Exibição padrão em HTML
ls --color=always | aha --black > ls-output.html // Fundo escuro para HTML

Precisão da Conversão: De ANSI para HTML

Ao converter sequências ANSI para HTML, todas as cores de texto e fundos, além dos estilos do terminal, são preservados. Com o aha, sua saída HTML corresponderá exatamente à formatação do terminal.

Notas Especiais: Lembre-se disto

Nota 📝: Algumas sequências de escape raras e temas personalizados de terminal podem não ser convertidos corretamente. Além disso, um grande volume de dados pode desacelerar o processo. Sempre lembre-se de realizar testes antes de aplicar as ferramentas em seu projeto.

Visualização

Imagine como seu texto colorido ganha vida na tela do terminal:

Antes: "Texto regular com códigos ANSI: \\033[1;31m" // Este é um texto bem comum

Conversão:

html_output = ansi_to_html_converter(plain_text_with_ansi) // E ele se transforma em texto colorido
Depois: "Texto regular e **marcadores coloridos**" // E agora nosso texto está colorido!

Uma transformação tão vibrante certamente chamará sua atenção!

Aha e ansi_up: Sempre Há uma Escolha

A escolha entre ansi_up e aha depende do ambiente em que você está trabalhando. Se você está desenvolvendo em JavaScript, então ansi_up é a sua escolha. No entanto, se você costuma trabalhar no terminal Linux, escolha aha. Ao selecionar a ferramenta certa, você trará vida e cor ao seu terminal.

Recursos Úteis

  1. ansi-to-html - npm — Uma biblioteca para converter códigos ANSI em HTML em aplicações Node.js.
  2. GitHub - drudru/ansi_up: Biblioteca JavaScript para converter texto de terminal com códigos ANSI em HTML colorido. — Uma biblioteca JavaScript para converter texto com códigos ANSI em HTML, funcionando sem dependências externas.
  3. Código de escape ANSI - Wikipedia — Descreve o padrão das sequências ANSI para entender seu propósito geral.
  4. Diferença entre \n e \r? - Stack Overflow — Discute as peculiaridades da conversão de códigos de nova linha ANSI para HTML no Stack Overflow.
  5. Xterm.js — Um terminal web capaz de exibir sequências ANSI.
  6. Construa seu próprio Line Command com códigos de escape ANSI — Um artigo sobre como usar códigos ANSI para criar logs de console coloridos.
  7. GitHub - chalk/chalk: 🖍 Uma biblioteca JavaScript para estilizar strings de terminal. — Uma biblioteca JavaScript popular para estilizar strings de terminal, utilizando códigos ANSI.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!