📋 محتويات الصفحة
📖 الوصف
MDX هو امتداد لـMarkdown يسمح لك بتضمين مكونات React (JSX) داخل ملفات Markdown. يجمع بين بساطة Markdown في كتابة المحتوى وقوة React في التفاعل والمكونات. استورد مكون React واستخدمه في أي مكان داخل محتوى Markdown. يُستخدم MDX بشكل واسع في توثيق المشاريع (Docusaurus, Gatsby)، المدونات التقنية، والكتب...
🎯 يستخدم في
مجالات استخدام هذه الأداة
بناء مواقع توثيق تفاعلية (Docusaurus
Nextra)
مدونات تقنية مع عرض أكواد تفاعلية
كتب تعليمية تفاعلية
محتوى مع ألعاب ورسوم بيانية
عروض تقديمية تفاعلية (Slidev)
محتوى قابل للتخصيص
✨ المميزات
أبرز مميزات هذه الأداة
مكونات React مدمجة في Markdown
استيراد واستخدام مكونات في المحتوى
Props و Expressions في Markdown
متغيرات (Variables) مخصصة
Layouts مخصصة لكل صفحة
دعم كامل لـJSX (HTML + JavaScript)
تكامل مع كل Static Site Generators
remark/rehype plugins - نظام إضافات قوي
⚠️ العيوب
نقاط يجب مراعاتها
يتطلب React - غير متاح بدونها
منحنى تعلم - تحتاج معرفة React + Markdown
أبطأ من Markdown عادي (تحويل JSX)
أخطاء JSX مكسورة قد تكون مربكة
ليس Markdown قياسي - لا يعمل في GitHub
حجم ملفات أكبر
🔄 البدائل
أدوات بديلة يمكنك استخدامها
💻 مثال على الاستخدام
كيفية استخدام هذه الأداة
---
import Alert from './components/Alert';
import { CodeBlock } from './components/CodeBlock';
import Chart from './components/Chart';
export const meta = {
title: 'دليل React',
description: 'تعلم React من الصفر',
date: '2024-01-15'
};
---
# مرحباً بك في React
import { useState } from 'react';
## المفاهيم الأساسية
<Alert type="info">
React مكتبة لبناء واجهات المستخدم
باستخدام **المكونات** (Components).
</Alert>
### مثال على مكون
<CodeBlock lang="jsx">
{`function Counter() {
const [count, setCount] = useState(0);
return (
<button onClick={() => setCount(count + 1)}>
Count: {count}
</button>
);
}`}
</CodeBlock>
### رسم بياني تفاعلي
<Chart
data={[10, 20, 30, 40, 50]}
labels={['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو']}
type="bar"
/>
### محتوى ديناميكي
{meta.title} - نشر في {meta.date}
<details>
<summary>معلومات إضافية</summary>
محتوى إضافي قابل للطي...
</details>
<Tabs>
<Tabs.Item title="JavaScript">
\`\`\`js
console.log('Hello!');
\`\`\`
</Tabs.Item>
<Tabs.Item title="TypeScript">
\`\`\`ts
const msg: string = 'Hello!';
console.log(msg);
\`\`\`
</Tabs.Item>
</Tabs>
📚 أدوات أخرى في HTML
قد يعجبك أيضاً
Alpine.js HTML
مكتبة JavaScript خفيفة للتفاعلات في HTML (Minimal JavaScript Framework)
Astro HTML
⭐إطار ويب لبناء مواقع محتوى سريعة (Content-focused Web Framework)
Emmet
⭐إضافة محرر لتوسيع الاختصارات (Editor Plugin for Abbreviation Expansion)
Handlebars
⭐محرك قوالب منطقي (Logic-less Template Engine)
HTMX
مكتبة HTML لتفاعلات خادم-عميل بدون JavaScript (Hypermedia-Driven Library)
Markdown
⭐لغة ترميز خفيفة للنصوص (Lightweight Markup Language)