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

Gratis Go-bibliotek för att konvertera HTML-dokument till text

HTML2Text är ett mycket enkelt open source Go-bibliotek som kan omvandla HTML-markup till mänskligt läsbar ren text i Go-appar.

I dagens digitala landskap måste innehåll vara tillgängligt i flera format och på olika plattformar. HTML2Text är ett kraftfullt Go‑bibliotek skapat av Jay Taylor som löser en grundläggande utmaning: att konvertera HTML‑innehåll till läsbar, välformaterad vanlig text. Ursprungligen utvecklat för att säkerställa att HTML‑e‑postmeddelanden förblir läsbara för alla mottagare – inklusive de med HTML‑inaktiverade klienter eller särskilda tillgänglighetsbehov – har detta bibliotek utvecklats till ett mångsidigt verktyg för utvecklare som arbetar med innehållstransformation.

Biblioteket omvandlar komplexa HTML-strukturer, inklusive tabeller, listor och länkar, till ren, markdown‑smakad vanlig text samtidigt som den bevarar den logiska strukturen och läsbarheten. Det finns flera viktiga funktioner som är en del av biblioteket, såsom intelligent HTML‑till‑text‑konvertering, tabellrendering med snygg formatering, anpassningsbara konverteringsalternativ, kommandoradsgränssnitt och så vidare. HTML2Text är skrivet i ren Go utan externa beroenden, vilket gör det snabbt för vanliga HTML-dokument, minnes‑effektivt med en strömningsvänlig design och trådsäkert för samtidig användning i webbservrar. Med sitt enkla API, flexibla alternativ och beprövade meritlista i tusentals projekt förtjänar HTML2Text en plats i ditt Go‑verktygssats.

Previous Next

Kom igång med HTML2Text

Det rekommenderade och enklaste sättet att installera HTML2Text är via GitHub. Använd följande kommando för en smidig installation.

Installera HTML2Text-biblioteket via GitHub

go get jaytaylor.com/html2text

Biblioteket kräver Go 1.x eller nyare och har noll externa beroenden, vilket håller ditt projekt lättviktigt. Du kan också installera det manuellt; ladda ner de senaste release-filerna direkt från GitHub-arkivet.

Grundläggande HTML till textkonvertering via Go

Det öppna källkods-biblioteket HTML2Text gör det enkelt för mjukvaruutvecklare att läsa in och konvertera HTML-filer till textformat i sina Go‑applikationer. HTML2Text tar inte bara bort taggar – det tolkar intelligent HTML‑strukturen för att producera mänskligt läsbar output med semantisk förståelse av rubriker, stycken och listor, bevarar länkar genom att visa URL:er i parentes efter länktexten, normaliserar blanksteg för att upprätthålla läsbarhet utan överdrivna radbrytningar, samt stöd för teckenkodning inklusive UTF‑8 med BOM (Byte Order Mark). Här är ett komplett exempel på hur man använder biblioteket för att läsa in och konvertera HTML till textformat i Go‑applikationer.

Hur konverterar man enkel HTML-innehåll till textformat via Go-biblioteket?

package main

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

func main() {
    html := `
        

Välkommen till vår tjänst

Kolla in vår funktioner-sida för mer information om vad vi erbjuder.

  • Support dygnet runt
  • Gratis provperiod
  • Företagsplaner
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

Tabellrendering med snygg formatering

En av de mest framstående funktionerna i HTML2Text är dess förmåga att rendera HTML-tabeller som ASCII-baserade texttabeller. Tabeller i ren text blir vanligtvis en rörig datasoppa. PrettyTables-funktionen bevarar tabellstrukturen med ASCII-konst, vilket gör numeriska data, prislistor eller jämförelsediagram läsbara i alla sammanhang. Dessa är perfekta för automatiserade rapporter som skickas via e‑post, kommandoradsverktyg eller SMS‑aviseringar där datastrukturen är viktig. Följande kodexempel visar hur mjukvaruutvecklare kan konvertera en HTML-tabell till en formaterad ASCII-tabell med Go-kommandon.

Hur konverterar man HTML-tabell till formaterad ASCII-tabell 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)
}

Generering av e-postfallback via Go-bibliotek

En av de vanligaste användningsområdena för HTML2Text är att konvertera HTML-e-postmallar till deras motsvarande rentextversioner. E-postklienter varierar kraftigt i sina HTML-renderingsmöjligheter. Vissa säkerhetsmedvetna användare inaktiverar HTML helt, medan äldre klienter eller skärmläsare för synskadade ofta fungerar bättre med ren text. Att tillhandahålla ett textalternativ är inte bara god praxis—det är avgörande för tillgänglighet och leveransbarhet. Genom att automatiskt generera synkroniserade rentextversioner säkerställer du att varje mottagare kan läsa ditt innehåll, minskar spamfilterutlösare och följer tillgänglighetsstandarder som WCAG.

Hur genererar man en vanlig textfallback för ett e-postmeddelande via Go-biblioteket?

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

Arbeta med länkar vid HTML till text

HTML2Text-biblioteket har inkluderat fullständigt stöd för att hantera länkar vid konvertering från HTML till text. Länkar är särskilt viktiga i HTML-innehåll, och html2text säkerställer att både länktexten och URL:en bevaras. Länktexten visas normalt, medan den faktiska URL:en läggs till i parentes, vilket garanterar att läsare av rentextversionen fortfarande kan komma åt de länkade resurserna. Följande exempel visar hur man uppnår detta.

Hur hanterar man länkar vid konvertering av HTML till text i Go-appar?

package main

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

func main() {
    htmlContent := `
    
        
            

Kolla in vår produktkatalog eller besök vår support-sida.

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