1. পণ্য
  2.   HTML
  3.   GO
  4.   HTML2Text
 
  

HTML ডকুমেন্টগুলোকে টেক্সটে রূপান্তরের জন্য ফ্রি Go লাইব্রেরি

HTML2Text হল একটি খুবই সহজ ওপেন-সোর্স Go লাইব্রেরি, যা Go অ্যাপে HTML মার্কআপকে মানব-পাঠযোগ্য প্লেইন টেক্সটে রূপান্তর করতে পারে।

আজকের ডিজিটাল পরিবেশে, কন্টেন্টকে একাধিক ফরম্যাট এবং প্ল্যাটফর্মে অ্যাক্সেসযোগ্য হতে হবে। HTML2Text হল জে টেইলর দ্বারা তৈরি একটি শক্তিশালী Go লাইব্রেরি, যা একটি মৌলিক চ্যালেঞ্জ সমাধান করে: HTML কন্টেন্টকে পাঠযোগ্য, সু-ফরম্যাটেড প্লেইন টেক্সটে রূপান্তর করা। মূলত HTML ইমেইলগুলোকে সকল প্রাপক—যার মধ্যে HTML নিষ্ক্রিয় ক্লায়েন্ট বা অ্যাক্সেসিবিলিটি প্রয়োজনীয়তা রয়েছে—দ্বারা পাঠযোগ্য রাখতে তৈরি করা হয়েছিল, এই লাইব্রেরি এখন কন্টেন্ট ট্রান্সফরমেশন নিয়ে কাজ করা ডেভেলপারদের জন্য একটি বহুমুখী টুলে রূপান্তরিত হয়েছে।

লাইব্রেরি জটিল HTML কাঠামো, যেমন টেবিল, তালিকা এবং লিঙ্কগুলি, পরিষ্কার, মার্কডাউন-স্বরূপ প্লেইন টেক্সটে রূপান্তর করে, লজিক্যাল কাঠামো এবং পাঠযোগ্যতা বজায় রেখে। লাইব্রেরির বেশ কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে, যেমন বুদ্ধিমান HTML-থেকে-টেক্সট রূপান্তর, সুন্দর ফরম্যাটিংসহ টেবিল রেন্ডারিং, কাস্টমাইজযোগ্য রূপান্তর অপশন, কমান্ড লাইন ইন্টারফেস, ইত্যাদি। HTML2Text শুদ্ধ Go-তে লেখা হয়েছে এবং কোনো বাহ্যিক নির্ভরতা নেই, যা সাধারণ HTML ডকুমেন্টের জন্য দ্রুত, স্ট্রিমিং-ফ্রেন্ডলি ডিজাইন এবং থ্রেড-সেফ হওয়ায় ওয়েব সার্ভারে সমান্তরাল ব্যবহারের জন্য মেমরি-দক্ষ। এর সহজ API, নমনীয় অপশন এবং হাজারো প্রকল্পে প্রমাণিত রেকর্ডের সঙ্গে, HTML2Text আপনার Go টুলকিটে একটি স্থান পাওয়ার যোগ্য।

Previous Next

HTML2Text দিয়ে শুরু করা

HTML2Text ইনস্টল করার সুপারিশকৃত এবং সহজতম পদ্ধতি হল GitHub ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

GitHub এর মাধ্যমে HTML2Text লাইব্রেরি ইনস্টল করুন

go get jaytaylor.com/html2text

লাইব্রেরিটি Go 1.x বা তার উপরে প্রয়োজন এবং কোনো বাহ্যিক নির্ভরতা নেই, ফলে আপনার প্রকল্প হালকা থাকে। আপনি এটি ম্যানুয়ালি ইনস্টলও করতে পারেন; সর্বশেষ রিলিজ ফাইলগুলি সরাসরি GitHub রিপোজিটরি থেকে ডাউনলোড করুন।

Go ব্যবহার করে মৌলিক HTML থেকে টেক্সটে রূপান্তর

