astromd4x: رندر Markdown تو Astro تا ۷۰ برابر سریعتر
خلاصهٔ کاملتر
astromd4x یه پکیج جدیده که قراره جای @astrojs/markdown-remark بشینه. این همون پکیجیه که Astro باهاش Markdown رو به HTML تبدیل میکنه. فرقش اینه که بهجای اکوسیستم remark/rehype (یعنی زنجیرهای از پلاگینهای جاوااسکریپتی که متن رو مرحله به مرحله پردازش میکنن) از md4x استفاده میکنه که یه موتور native و تکوابستگیه. سازندهش میگه رندر حدوداً ۵۰ تا ۷۰ برابر سریعتر میشه.
عددهای بنچمارک خود پروژه اینها هستن: ساختن processor با createMarkdownProcessor حدود ۶.۵ برابر سریعتره. رندر یه سند ساده از ۸.۲ هزار به ۴۴۳ هزار عملیات در ثانیه رسیده (۵۳.۷ برابر). سند با frontmatter حدود ۳۴.۵ برابر و یه سند پیچیده ۷۳ برابر سریعتر شده. یعنی هر چی محتوای سایت بیشتر و پیچیدهتر باشه، زمان build بیشتر کم میشه.
استفادهش سادهست. کافیه تو package.json اصلی پروژه با override پکیج قبلی رو با این عوض کنی و بقیهی کد دست نمیخوره، چون API و typeها کاملاً با نسخهی اصلی سازگارن:
"pnpm": {
"overrides": {
"@astrojs/markdown-remark": "npm:astromd4x@latest"
}
}امکاناتی که الان داره شامل GFM (جدول، task list، خطخوردگی و autolink)، پارس frontmatter از نوع YAML، ساخت ID برای headingها سازگار با github-slugger و استخراج متادیتای headingهاست. توابعی مثل parseFrontmatter و extractFrontmatter هم مستقیم قابل استفادهن.
ولی خود پروژه میگه که این یه نسخهی اولیهست و تمرکزش فقط روی سرعت رندره. syntax highlighting با Shiki یا Prism، پایپلاین پلاگینهای remark/rehype، جمعکردن مسیر تصاویر، Smartypants و frontmatter از نوع TOML هنوز پیاده نشدن. پس اگه پروژهت به پلاگین remark یا هایلایت کد وابستهست، فعلاً نمیتونی ازش استفاده کنی.
نکات کلیدی:
- جایگزین مستقیم @astrojs/markdown-remark با موتور native به اسم md4x
- طبق بنچمارک خود پروژه، رندر سند پیچیده ۷۳ برابر و سند ساده ۵۳.۷ برابر سریعتره
- نصب فقط با یه override تو package.json انجام میشه
- از GFM، frontmatter از نوع YAML و ID headingهای سازگار با github-slugger پشتیبانی میکنه
- Shiki/Prism، پلاگینهای remark/rehype و TOML frontmatter هنوز پشتیبانی نمیشن
- با لایسنس MIT منتشر شده




