توثيق API - MD-2-PDF v2.0

نظرة عامة

MD-2-PDF هي أداة سحابية لتحويل نصوص Markdown إلى ملفات PDF احترافية مع دعم كامل للغة العربية (RTL)، المعادلات الرياضية (LaTeX)، تلوين الأكواد، ومخططات PlantUML.

الرابط الأساسي: https://md-2-pdf-5vz.pages.dev

معلومات سريعة

الإصدار2.0.0
المنصةCloudflare Pages + Workers
تنسيق الطلباتJSON (Content-Type: application/json)
البروتوكولHTTPS فقط
رمز المصدرGitHub Repository

المميزات

🔤 دعم RTL

دعم كامل للغة العربية والاتجاه من اليمين لليسار

📐 LaTeX

معادلات رياضية سطرية ($x^2$) وعرضية ($$...$$)

🎨 تلوين الأكواد

Syntax Highlighting لـ JavaScript, Python, CSS, SQL وأكثر

📊 PlantUML

مخططات تسلسلية، فئات، وتدفق مباشرة في المستند

🎭 ثيمات متعددة

5 ثيمات: أزرق، أحمر، أخضر، بنفسجي، ذهبي

📄 صفحة غلاف

صفحة غلاف تلقائية مع عنوان، مؤلف، وتاريخ

⚙️ Frontmatter

YAML Frontmatter لبيانات المستند الوصفية

🤖 MCP

أدوات MCP للتكامل مع Claude, Gemini, Codex وأكثر

المصادقة

معظم نقاط النهاية تعمل بدون مصادقة. لتسجيل السجلات واستخدام التاريخ:

الطريقةالتفاصيل
JWT Token إرسال عبر Authorization: Bearer <token>
Guest Session إرسال عبر X-Guest-Session: <id>

GET /api/health GET

فحص صحة الخادم — يتأكد إنو الخدمة شغالة.

مثال الطلب

curl https://md-2-pdf-5vz.pages.dev/api/health

الاستجابة

{
  "status": "ok",
  "service": "md-2-pdf",
  "version": "2.0.0",
  "platform": "cloudflare-pages",
  "timestamp": "2026-05-20T00:00:00.000Z"
}

POST /api/convert POST

تحويل نص Markdown إلى ملف PDF. يعيد الملف بصيغة base64 داخل JSON.

المعاملات

المعاملالنوعمطلوبالوصف
markdownstring✅ نعمنص Markdown للتحويل
options.titlestring❌ لاعنوان المستند (يظهر بصفحة الغلاف)
options.authorstring❌ لااسم المؤلف
options.pageSizestring❌ لاA4 | Letter | Legal (افتراضي: A4)
options.orientationstring❌ لاportrait | landscape
options.fontSizenumber❌ لاحجم الخط بالبكسل (افتراضي: 10)
options.fontFamilystring❌ لاعائلة الخط
options.cssstring❌ لاCSS مخصص يُحقن في PDF
options.marginobject❌ لاالهوامش: {top, right, bottom, left} (مثال: "20mm")

مثال الطلب

curl -X POST https://md-2-pdf-5vz.pages.dev/api/convert \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "# مرحباً بالعالم\n\nهذا **نص** تجريبي.\n\nمعادلة: $E = mc^2$\n\n```javascript\nconsole.log(\"Hello\");\n```",
    "options": {
      "title": "مستندي",
      "pageSize": "A4"
    }
  }'

الاستجابة (نجاح)

{
  "success": true,
  "pdf": "JVBERi0xLjQK...",
  "metadata": {
    "title": "مستندي",
    "createdAt": "2026-05-20T00:00:00.000Z"
  }
}

الاستجابة (خطأ - تجاوز الحد)

{
  "success": false,
  "error": "تم تجاوز حد التحويل اليومي...",
  "fallback": true,
  "html": "<html>...",
  "metadata": { ... }
}
⚠️ ملاحظة: حقل pdf يحتوي على ملف PDF كامل بصيغة base64. استخدم atob() في JavaScript أو base64 -d في الطرفية لاستخراج الملف.

POST /api/convert/base64 POST

مثل /api/convert لكن يعيد الـ base64 بحقل اسمه pdfBase64 بدل pdf.

الاستجابة

{
  "success": true,
  "pdfBase64": "JVBERi0xLjQK...",
  "metadata": { ... }
}

POST /api/parse POST

تحليل Markdown واستخراج البيانات الوصفية + معاينة HTML. لا ينشئ PDF.

المعاملات

المعاملالنوعمطلوبالوصف
markdownstring✅ نعمنص Markdown للتحليل
optionsobject❌ لاخيارات التحويل (نفس convert)

مثال الطلب

curl -X POST https://md-2-pdf-5vz.pages.dev/api/parse \
  -H "Content-Type: application/json" \
  -d '{
    "markdown": "---\ntitle: مستندي\nauthor: أحمد\n---\n\n# مرحباً\n\n**نص عريض** مع `كود`"
  }'

الاستجابة