ওপেন সোর্স HTML2Text লাইব্রেরি সফটওয়্যার ডেভেলপারদের জন্য Go অ্যাপ্লিকেশনের মধ্যে HTML ফাইল লোড এবং টেক্সট ফরম্যাটে রূপান্তর করা সহজ করে তোলে। HTML2Text শুধুমাত্র ট্যাগ সরিয়ে দেয় না—এটি বুদ্ধিমত্তার সঙ্গে HTML গঠনকে ব্যাখ্যা করে, শিরোনাম, প্যারাগ্রাফ এবং তালিকার সেম্যান্টিক বোঝাপড়া সহ মানব-পাঠযোগ্য আউটপুট তৈরি করে, লিঙ্ক টেক্সটের পরে বন্ধনীর মধ্যে URL প্রদর্শন করে লিঙ্ক সংরক্ষণ করে, অতিরিক্ত লাইন ব্রেক ছাড়া পাঠযোগ্যতা বজায় রাখতে হোয়াইটস্পেস নরমালাইজেশন করে, এবং UTF-8 সহ BOM (বাইট অর্ডার মার্ক) সহ ক্যারেক্টার এনকোডিং সমর্থন প্রদান করে। এখানে একটি পূর্ণ উদাহরণ রয়েছে লাইব্রেরি ব্যবহার করার, যা Go অ্যাপ্লিকেশনের মধ্যে HTML লোড এবং টেক্সট ফরম্যাটে রূপান্তর করতে সক্ষম।

Go লাইব্রেরি ব্যবহার করে সহজ HTML কন্টেন্টকে টেক্সট ফরম্যাটে কীভাবে রূপান্তর করবেন?

package main

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

func main() {
    html := `
        

আমাদের সেবায় স্বাগতম

আমাদের ফিচার পেজ দেখুন যা আমরা অফার করি তার সম্পর্কে আরও তথ্যের জন্য।

  • ২৪/৭ সাপোর্ট
  • বিনামূল্যে ট্রায়াল
  • এন্টারপ্রাইজ পরিকল্পনা
` text, err := html2text.FromString(html, html2text.Options{}) if err != nil { panic(err) } fmt.Println(text) }

সুন্দর ফরম্যাটিং সহ টেবিল রেন্ডারিং

HTML2Text-এর অন্যতম উল্লেখযোগ্য বৈশিষ্ট্য হল এটি HTML টেবিলগুলোকে ASCII-ভিত্তিক টেক্সট টেবিল হিসেবে রেন্ডার করার ক্ষমতা। প্লেইন টেক্সটে টেবিলগুলো সাধারণত জটিল ডেটা স্যুপে পরিণত হয়। PrettyTables ফিচারটি ASCII আর্ট ব্যবহার করে ট্যাবুলার গঠন সংরক্ষণ করে, যা সংখ্যাত্মক ডেটা, মূল্য টেবিল বা তুলনা চার্টকে যেকোনো প্রসঙ্গে পাঠযোগ্য করে তোলে। এগুলো ইমেইল, কমান্ড-লাইন টুল আউটপুট বা এসএমএস নোটিফিকেশনের মাধ্যমে পাঠানো স্বয়ংক্রিয় রিপোর্টের জন্য আদর্শ, যেখানে ডেটা গঠন গুরুত্বপূর্ণ। নিম্নলিখিত কোড উদাহরণটি দেখায় কীভাবে সফটওয়্যার ডেভেলপাররা Go কমান্ড ব্যবহার করে HTML টেবিলকে ফরম্যাটেড ASCII টেবিলে রূপান্তর করতে পারেন।

Go ব্যবহার করে HTML টেবিলকে ফরম্যাটেড ASCII টেবিলে কীভাবে রূপান্তর করবেন?

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 লাইব্রেরি ব্যবহার করে ইমেইল ফallback জেনারেশন

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 বন্ধনীর মধ্যে যুক্ত হয়, যা প্লেইন টেক্সট সংস্করণের পাঠকদের এখনও লিঙ্ক করা রিসোর্সে প্রবেশের সুযোগ দেয়। নিম্নলিখিত উদাহরণটি দেখায় কীভাবে এটি অর্জন করা যায়।

Go অ্যাপের মধ্যে HTML কে টেক্সটে রূপান্তর করার সময় লিঙ্কগুলি কীভাবে পরিচালনা করবেন?

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) }
 বাংলা