منصوبے کے بارے میں
Defuddle ایک JavaScript لائبریری ہے جو ویب صفحات سے مرکزی مواد نکالتی ہے، اور تبصروں، سائیڈ بارز، ہیڈرز اور فوٹرز جیسی غیر ضروری چیزوں کو صاف کرتی ہے۔ یہ صاف شدہ HTML یا Markdown واپس کرتی ہے، جو ویب کلپنگ، ریڈنگ موڈ، یا مواد کے تجزیے کے لیے مفید ہے۔
## اہم خصوصیات
- **مواد نکالنا**: صفحے سے بنیادی مواد خود بخود پہچان کر نکالتا ہے، غیر ضروری عناصر کو ہٹاتا ہے۔
- **HTML معیاری بنانا**: ہیڈنگز، کوڈ بلاکس، فوٹ نوٹس، ریاضی، اور کال آؤٹس کو یکساں آؤٹ پٹ کے لیے نارملائز کرتا ہے۔
- **میٹا ڈیٹا نکالنا**: عنوان، مصنف، تفصیل، اشاعت کی تاریخ، اور schema.org ڈیٹا حاصل کرتا ہے۔
- **متعدد بنڈلز**: کور (براؤزر)، فل (ریاضی/Markdown تبدیلی شامل)، اور Node.js (کسی بھی DOM نفاذ کے ساتھ کام کرتا ہے)۔
- **CLI ٹول**: ٹرمینل سے براہ راست URLs، فائلیں، یا stdin پارس کریں۔
- **ڈیبگ موڈ**: تفصیلی لاگنگ اور ہٹانے کی ٹریکنگ تاکہ نکالنے کے مسائل کی تشخیص ہو سکے۔
- **قابل ترتیب پائپ لائن**: انفرادی پروسیسنگ مراحل کو ٹوگل کریں (مثلاً، پوشیدہ عناصر کو ہٹانا، تصاویر کو ہٹانا)۔
## استعمال کی مثالیں
### براؤزر
```javascript
import Defuddle from 'defuddle';
const defuddle = new Defuddle(document);
const result = defuddle.parse();
console.log(result.content); // صاف شدہ 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` (SPAs کے لیے تھرڈ پارٹی فال بیک کی اجازت) شامل ہیں۔
## ڈیولپمنٹ
`npm install && npm run build` سے بلڈ کریں۔ یہ پروجیکٹ مواد کی اسکورنگ، عناصر کو ہٹانے، اور معیاری بنانے کے مراحل کی پائپ لائن استعمال کرتا ہے۔
## تھرڈ پارٹی سروسز
جب `useAsync` فعال ہو اور مقامی مواد نہ ملے (مثلاً، کلائنٹ سائیڈ رینڈرڈ SPAs)، Defuddle X/Twitter مواد کے لیے FxTwitter جیسی تھرڈ پارٹی APIs سے حاصل کر سکتا ہے۔ `useAsync: false` سے اسے غیر فعال کریں۔
## ڈیبگنگ
`debug: true` فعال کریں تاکہ `debug` فیلڈ ملے جس میں `contentSelector` (مرکزی مواد کا CSS پاتھ) اور `removals` (ہٹائے گئے عناصر کی فہرست وجوہات کے ساتھ) شامل ہوں۔ اس سے یہ تشخیص کرنے میں مدد ملتی ہے کہ مواد غلط طریقے سے کیوں ہٹایا یا رکھا جا رہا ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.