1. منتجات
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

مكتبة Go مجانية لتحويل مستندات HTML إلى نص

HTML2Text هي مكتبة Go مفتوحة المصدر بسيطة جدًا يمكنها تحويل ترميز HTML إلى نص عادي قابل للقراءة البشرية داخل تطبيقات Go.

في المشهد الرقمي اليوم، يحتاج المحتوى إلى أن يكون متاحًا عبر صيغ ومنصات متعددة. HTML2Text هي مكتبة Go قوية أنشأها جاي تايلور تحل تحديًا أساسيًا: تحويل محتوى HTML إلى نص عادي قابل للقراءة ومنسق بشكل جيد. تم تطويرها في الأصل لضمان أن رسائل البريد الإلكتروني بصيغة HTML تظل قابلة للقراءة لجميع المستلمين — بما في ذلك أولئك الذين يستخدمون عملاء معطلة HTML أو لديهم احتياجات وصول — وقد تطورت هذه المكتبة لتصبح أداة متعددة الاستخدامات للمطورين الذين يعملون على تحويل المحتوى.

تحول المكتبة هياكل HTML المعقدة، بما في ذلك الجداول والقوائم والروابط، إلى نص عادي بنكهة markdown نظيف مع الحفاظ على البنية المنطقية وقابلية القراءة. هناك عدة ميزات مهمة في المكتبة، مثل التحويل الذكي من HTML إلى نص، عرض الجداول بتنسيق جميل، خيارات تحويل قابلة للتخصيص، واجهة سطر الأوامر، وغيرها. تم كتابة HTML2Text بلغة Go النقية دون أي تبعيات خارجية، مما يجعلها سريعة لمعالجة مستندات HTML النموذجية، وكفء في الذاكرة بفضل التصميم المتوافق مع البث وآمنة للخطوط المتعددة للاستخدام المتزامن في خوادم الويب. بفضل واجهة برمجة التطبيقات البسيطة، والخيارات المرنة، والسجل المثبت في آلاف المشاريع، تستحق 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 بين قوسين بعد نص الرابط، وتطبيع الفراغات للحفاظ على قابلية القراءة دون فواصل سطرية مفرطة، ودعم ترميز الأحرف بما في ذلك UTF-8 مع BOM (علامة ترتيب البايت). إليكم مثالًا كاملاً لاستخدام المكتبة يسمح بتحميل وتحويل HTML إلى صيغة نصية داخل تطبيقات Go.

كيف يمكن تحويل محتوى HTML البسيط إلى تنسيق نصي عبر مكتبة Go؟

package main

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

func main() {
    html := `
        

مرحبًا بكم في خدمتنا

تحقق من صفحة الميزات للحصول على مزيد من المعلومات حول ما نقدمه.

  • دعم 24/7
  • Free Trial
  • Enterprise Plans
` 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) }
 عربي