{
  "success": true,
  "html": "<!DOCTYPE html><html lang=\"ar\" dir=\"rtl\">...",
  "metadata": {
    "title": "مستندي",
    "author": "أحمد",
    "createdAt": "2026-05-20T00:00:00.000Z"
  }
}

POST /api/auth/register POST

تسجيل حساب جديد لحفظ السجلات.

المعاملات

المعاملالنوعمطلوبالوصف
usernamestring✅ نعماسم المستخدم
emailstring✅ نعمالبريد الإلكتروني
passwordstring✅ نعمكلمة المرور

POST /api/auth/login POST

تسجيل الدخول والحصول على JWT token.

المعاملات

المعاملالنوعمطلوبالوصف
emailstring✅ نعمالبريد الإلكتروني
passwordstring✅ نعمكلمة المرور

POST /api/auth/guest POST

إنشاء جلسة ضيف بدون تسجيل — يكفي لإرسال معرف الجلسة لاحقاً.

GET /api/history GET

جلب سجلات المستندات المحفوظة. يتطلب مصادقة (JWT أو Guest Session).

المعاملات (Query String)

المعاملالنوعالوصف
limitnumberعدد النتائج (افتراضي: 50)
offsetnumberبداية النتائج
searchstringبحث في العناوين

مثال الطلب

curl https://md-2-pdf-5vz.pages.dev/api/history?limit=10 \
  -H "Authorization: Bearer <token>"

🌍 تعدد اللغات

الموقع يدعم لغتين: العربية (افتراضي) وEnglish.

التبديل: استخدم القائمة المنسدلة 🌐 أعلى الصفحة. اللغة المحفوظة في المتصفح.

الميزات حسب اللغة

  • تبديل كامل لكل النصوص (عناوين، أزرار، مساعدات)
  • تبديل اتجاه الصفحة (RTL ↔ LTR) تلقائياً
  • تبديل اتجاه محرر النص
  • تبديل أزرار الاتجاه (RTL/LTR) لتتطابق اللغة

👤 الحسابات والسجلات

أنشئ حساباً لحفظ سجلات تحويلاتك أو تابع كضيف.

أنواع المستخدمين

النوعالمميزات
مسجلحفظ دائم في السحابة، الوصول من أي جهاز
ضيفلا تخزين على الخادم؛ السجل في المتصفح فقط

كيفية الاستخدام

  1. اضغط 🔑 تسجيل الدخول أعلى الصفحة
  2. أنشئ حساباً أو سجل دخول
  3. حوّل أي ملف Markdown إلى PDF
  4. ستجد سجلاتك في صفحة 📋 السجلات
نصيحة: يمكنك فتح أي مستند سابق من السجلات وتعديله وإعادة تحويله.

🦾 OpenClaw Skill

MD-2-PDF متاح كـ AgentSkill لأي ذكاء اصطناعي يدعم OpenClaw (Claude, Gemini, Codex, Cursor، وأكثر).

الملف: SKILL.md في المستودع
الوصف: تحويل Markdown إلى PDF مع دعم RTL والعربية

المميزات الموثقة بالـ Skill

الميزةالوصف
تحويل سريعMarkdown → PDF عبر API أو MCP
RTL وعربيدعم كامل للاتجاه من اليمين لليسار
LaTeXمعادلات رياضية سطرية وعرضية
تلوين الأكوادGitHub Dark Dimmed theme
PlantUMLمخططات مباشرة في المستند
ثيمات5 ثيمات: أزرق، أحمر، أخضر، بنفسجي، ذهبي
MCP Server5 أدوات للتكامل المباشر

خيارات التحويل

الخيارالقيمالافتراضي
directionauto | rtl | ltr | hybridauto
themeblue | red | green | purple | goldblue
pageSizeA4 | Letter | LegalA4
orientationportrait | landscapeportrait
fontSize8–2410
cssCSS إضافي—

طرق الاستخدام

1️⃣ MCP Server (للـ AI Agents)

https://md-2-pdf-5vz.pages.dev/mcp

2️⃣ REST API

POST https://md-2-pdf-5vz.pages.dev/api/convert
Content-Type: application/json

{
  "markdown": "# مرحبا\n**نص عربي**",
  "options": { "direction": "rtl", "theme": "blue" }
}

3️⃣ الواجهة (Web UI)

زر https://md-2-pdf-5vz.pages.dev — اكتب أو ارفع Markdown، عاين، وحمّل PDF.

ملف SKILL.md: متوفر في GitHub Repository

🤖 خادم MCP (عن بُعد على Cloudflare)

نقطة النهاية الوحيدة: https://md-2-pdf-5vz.pages.dev/mcp
خادم MCP يعمل مباشرةً على Cloudflare Pages عبر Streamable HTTP — لا حاجة لتثبيت Node.js أو استنساخ المشروع أو بنائه محلياً. أي عميل MCP متوافق يتصل بهذا الرابط فقط.

الخادم يوفّر 5 أدوات للذكاء الاصطناعي لتحويل Markdown والتحكم بسجل التحويلات:

