Enriched Markdown: مارکداون بومی تو React Native
خلاصهٔ کاملتر
react-native-enriched-markdown یه کتابخونهٔ React Native ـه که دوتا کار اصلی انجام میده: محتوای مارکداون رو بهصورت متن کاملاً بومی رندر میکنه، و یه ورودی متن غنی (rich text) در اختیارت میذاره که خروجیش مارکداونه. این کتابخونه رو تیم Software Mansion ساخته و از iOS، Android، macOS و وب پشتیبانی میکنه.
کامپوننت اول یعنی EnrichedMarkdownText بدون هیچ WebView ای متن رو رندر میکنه. برای پارسکردن سریع مارکداون از md4c استفاده میکنه، با استاندارد CommonMark و GitHub Flavored Markdown سازگاره، و رو وب هم همین md4c رو به WebAssembly کامپایل کرده تا با react-native-web کار کنه. رندر ریاضیات LaTeX هم پشتیبانی میشه.
امکاناتش کم نیست: استایل همهٔ المانها قابلسفارشیسازیه، متن رو میشه انتخاب و کپی کرد، منشنها (mentions) بهشکل لینک استایلدار در میان، متن اسپویلر با افکت ذرهای و باز شدن با ضربه هست، و مهمتر از همه برای ما، پشتیبانی کامل از RTL (راستبهچپ) برای متن، لیستها، نقلقولها، جدولها و لیست وظایف داره. قابلیت استریم مارکداون هم برای نمایش تدریجی خروجی اضافه شده.
کامپوننت دوم یعنی EnrichedMarkdownTextInput یه ورودی متن غنیه که موقع تایپ، خروجی مارکداون میده. یه API دستوری (imperative) برای فعال/غیرفعال کردن استایلها و مدیریت لینکها داره، منوی کانتکست بومی با زیرمنوی قالببندی میذاره، وضعیت استایل رو لحظهای تشخیص میده و کپی/پیست هوشمند با حفظ مارکداون رو هم پشتیبانی میکنه.
برای پلتفرمهای بومی، این کتابخونه به معماری جدید React Native یعنی Fabric نیاز داره؛ ولی رندرر وب چون کامل تو جاوااسکریپت و با WebAssembly اجرا میشه، این محدودیت رو نداره. البته رو وب فقط EnrichedMarkdownText در دسترسه و اون ورودی متن، مخصوص پلتفرمهای بومیه. کل پروژه با لایسنس MIT منتشر شده.
نکات کلیدی:
- رندر بومی مارکداون بدون WebView با پارسر پرسرعت md4c
- سازگار با CommonMark و GitHub Flavored Markdown و رندر ریاضیات LaTeX
- پشتیبانی کامل RTL برای متن، لیست، جدول و نقلقول
- ورودی متن غنی با خروجی مارکداون و تشخیص لحظهای استایل
- نیازمند معماری Fabric رو پلتفرمهای بومی؛ وب با WebAssembly




