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

remark হলো প্লাগইনকে কেন্দ্র করে তৈরি একটি markdown প্রসেসর, যা unified collective-এর অংশ। markdown-কে সাধারণ টেক্সট হিসেবে বিবেচনা না করে এটি এটিকে একটি সুগঠিত abstract syntax tree (mdast)-এ পার্স করে, যাতে প্লাগইনগুলো কনটেন্ট আবার সিরিয়ালাইজ করার আগে তা পরিদর্শন ও পরিবর্তন করতে পারে। এই monorepo-তে কয়েকটি প্যাকেজ রয়েছে: remark-parse (markdown থেকে syntax tree), remark-stringify (syntax tree থেকে আবার markdown), remark (markdown-to-markdown কাজের জন্য unified, parse এবং stringify একত্র করে) এবং remark-cli (markdown ফাইল পরিদর্শন ও ফরম্যাট করার একটি command-line interface)। README-তে বর্ণিত মূল বৈশিষ্ট্য: - ডিফল্টভাবে CommonMark compliant, প্লাগইনের মাধ্যমে GFM বা MDX সমর্থন পাওয়া যায়। - AST-ভিত্তিক প্রসেসিং প্রোগ্রাম্যাটিক পরিদর্শন ও রূপান্তর সহজ করে তোলে। - ১৫০+ প্লাগইনের একটি ইকোসিস্টেম, যার মধ্যে রয়েছে remark-gfm (GitHub flavored markdown), remark-lint (style checking), remark-toc (table of contents generation) এবং remark-rehype (markdown থেকে HTML)। - সার্ভার, ক্লায়েন্ট, CLI এবং Deno-তে ব্যবহারযোগ্য। সাধারণ ব্যবহারের মধ্যে রয়েছে markdown থেকে HTML-এ রূপান্তর (প্রায়ই rehype ইকোসিস্টেম এবং rehype-sanitize-এর সঙ্গে মিলিয়ে), GFM এবং YAML frontmatter-এর মতো syntax extension চালু করা, সামঞ্জস্যের জন্য markdown linting, এবং CLI ও package.json-এ একটি remarkConfig এন্ট্রির মাধ্যমে কোনো প্রকল্পে markdown ফাইল ফরম্যাট করা। প্রকল্পটি TypeScript দিয়ে সম্পূর্ণ typed, এবং @types/mdast-এর মাধ্যমে mdast টাইপ পাওয়া যায়। README-তে নিরাপত্তা-সংক্রান্ত বিষয় উল্লেখ করা হয়েছে: যেহেতু markdown HTML-এ পরিণত হতে পারে, অনুপযুক্ত হ্যান্ডলিং ব্যবহারকারীদের cross-site scripting-এর ঝুঁকিতে ফেলতে পারে, তাই HTML তৈরি করার সময় rehype-sanitize সুপারিশ করা হয়; বড় বা adversarial ইনপুট পারফরম্যান্স বা ক্র্যাশ সমস্যাও ঘটাতে পারে, তাই ইনপুটের আকার সীমিত করা এবং আলাদা thread বা worker-এ প্রসেস করার পরামর্শ দেওয়া হয়। প্লাগইনগুলোর ঝুঁকি আলাদাভাবে মূল্যায়ন করা উচিত।