Gratis Go-bibliotheek om HTML-documenten naar tekst te converteren
HTML2Text is een zeer eenvoudige open-source Go-bibliotheek die HTML-markup kan omzetten naar menselijk leesbare platte tekst binnen Go-apps.
In het digitale landschap van vandaag moet content toegankelijk zijn in meerdere formaten en op verschillende platforms. HTML2Text is een krachtige Go-bibliotheek, gemaakt door Jay Taylor, die een fundamentele uitdaging oplost: het omzetten van HTML-inhoud naar leesbare, goed opgemaakte platte tekst. Oorspronkelijk ontwikkeld om ervoor te zorgen dat HTML-e-mails leesbaar blijven voor alle ontvangers — inclusief degenen met HTML-uitgeschakelde clients of toegankelijkheidsbehoeften — is deze bibliotheek uitgegroeid tot een veelzijdig hulpmiddel voor ontwikkelaars die werken met contenttransformatie.
De bibliotheek zet complexe HTML-structuren, inclusief tabellen, lijsten en links, om in schone, markdown-gekleurde platte tekst, terwijl de logische structuur en leesbaarheid behouden blijven. Er zijn verschillende belangrijke functies onderdeel van de bibliotheek, zoals intelligente HTML-naar-tekst conversie, tabelweergave met mooie opmaak, aanpasbare conversie‑opties, commandoregelinterface, enzovoort. HTML2Text is geschreven in pure Go zonder externe afhankelijkheden, waardoor het snel is voor typische HTML‑documenten, geheugen‑efficiënt met een streamingvriendelijk ontwerp en thread‑safe voor gelijktijdig gebruik in webservers. Met zijn eenvoudige API, flexibele opties en bewezen staat van dienst in duizenden projecten, verdient HTML2Text een plaats in uw Go‑toolkit.
Aan de slag met HTML2Text
De aanbevolen en gemakkelijkste manier om HTML2Text te installeren is via GitHub. Gebruik alstublieft het volgende commando voor een soepele installatie.
Installeer HTML2Text-bibliotheek via GitHub
go get jaytaylor.com/html2textDe bibliotheek vereist Go 1.x of nieuwer en heeft geen externe afhankelijkheden, waardoor uw project lichtgewicht blijft. U kunt het ook handmatig installeren; download de nieuwste releasebestanden rechtstreeks van de GitHub-repository.
Basis HTML-naar-tekst conversie via Go
De open source HTML2Text-bibliotheek maakt het gemakkelijk voor softwareontwikkelaars om HTML-bestanden te laden en te converteren naar tekstformaat binnen hun Go-toepassingen. HTML2Text verwijdert niet alleen tags – het interpreteert HTML-structuur intelligent om menselijk leesbare output te produceren met semantisch begrip van koppen, alinea's en lijsten, behoud van links met URL's weergegeven tussen haakjes na de linktekst, normalisatie van witruimte die de leesbaarheid behoudt zonder overmatige regeleinden, ondersteuning voor tekenencodering inclusief UTF-8 met BOM (Byte Order Mark). Hier is een volledig voorbeeld van het gebruik van de bibliotheek die het mogelijk maakt HTML te laden en te converteren naar tekstformaat binnen Go-toepassingen.
Hoe eenvoudige HTML-inhoud omzetten naar tekstformaat via Go-bibliotheek?
package main
import (
"fmt"
"jaytaylor.com/html2text"
)
func main() {
html := `
Welkom bij onze service
Bekijk onze functiespagina
voor meer informatie over wat we aanbieden.
- 24/7-ondersteuning
- Gratis proefperiode
- Enterprise-plannen
`
text, err := html2text.FromString(html, html2text.Options{})
if err != nil {
panic(err)
}
fmt.Println(text)
}
Tabelweergave met mooie opmaak
Een van de opvallende kenmerken van HTML2Text is het vermogen om HTML‑tabellen weer te geven als ASCII‑gebaseerde teksttabellen. Tabellen in platte tekst worden meestal een wirwar van gegevens. De PrettyTables‑functie behoudt de tabelstructuur met ASCII‑kunst, waardoor numerieke gegevens, prijstabellen of vergelijkingsgrafieken in elke context leesbaar zijn. Deze zijn perfect voor geautomatiseerde rapporten die per e‑mail, commandoregel‑tool‑output of sms‑meldingen worden verzonden, waar de datastructuur belangrijk is. Het volgende code‑voorbeeld laat zien hoe softwareontwikkelaars een HTML‑tabel kunnen omzetten naar een opgemaakte ASCII‑tabel met Go‑commando's.
Hoe een HTML-tabel omzetten naar een geformatteerde ASCII-tabel 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)
}
E-mail fallback genereren via Go-bibliotheek
Een van de meest voorkomende gebruikssituaties voor HTML2Text is het converteren van HTML-e-mailsjablonen naar hun platte-tekst equivalenten. E-mailclients variëren sterk in hun HTML-renderingsmogelijkheden. Sommige beveiligingsbewuste gebruikers schakelen HTML volledig uit, terwijl oudere clients of schermlezers voor visueel gehandicapte gebruikers vaak beter werken met platte tekst. Het bieden van een tekstalternatief is niet alleen een goede praktijk—het is essentieel voor toegankelijkheid en afleverbaarheid. Door automatisch gesynchroniseerde platte-tekstversies te genereren, zorg je ervoor dat elke ontvanger je inhoud kan lezen, verminder je triggers voor spamfilters, en voldoe je aan toegankelijkheidsnormen zoals WCAG.
Hoe een platte-tekst fallback van een e-mailbericht genereren via Go-bibliotheek?
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)
}
Werken met links tijdens HTML naar tekst
De HTML2Text-bibliotheek bevat volledige ondersteuning voor het verwerken van links bij HTML-naar-tekstconversie. Links zijn bijzonder belangrijk in HTML-inhoud, en html2text zorgt ervoor dat zowel de linktekst als de URL behouden blijven. De linktekst wordt normaal weergegeven, terwijl de daadwerkelijke URL tussen haakjes wordt toegevoegd, zodat lezers van de platte-tekstversie nog steeds toegang hebben tot de gekoppelde bronnen. Het volgende voorbeeld laat zien hoe je dit kunt bereiken.
Hoe links beheren tijdens het converteren van HTML naar tekst in Go-applicaties?
package main
import (
"fmt"
"log"
"jaytaylor.com/html2text"
)
func main() {
htmlContent := `
Bekijk onze productcatalogus
of bezoek onze ondersteuningspagina.
`
text, err := html2text.FromString(htmlContent)
if err != nil {
log.Fatal(err)
}
fmt.Println(text)
}