ডি · fud · অনুসারে /diˈfʌdl /অনুসারে ট্রানজিটিভ ক্রিয়া
কোনও ওয়েব পৃষ্ঠা থেকে অপ্রয়োজনীয় উপাদানগুলি অপসারণ করতে এবং এটিকে সহজেই পঠনযোগ্য করে তুলুন।
সাবধান! ডিফডল খুব বেশি কাজ চলছে!
ডিফডল ওয়েব পৃষ্ঠাগুলি থেকে মূল সামগ্রীটি বের করে। এটি কেবল প্রাথমিক সামগ্রী রেখে মন্তব্য, সাইডবার, শিরোনাম, পাদচরণ এবং অন্যান্য অ-প্রয়োজনীয় উপাদানগুলির মতো বিশৃঙ্খলা সরিয়ে ওয়েব পৃষ্ঠাগুলি পরিষ্কার করে।
ডিফডল এর লক্ষ্য পরিষ্কার এবং ধারাবাহিক এইচটিএমএল ডকুমেন্টগুলি আউটপুট করা। এটি টার্নডাউন এর মতো এইচটিএমএল-টু-মার্কডাউন রূপান্তরকারীদের জন্য আরও দরকারী ইনপুট তৈরির লক্ষ্য নিয়ে ওবিসিডিয়ান ওয়েব ক্লিপারের জন্য লেখা হয়েছিল।
ডিফডল কয়েকটি পার্থক্য সহ মজিলা পঠনযোগ্যতার প্রতিস্থাপন হিসাবে ব্যবহার করা যেতে পারে:
- আরও ক্ষমা করা, কম অনিশ্চিত উপাদানগুলি সরিয়ে দেয়।
- পাদটীকা, গণিত, কোড ব্লক ইত্যাদির জন্য একটি ধারাবাহিক আউটপুট সরবরাহ করে
- অপ্রয়োজনীয় উপাদানগুলিতে অনুমান করতে একটি পৃষ্ঠার মোবাইল স্টাইল ব্যবহার করে।
- স্কিমা.অর্গ ডেটা সহ পৃষ্ঠা থেকে আরও মেটাডেটা বের করে।
নোড.জেএস ব্যবহারের জন্য, আপনাকে জেএসডম ইনস্টল করতে হবে:
import { Defuddle } from 'defuddle';
// Parse the current document
const defuddle = new Defuddle(document);
const result = defuddle.parse();
// Access the content and metadata
console.log(result.content);
console.log(result.title);
console.log(result.author);
import { JSDOM } from 'jsdom';
import { Defuddle } from 'defuddle/node';
// Parse HTML from a string
const html = '<html><body><article>...</article></body></html>';
const result = await Defuddle(html);
// Parse HTML from a URL
const dom = await JSDOM.fromURL(');
const result = await Defuddle(dom);
// With options
const result = await Defuddle(dom, {
debug: true, // Enable debug mode for verbose logging
markdown: true, // Convert content to markdown
url: ' // Original URL of the page
});
// Access the content and metadata
console.log(result.content);
console.log(result.title);
console.log(result.author);
দ্রষ্টব্য: জন্য defuddle/node
সঠিকভাবে আমদানি করতে, আপনার মধ্যে মডিউল ফর্ম্যাট package.json
সেট করতে হবে { "type": "module" }
ডিফডল নিম্নলিখিত বৈশিষ্ট্যগুলি সহ একটি বস্তু ফেরত দেয়:
সম্পত্তি | প্রকার | বর্ণনা |
---|---|---|
author | স্ট্রিং | নিবন্ধের লেখক |
content | স্ট্রিং | নিষ্কাশিত সামগ্রীর স্ট্রিং পরিষ্কার করা হয়েছে |
description | স্ট্রিং | বিবরণ বা নিবন্ধের সংক্ষিপ্তসার |
domain | স্ট্রিং | ওয়েবসাইটের ডোমেন নাম |
favicon | স্ট্রিং | ওয়েবসাইটের ফ্যাভিকনের ইউআরএল |
image | স্ট্রিং | নিবন্ধের মূল চিত্রের url |
metaTags | অবজেক্ট | মেটা ট্যাগ |
parseTime | সংখ্যা | মিলিসেকেন্ডে পৃষ্ঠাটি পার্স করার জন্য সময় নেওয়া |
published | স্ট্রিং | নিবন্ধ প্রকাশের তারিখ |
site | স্ট্রিং | ওয়েবসাইটের নাম |
schemaOrgData | অবজেক্ট | কাঁচা স্কিমা.অর্গ ডেটা পৃষ্ঠা থেকে উত্তোলন করা হয়েছে |
title | স্ট্রিং | নিবন্ধের শিরোনাম |
wordCount | সংখ্যা | নিষ্কাশিত সামগ্রীতে মোট শব্দের সংখ্যা |
ডিফডল তিনটি পৃথক বান্ডলে পাওয়া যায়:
- কোর বান্ডিল (
defuddle
): ব্রাউজারের ব্যবহারের জন্য প্রধান বান্ডিল। কোন নির্ভরতা নেই। - সম্পূর্ণ বান্ডিল (
defuddle/full
): গণিত সমীকরণ পার্সিংয়ের জন্য অতিরিক্ত বৈশিষ্ট্য অন্তর্ভুক্ত। - নোড.জেএস বান্ডিল (
defuddle/node
): জেএসডম ব্যবহার করে নোড.জেএস পরিবেশের জন্য অনুকূলিত। গণিত এবং মার্কডাউন রূপান্তরকরণের জন্য সম্পূর্ণ ক্ষমতা অন্তর্ভুক্ত।
বেশিরভাগ ব্যবহারের ক্ষেত্রে মূল বান্ডিলটি সুপারিশ করা হয়। এটি এখনও গণিতের সামগ্রী পরিচালনা করে তবে ম্যাথএমএল এবং ল্যাটেক্স ফর্ম্যাটগুলির মধ্যে রূপান্তর করার জন্য ফ্যালব্যাকগুলি অন্তর্ভুক্ত করে না। সম্পূর্ণ বান্ডিল নির্ভরযোগ্য তৈরি করার ক্ষমতা যুক্ত করে <math>
উপাদান ব্যবহার mathml-to-latex
এবং temml
গ্রন্থাগার।
বিকল্প | প্রকার | বর্ণনা |
---|---|---|
debug | বুলিয়ান | ডিবাগ লগিং সক্ষম করুন |
url | স্ট্রিং | পৃষ্ঠার url পার্স করা হচ্ছে |
markdown | বুলিয়ান | রূপান্তর content মার্কডাউন |
separateMarkdown | বুলিয়ান | রাখুন content এইচটিএমএল এবং রিটার্ন হিসাবে contentMarkdown মার্কডাউন হিসাবে |
removeExactSelectors | বুলিয়ান | বিজ্ঞাপন, সামাজিক বোতাম ইত্যাদির মতো সঠিক নির্বাচকদের সাথে মিলে উপাদানগুলি অপসারণ করা উচিত কিনা তা সত্য হিসাবে ডিফল্ট। |
removePartialSelectors | বুলিয়ান | বিজ্ঞাপন, সামাজিক বোতাম ইত্যাদির মতো আংশিক নির্বাচকদের সাথে মিলে উপাদানগুলি অপসারণ করা উচিত কিনা তা সত্য হিসাবে ডিফল্ট। |
একটি নতুন ডিফডল উদাহরণ তৈরি করার সময় আপনি কোনও বিকল্প অবজেক্টটি পাস করে ডিবাগ মোড সক্ষম করতে পারেন:
const article = new Defuddle(document, { debug: true }).parse();
- পার্সিং প্রক্রিয়া সম্পর্কে আরও ভার্বোজ কনসোল লগিং
- এইচটিএমএল শ্রেণি এবং আইডি বৈশিষ্ট্যগুলি সংরক্ষণ করে যা সাধারণত ছিটানো হয়
- সমস্ত ডেটা-* বৈশিষ্ট্য ধরে রাখে
- ডকুমেন্ট কাঠামো সংরক্ষণ করতে ডিভ ফ্ল্যাটিং এড়িয়ে যান
ডিফডল এইচটিএমএল উপাদানগুলিকে স্ট্যান্ডার্ডাইজ করার চেষ্টা করে পরবর্তী হেরফেরের জন্য একটি ধারাবাহিক ইনপুট সরবরাহ করার জন্য যেমন মার্কডাউনে রূপান্তরিত করার জন্য।
- প্রথম এইচ 1 বা এইচ 2 শিরোনামটি যদি শিরোনামের সাথে মেলে।
- এইচ 1 এস এইচ 2 এস রূপান্তরিত হয়।
- এইচ 1 থেকে এইচ 6 উপাদানগুলিতে অ্যাঙ্কর লিঙ্কগুলি সরানো হয় এবং সরল শিরোনামে পরিণত হয়।
কোড ব্লক মানক করা হয়। যদি উপস্থিত থাকে তবে লাইন নম্বর এবং সিনট্যাক্স হাইলাইটিং সরানো হয়, তবে ভাষাটি ধরে রাখা হয় এবং ডেটা বৈশিষ্ট্য এবং শ্রেণি হিসাবে যুক্ত করা হয়।
<pre>
<code data-lang="js" class="language-js">
// code
</code>
</pre>
ইনলাইন রেফারেন্স এবং পাদটীকাগুলি একটি স্ট্যান্ডার্ড ফর্ম্যাটে রূপান্তরিত হয়:
Inline reference<sup id="fnref:1"><a href="#fn:1">1</a></sup>.
<div id="footnotes">
<ol>
<li class="footnote" id="fn:1">
<p>
Footnote content. <a href="#fnref:1" class="footnote-backref">↩</a>
</p>
</li>
</ol>
</div>
ম্যাথজ্যাক্স এবং কেটেক্স সহ গণিতের উপাদানগুলি স্ট্যান্ডার্ড ম্যাথএমএলে রূপান্তরিত হয়েছে:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" data-latex="a \neq 0">
<mi>a</mi>
<mo>≠</mo>
<mn>0</mn>
</math>
প্যাকেজটি তৈরি করতে আপনার নোড.জেএস এবং এনপিএম ইনস্টল করা দরকার। তারপরে চালান:
# Install dependencies
npm install
# Clean and build
npm run build