1. Des produits
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

Bibliothèque Go gratuite pour convertir des documents HTML en texte

HTML2Text est une bibliothèque Go open source très simple qui peut transformer le balisage HTML en texte brut lisible par l'homme dans les applications Go.

Dans le paysage numérique actuel, le contenu doit être accessible sur plusieurs formats et plateformes. HTML2Text est une puissante bibliothèque Go créée par Jay Taylor qui résout un défi fondamental : convertir le contenu HTML en texte brut lisible et bien formaté. Initialement développée pour garantir que les e‑mails HTML restent lisibles par tous les destinataires — y compris ceux dont les clients désactivent le HTML ou qui ont des besoins d'accessibilité — cette bibliothèque est devenue un outil polyvalent pour les développeurs travaillant à la transformation de contenu.

La bibliothèque transforme des structures HTML complexes, y compris les tableaux, les listes et les liens, en texte brut au format markdown, tout en préservant la structure logique et la lisibilité. Plusieurs fonctionnalités importantes font partie de la bibliothèque, telles que la conversion intelligente HTML‑vers‑texte, le rendu des tableaux avec un formatage élégant, des options de conversion personnalisables, une interface en ligne de commande, etc. HTML2Text est écrit en Go pur sans dépendances externes, ce qui le rend rapide pour les documents HTML typiques, efficace en mémoire grâce à une conception adaptée au streaming et sûr pour une utilisation concurrente dans les serveurs web. Avec son API simple, ses options flexibles et son historique éprouvé dans des milliers de projets, HTML2Text mérite une place dans votre boîte à outils Go.

Previous Next

Premiers pas avec HTML2Text

La méthode recommandée et la plus simple pour installer HTML2Text est d'utiliser GitHub. Veuillez utiliser la commande suivante pour une installation fluide.

Installer la bibliothèque HTML2Text via GitHub

go get jaytaylor.com/html2text

La bibliothèque nécessite Go 1.x ou une version plus récente et n'a aucune dépendance externe, ce qui garde votre projet léger. Vous pouvez également l'installer manuellement ; téléchargez les derniers fichiers de version directement depuis le dépôt GitHub.

Conversion de base du HTML en texte via Go

La bibliothèque open source HTML2Text facilite aux développeurs de logiciels le chargement et la conversion de fichiers HTML en format texte au sein de leurs applications Go. HTML2Text ne se contente pas de supprimer les balises — il interprète intelligemment la structure HTML pour produire une sortie lisible par l'homme avec une compréhension sémantique des titres, paragraphes et listes, la préservation des liens avec les URL affichées entre parenthèses après le texte du lien, la normalisation des espaces blancs qui maintient la lisibilité sans sauts de ligne excessifs, la prise en charge du codage des caractères incluant UTF-8 avec BOM (Byte Order Mark). Voici un exemple complet d'utilisation de la bibliothèque qui permet de charger et de convertir du HTML en format texte dans les applications Go.

Comment convertir un contenu HTML simple en format texte via la bibliothèque Go ?

package main

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

func main() {
    html := `
        

Bienvenue sur notre service

Consultez notre page des fonctionnalités pour plus d'informations sur ce que nous proposons.

  • Support 24/7
  • Essai gratuit
  • Plans d'entreprise
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

Rendu de tableau avec un formatage élégant

Une des caractéristiques remarquables de HTML2Text est sa capacité à rendre les tableaux HTML sous forme de tableaux texte basés sur l'ASCII. Les tableaux en texte brut deviennent généralement un mélange confus de données. La fonction PrettyTables préserve la structure tabulaire en utilisant de l'art ASCII, rendant les données numériques, les tableaux de prix ou les graphiques comparatifs lisibles dans n'importe quel contexte. Elles sont parfaites pour les rapports automatisés envoyés par e‑mail, la sortie d'outils en ligne de commande ou les notifications SMS où la structure des données est importante. L'exemple de code suivant montre comment les développeurs peuvent convertir un tableau HTML en tableau ASCII formaté à l'aide des commandes Go.

Comment convertir un tableau HTML en tableau ASCII formaté via 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)
}

Génération de secours d'e-mail via la bibliothèque Go

Un des cas d'utilisation les plus courants de HTML2Text consiste à convertir les modèles d'e-mails HTML en leurs équivalents en texte brut. Les clients de messagerie varient largement dans leurs capacités de rendu HTML. Certains utilisateurs soucieux de la sécurité désactivent complètement le HTML, tandis que les clients plus anciens ou les lecteurs d'écran pour les personnes malvoyantes fonctionnent souvent mieux avec du texte brut. Fournir une alternative texte n'est pas seulement une bonne pratique — c'est essentiel pour l'accessibilité et la délivrabilité. En générant automatiquement des versions texte synchronisées, vous assurez que chaque destinataire puisse lire votre contenu, réduire les déclencheurs de filtres anti-spam et vous conformer aux normes d'accessibilité comme le WCAG.

Comment générer une version texte brut d'un message email via la bibliothèque 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)
}

Travailler avec les liens lors de la conversion HTML en texte

La bibliothèque HTML2Text inclut une prise en charge complète du traitement des liens lors de la conversion du HTML en texte. Les liens sont particulièrement importants dans le contenu HTML, et html2text veille à ce que le texte du lien ainsi que l'URL soient conservés. Le texte du lien est affiché normalement, tandis que l'URL réelle est ajoutée entre parenthèses, garantissant que les lecteurs de la version texte puissent toujours accéder aux ressources liées. L'exemple suivant montre comment y parvenir.

Comment gérer les liens lors de la conversion du HTML en texte dans les applications Go ?

package main

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

func main() {
    htmlContent := `
    
        
            

Check out our catalogue de produits or visit our page d'assistance.

` text, err := html2text.FromString(htmlContent) if err != nil { log.Fatal(err) } fmt.Println(text) }
 Français