1. Продукти
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

Безплатна Go библиотека за конвертиране на HTML документи в текст

HTML2Text е много проста отворена Go библиотека, която може да преобразува HTML маркиране в четим за хора прост текст в Go приложения.

В днешния дигитален пейзаж съдържанието трябва да бъде достъпно в множество формати и платформи. HTML2Text е мощна Go библиотека, създадена от Джей Тейлър, която решава фундаментален проблем: конвертиране на HTML съдържание в четим, добре форматиран чист текст. Първоначално разработена, за да гарантира, че HTML имейлите остават четими за всички получатели — включително тези с клиенти, които имат изключен HTML, или с нужди от достъпност — тази библиотека се е превърнала във всеобхватен инструмент за разработчиците, работещи с трансформация на съдържание.

Библиотеката преобразува сложни HTML структури, включително таблици, списъци и връзки, в чист, маркиран с markdown обикновен текст, като запазва логическата структура и четимостта. Има няколко важни функции, част от библиотеката, като интелигентно преобразуване от HTML към текст, рендериране на таблици с красиво форматиране, персонализируеми опции за конверсия, команден ред интерфейс и др. HTML2Text е написан в чист Go без външни зависимости, което го прави бърз за типични HTML документи, паметно‑ефикасен с дизайн, подходящ за стрийминг, и безопасен за многопоточна употреба в уеб сървъри. Със своя прост API, гъвкави опции и доказан опит в хиляди проекти, HTML2Text заслужава място във вашия Go инструментариум.

Previous Next

Започнете с HTML2Text

Препоръчителният и най‑лесен начин за инсталиране на HTML2Text е чрез GitHub. Моля, използвайте следната команда за гладка инсталация.

Инсталирайте библиотеката HTML2Text чрез GitHub

go get jaytaylor.com/html2text

Библиотеката изисква Go 1.x или по-нова версия и няма външни зависимости, което прави вашия проект лек. Можете също да я инсталирате ръчно; изтеглете последните файлове за издание директно от GitHub репозитория.

Основно преобразуване от HTML към текст чрез Go

Отворената библиотека HTML2Text улеснява софтуерните разработчици да зареждат и конвертират HTML файлове в текстов формат в техните Go приложения. HTML2Text не просто премахва таговете — тя интелигентно интерпретира HTML структурата, за да произведе човеко‑четим изход със семантично разбиране на заглавия, параграфи и списъци, запазване на връзките с URL‑те, показвани в скоби след текста на връзката, нормализация на whitespace, която поддържа четимост без излишни прекъсвания на редове, поддръжка на кодиране на знаци, включително UTF-8 с BOM (Byte Order Mark). Ето пълен пример за използване на библиотеката, който позволява да се зарежда и конвертира HTML в текстов формат в Go приложения.

Как да конвертирате прост HTML съдържание в текстов формат чрез Go библиотека?

package main

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

func main() {
    html := `
        

Добре дошли в нашата услуга

Разгледайте нашата страница с функции за повече информация за това, което предлагаме.

  • Поддръжка 24/7
  • Безплатен пробен период
  • Корпоративни планове
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

Рендиране на таблици с красиво форматиране

Една от отличителните характеристики на HTML2Text е способността му да визуализира HTML таблици като текстови таблици, базирани на ASCII. Таблиците в чист текст обикновено се превръщат в объркана смес от данни. Функцията PrettyTables запазва табличната структура, използвайки ASCII изкуство, което прави числови данни, ценови таблици или сравнителни диаграми четливи във всякакъв контекст. Те са перфектни за автоматизирани отчети, изпращани по имейл, изход от команден ред или SMS известия, където структурата на данните е от значение. Следният пример с код показва как софтуерните разработчици могат да конвертират HTML таблица във форматирана ASCII таблица, използвайки Go команди.

Как да конвертирате HTML таблица във форматирана ASCII таблица чрез 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)
}

Генериране на резервен имейл чрез Go библиотека

Един от най-честите случаи на употреба на HTML2Text е преобразуването на HTML имейл шаблони в техните еквиваленти в чист текст. Имейл клиентите се различават значително по възможностите си за рендериране на HTML. Някои потребители, грижещи се за сигурността, изключват HTML напълно, докато по-старите клиенти или екранните четци за зрително увредени потребители често работят по-добре с чист текст. Предоставянето на текстова алтернатива не е само добра практика — то е от съществено значение за достъпност и доставяемост. Чрез автоматично генериране на синхронизирани версии в чист текст, вие осигурявате всеки получател да може да прочете вашето съдържание, намалявате задействанията на спам филтри и спазвате стандарти за достъпност като WCAG.

Как да генерирате резервен вариант в чист текст за имейл съобщение чрез 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)
}

Работа с връзки при преобразуване от HTML към текст

Библиотеката HTML2Text включва пълна поддръжка за обработка на връзки при конвертиране от HTML към текст. Връзките са особено важни в HTML съдържанието и html2text гарантира, че както текстът на връзката, така и URL адресът се запазват. Текстът на връзката се показва нормално, докато действителният URL се добавя в скоби, осигурявайки, че читателите на версията в чист текст все още могат да достъпят свързаните ресурси. Следният пример демонстрира как да се постигне това.

Как да управлявате връзките при конвертиране на HTML в текст в Go приложения?

package main

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

func main() {
    htmlContent := `
    
        
            

Разгледайте нашия продуктов каталог или посетете нашата страница за поддръжка.

` text, err := html2text.FromString(htmlContent) if err != nil { log.Fatal(err) } fmt.Println(text) }
 Български