1. Productos
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

Biblioteca Go gratuita para convertir documentos HTML a texto

HTML2Text es una biblioteca Go de código abierto muy simple que puede transformar el marcado HTML en texto plano legible por humanos dentro de aplicaciones Go.

En el panorama digital actual, el contenido debe ser accesible en múltiples formatos y plataformas. HTML2Text es una potente biblioteca Go creada por Jay Taylor que resuelve un desafío fundamental: convertir contenido HTML en texto plano legible y bien formateado. Originalmente desarrollada para garantizar que los correos electrónicos HTML sigan siendo legibles para todos los destinatarios, incluidos aquellos con clientes que no admiten HTML o con necesidades de accesibilidad, esta biblioteca ha evolucionado hasta convertirse en una herramienta versátil para desarrolladores que trabajan con la transformación de contenido.

La biblioteca transforma estructuras HTML complejas, incluidas tablas, listas y enlaces, en texto plano con formato markdown, manteniendo la estructura lógica y la legibilidad. Hay varias características importantes en la biblioteca, como la conversión inteligente de HTML a texto, renderizado de tablas con formato atractivo, opciones de conversión personalizables, interfaz de línea de comandos, entre otras. HTML2Text está escrito en Go puro sin dependencias externas, lo que lo hace rápido para documentos HTML típicos, eficiente en memoria con un diseño amigable para streaming y seguro para hilos, permitiendo su uso concurrente en servidores web. Con su API simple, opciones flexibles y un historial probado en miles de proyectos, HTML2Text merece un lugar en su conjunto de herramientas Go.

Previous Next

Comenzando con HTML2Text

La forma recomendada y más fácil de instalar HTML2Text es usando GitHub. Por favor, use el siguiente comando para una instalación sin problemas.

Instalar la biblioteca HTML2Text a través de GitHub

go get jaytaylor.com/html2text

La biblioteca requiere Go 1.x o superior y no tiene dependencias externas, manteniendo su proyecto ligero. También puede instalarla manualmente; descargue los archivos de la última versión directamente del repositorio GitHub.

Conversión básica de HTML a texto mediante Go

La biblioteca de código abierto HTML2Text facilita a los desarrolladores de software cargar y convertir archivos HTML a formato de texto dentro de sus aplicaciones Go. HTML2Text no solo elimina etiquetas; interpreta inteligentemente la estructura HTML para producir una salida legible para humanos con comprensión semántica de encabezados, párrafos y listas, preservación de enlaces con URLs mostradas entre paréntesis después del texto del enlace, normalización de espacios en blanco que mantiene la legibilidad sin saltos de línea excesivos, soporte de codificación de caracteres incluido UTF-8 con BOM (Byte Order Mark). Aquí hay un ejemplo completo de uso de la biblioteca que permite cargar y convertir HTML a formato de texto dentro de aplicaciones Go.

¿Cómo convertir contenido HTML simple a formato de texto mediante la biblioteca Go?

package main

import (
    "fmt"
    "jaytaylor.com/html2text"
)

func main() {
    html := `
        

Bienvenido a nuestro servicio

Consulte nuestra página de características para obtener más información sobre lo que ofrecemos.

  • Soporte 24/7
  • Prueba gratuita
  • Planes empresariales
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

Renderizado de tablas con formato elegante

Una de las características más destacadas de HTML2Text es su capacidad para renderizar tablas HTML como tablas de texto basadas en ASCII. Las tablas en texto plano suelen convertirse en una sopa de datos desordenada. La función PrettyTables preserva la estructura tabular mediante arte ASCII, haciendo que los datos numéricos, tablas de precios o gráficos comparativos sean legibles en cualquier contexto. Son perfectas para informes automatizados enviados por correo electrónico, salida de herramientas de línea de comandos o notificaciones SMS donde la estructura de los datos es importante. El siguiente ejemplo de código muestra cómo los desarrolladores de software pueden convertir una tabla HTML en una tabla ASCII formateada usando comandos de Go.

¿Cómo convertir una tabla HTML a una tabla ASCII formateada mediante Go?

func sendMonthlyReport(userEmail string, metricsHTML string) {
    // Convert HTML table to formatted ASCII table
    textReport, _ := html2text.FromString(metricsHTML, html2text.Options{
        PrettyTables: true, // Preserves table structure visually
    })
    
    // Even in plain text, the data remains organized:
    // +----------------+-----------+
    // | METRIC         | VALUE     |
    // +----------------+-----------+
    // | Page Views     | 24,589    |
    // | Conversion Rate| 2.4%      |
    // +----------------+-----------+
    
    sendEmail(userEmail, "Monthly Report", textReport)
}

Generación de alternativa de correo electrónico mediante la biblioteca Go

Uno de los casos de uso más comunes de HTML2Text es convertir plantillas de correo electrónico HTML a sus equivalentes en texto plano. Los clientes de correo varían mucho en sus capacidades de renderizado HTML. Algunos usuarios preocupados por la seguridad desactivan HTML por completo, mientras que clientes más antiguos o lectores de pantalla para usuarios con discapacidad visual a menudo funcionan mejor con texto plano. Proporcionar una alternativa de texto no es solo una buena práctica—es esencial para la accesibilidad y la entregabilidad. Al generar automáticamente versiones de texto plano sincronizadas, garantizas que cada destinatario pueda leer tu contenido, reduces los disparadores de filtros de spam y cumples con normas de accesibilidad como WCAG.

¿Cómo generar una alternativa de texto plano de un mensaje de correo electrónico mediante la biblioteca Go?

func sendTransactionalEmail(userEmail, htmlContent string) error {
    // Generate plain text fallback
    textContent, err := html2text.FromString(htmlContent, html2text.Options{})
    if err != nil {
        return fmt.Errorf("failed to create text alternative: %v", err)
    }
    
    // Send multipart email (both HTML and text)
    email := &Email{
        To: userEmail,
        HTMLBody: htmlContent,
        TextBody: textContent, // Critical for users with HTML disabled
    }
    
    return emailService.Send(email)
}

Trabajando con enlaces durante la conversión de HTML a texto

La biblioteca HTML2Text ha incluido soporte completo para manejar enlaces dentro de la conversión de HTML a texto. Los enlaces son particularmente importantes en el contenido HTML, y html2text garantiza que tanto el texto del enlace como la URL se conserven. El texto del enlace se muestra normalmente, mientras que la URL real se agrega entre paréntesis, asegurando que los lectores de la versión de texto plano aún puedan acceder a los recursos enlazados. El siguiente ejemplo muestra cómo lograr esto.

¿Cómo gestionar los enlaces al convertir HTML a texto dentro de aplicaciones Go?

package main

import (
    "fmt"
    "log"
    
    "jaytaylor.com/html2text"
)

func main() {
    htmlContent := `
    
        
            

Consulta nuestro catálogo de productos o visita nuestra página de soporte.

` text, err := html2text.FromString(htmlContent) if err != nil { log.Fatal(err) } fmt.Println(text) }
 Español