Comark؛ مارکداونی که کامپوننت و استریم میفهمه
خلاصهٔ کاملتر
کامارک (Comark) خودش رو «موتور مارکداون برای وب مدرن» معرفی میکنه و ایدهٔ اصلیش اینه: یه پارسر، همهٔ رندررها. یعنی همون سورس مارکداون رو میتونی به Vue، React، Svelte، Angular، Nuxt، HTML و حتی ANSI رندر کنی. تیم سازنده میگه پروژه روی پنج سال تجربهٔ MDC ساخته شده — همون پارسری که پشت Nuxt Content ـه.
نقطهٔ مرکزی طراحیش اینه که مارکداون رو بهجای کد، داده میبینه. متن پارس میشه به یه سند سادهٔ MarkdownDocument که راحت میشه پیمایشش کرد، کش کرد، سریالایز کرد و روی شبکه فرستاد. جداشدن پارس از رندر هم یعنی میتونی موقع بیلد پارس کنی یا موقع اجرا، سمت سرور یا داخل مرورگر.
import { parseMarkdown } from 'comark'
const document = await parseMarkdown('# Hello **World**')سینتکس کامپوننت با :: و اتریبیوتهای داخل آکولاد نوشته میشه و همچنان متن ساده میمونه. سمت فریمورک هم یه کامپوننت Markdown میگیری که کامپوننتهای خودت رو بهش پاس میدی و داخل متن رندر میشن.
import { Markdown } from '@comark/react'
import { Alert } from './components/Alert'
export default function App() {
return <Markdown components={{ Alert }}>{markdown}</Markdown>
}جذابترین بخشش برای این روزها auto-close ـه: وقتی متن داره کمکم میرسه — مثل خروجی استریمی یه مدل زبانی — سینتکس نیمهتمام بهصورت خودکار بسته میشه تا تو هر فریم درست رندر بشه، نه اینکه ستاره و بکتیک خام بپره تو صفحه. یعنی میتونی خروجی هوش مصنوعی رو مستقیم بریزی تو درخت کامپوننتهات.
بقیهاش هم همون چیزیه که انتظار داری: CommonMark و GFM بهصورت پیشفرض فعالن و اتریبیوت و کامپوننت اختیاریان، نه یه زبان جدید. پلاگینهای markdown-it هم کار میکنن، پس Shiki برای هایلایت، KaTeX برای فرمول ریاضی، Mermaid برای دیاگرام و فهرست مطالب از همون اول در دسترسن.
نکات کلیدی:
- یه پارسر با خروجی برای Vue، React، Svelte، Angular، Nuxt، HTML و ANSI
- کامپوننت و اتریبیوت داخل مارکداون، بدون خروج از متن ساده
- بدون مرحلهٔ بیلد؛ پارس روی سرور، مرورگر یا worker
- auto-close برای رندر درست متن ناقص موقع استریم
- سازگار با پلاگینهای markdown-it مثل Shiki و KaTeX و Mermaid
- خروجی پارس یه سند سریالایزشدنی و قابل کش ـه




