প্রকল্প সম্পর্কে

Defuddle একটি জাভাস্ক্রিপ্ট লাইব্রেরি যা ওয়েব পেজ থেকে মূল বিষয়বস্তু বের করে, মন্তব্য, সাইডবার, হেডার এবং ফুটারের মতো ক্লটার পরিষ্কার করে। এটি পরিষ্কারকৃত HTML বা Markdown ফিরিয়ে দেয়, যা ওয়েব ক্লিপিং, রিডিং মোড বা বিষয়বস্তু বিশ্লেষণের জন্য উপযোগী। ## মূল বৈশিষ্ট্য - **বিষয়বস্তু নিষ্কাশন**: স্বয়ংক্রিয়ভাবে পৃষ্ঠার প্রাথমিক বিষয়বস্তু সনাক্ত করে এবং নিষ্ক্রিয় উপাদানগুলি সরায়। - **HTML মানকীকরণ**: সামঞ্জস্যপূর্ণ আউটপুটের জন্য শিরোনাম, কোড ব্লক, পাঠ্যমূলক টীকা, গণিত এবং কলআউটগুলিকে স্বাভাবিক করে। - **মেটাডেটা নিষ্কাশন**: শিরোনাম, লেখক, বিবরণ, প্রকাশনার তারিখ এবং schema.org ডেটা সংগ্রহ করে। - **একাধিক ব্যান্ডেল**: Core (ব্রাউজার), Full (গণত/Markdown রূপান্তর যুক্ত) এবং Node.js (যেকোনো DOM ইমপ্লিমেন্টেশনের সাথে কাজ করে)। - **CLI টুল**: সরাসরি টার্মিনাল থেকে URL, ফাইল বা stdin প্যার্স করুন। - **ডিবাগ মোড**: নিষ্কাশন সমস্যাগুলি নির্ণয়ের জন্য বিস্তারিত লগিং এবং অপসারণ ট্র্যাকিং। - **কনফিগারেবল পাইপলাইন**: গোপন উপাদান অপসারণ, চিত্র অপসারণের মতো প্রতিটি প্রক্রিয়া ধাপ টগল করুন। ## ব্যবহার উদাহরণ ### ব্রাউজার ```javascript import Defuddle from 'defuddle'; const defuddle = new Defuddle(document); const result = defuddle.parse(); console.log(result.content); // Cleaned HTML ``` ### Node.js (linkedom বা JSDOM সহ) ```javascript import { parseHTML } from 'linkedom'; import { Defuddle } from 'defuddle/node'; const { document } = parseHTML(html); const result = await Defuddle(document, 'https://example.com/article', { markdown: true }); ``` ### CLI ```bash npx defuddle parse page.html --markdown npx defuddle parse https://example.com/article --json cat page.html | npx defuddle parse --output result.html ``` ## রেসপন্স অবজেক্ট `title`, `author`, `content`, `description`, `domain`, `favicon`, `image`, `language`, `published`, `site`, `wordCount` এবং অন্যান্য বৈশিষ্ট্য সহ একটি অবজেক্ট ফেরত দেয়। ## অপশন প্রধান অপশনগুলির মধ্যে রয়েছে `markdown` (Markdown-এ রূপান্তর), `debug` (লগিং সক্ষম করা), `removeHiddenElements`, `removeSmallImages`, `contentSelector` (অটো-ডেটেকশন বাতিল করা) এবং `useAsync` (SPA-গুলোর জন্য থার্ড-পার্টি ফলব্যাক অনুমতি দেওয়া)। ## ডেভেলপমেন্ট `npm install && npm run build` দিয়ে বিল্ড করুন। প্রজেক্টটি বিষয়বস্তু স্কোরিং, উপাদান অপসারণ এবং মানকীকরণের জন্য ধাপগুলির একটি পাইপলাইন ব্যবহার করে। ## থার্ড-পার্টি সার্ভিস যখন `useAsync` সক্ষম থাকে এবং স্থানীয় বিষয়বস্তু পাওয়া যায় না (যেমন, ক্লায়েন্ট-সাইড রেন্ডার্ড SPA), তখন Defuddle X/Twitter বিষয়বস্তুগুলির জন্য FxTwitter-এর মতো থার্ড-পার্টি API থেকে ফেচ করতে পারে। `useAsync: false` দিয়ে অক্ষম করুন। ## ডিবাগিং `debug: true` সক্ষম করলে `contentSelector` (মূল বিষয়বস্তুটির CSS পথ) এবং `removals` (কারণ সহ অপসারিত উপাদানের তালিকা) সহ একটি `debug` ফিল্ড পাওয়া যাবে। এটি বিষয়বস্তু ভুলভাবে কেন অপসারিত বা রাখা হচ্ছে তা নির্ণয়ে সাহায্য করে।