convert-markdown-to-pdf تحويل مباشر

تحويل نص Markdown إلى ملف PDF (Base64). يدعم: frontmatter، تلوين الكود، رياضيات KaTeX، رسوم PlantUML، تخطيطات عربية/RTL.

المعاملالنوعالوصف
markdownstringنص Markdown (مطلوب)
pageSizeenumA4 | Letter | Legal
orientationenumportrait | landscape
directionenumauto | rtl | ltr | hybrid
fontSizenumberحجم الخط (8–24)
cssstringCSS إضافي
marginobject{ top, right, bottom, left }
filenamestringاسم الملف المقترح
saveToHistorybooleanحفظ في السجل (يتطلب auth)
parse-markdown تحليل

تحويل Markdown إلى HTML منسّق + استخراج الـ frontmatter. لا يستخدم الشبكة (سريع جداً).

المعاملالنوعالوصف
markdownstringنص Markdown (مطلوب)
+ نفس خيارات التحويل أعلاه (pageSize, direction, …)
list-documents سجل

عرض المستندات المحوّلة سابقاً للمستخدم أو الجلسة الضيف. يتطلب auth.

المعاملالنوعالوصف
limitnumberعدد النتائج (1–200)
offsetnumberترقيم الصفحات
searchstringبحث في العناوين
get-document سجل

جلب مستند واحد بالكامل (Markdown + metadata) عبر معرّفه الرقمي.

المعاملالنوعالوصف
idnumberمعرّف المستند (مطلوب)
create-guest-session auth

إنشاء جلسة ضيف UUID لحفظ التحويلات بدون تسجيل حساب. استخدم الناتج في _meta.auth.guestSessionId.

⚙️ إعداد MCP (Remote — URL واحد)

كل عميل MCP يحتاج فقط إضافة الرابط https://md-2-pdf-5vz.pages.dev/mcp — لا تثبيت، لا استنساخ، لا بناء.

🔑 المصادقة (اختياري): لتشغيل saveToHistory أو list-documents، مرّر أحد هذه في _meta.auth:
  • { "token": "<JWT>" } — من POST /api/auth/login
  • { "guestSessionId": "<UUID>" } — أنشئه بأداة create-guest-session

C Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "md-2-pdf": {
      "url": "https://md-2-pdf-5vz.pages.dev/mcp"
    }
  }
}
أو عبر Claude Code CLI:
claude mcp add --transport http md-2-pdf https://md-2-pdf-5vz.pages.dev/mcp

A Antigravity / Gemini CLI

~/.gemini/settings.json
{
  "mcpServers": {
    "md-2-pdf": {
      "url": "https://md-2-pdf-5vz.pages.dev/mcp"
    }
  }
}

K Kilo Code / Cline / Continue

~/.config/kilo/kilo.jsonc · أو إعدادات الـ IDE
{
  "mcp": {
    "md-2-pdf": {
      "type": "http",
      "url": "https://md-2-pdf-5vz.pages.dev/mcp"
    }
  }
}

O OpenClaw / OpenCode

~/.config/opencode/opencode.jsonc
{
  "mcp": {
    "md-2-pdf": {
      "type": "http",
      "url": "https://md-2-pdf-5vz.pages.dev/mcp"
    }
  }
}

X Codex (OpenAI)

~/.codex/config.toml
[mcp_servers.md-2-pdf]
type = "http"
url = "https://md-2-pdf-5vz.pages.dev/mcp"

Q Qwen CLI

~/.qwen/mcp_config.json
{
  "mcpServers": {
    "md-2-pdf": {
      "url": "https://md-2-pdf-5vz.pages.dev/mcp"
    }
  }
}

* أي عميل MCP متوافق

{
  "md-2-pdf": {
    "transport": "streamable-http",
    "url": "https://md-2-pdf-5vz.pages.dev/mcp"
  }
}
✅ لماذا Remote؟
  • الذكاء الاصطناعي يتصل مباشرة بـ Cloudflare — زمن استجابة عالمي منخفض.
  • لا حاجة لـ Node.js على جهاز المستخدم.
  • التحديثات تنطبق فوراً على كل العملاء.
  • التشفير عبر HTTPS، CORS مفتوح للاستخدام من المتصفح.

🧪 اختبار MCP

كل طلب MCP هو عبارة عن JSON-RPC 2.0 عبر POST. جرّب مباشرةً بـ curl:

1) سرد الأدوات المتاحة

curl -X POST https://md-2-pdf-5vz.pages.dev/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'

2) تحويل Markdown إلى PDF

curl -X POST https://md-2-pdf-5vz.pages.dev/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"convert-markdown-to-pdf","arguments":{"markdown":"# مرحباً\\nهذا **اختبار** من MCP","direction":"rtl"}}}'

3) فحص نص FYI

curl https://md-2-pdf-5vz.pages.dev/mcp

سيعيد JSON تعريفي يصف الخدمة (مفيد للتأكد أن الخادم حيّ).