Skip to content

الأدوات والإضافات ​

اختيار الأدوات والإضافات المناسبة يرفع كفاءة الكتابة وجودة الوثائق. هذا الدليل يعرض فئات الأدوات لبناء سير عمل متكامل لـ Markdown.

محررات مُوصى بها ​

محررات شيفرة احترافية ​

Visual Studio Code ​

الميزات: مجاني، متعدد الأنظمة، ثري بالإضافات

markdown
الإضافات المُوصى بها:
- Markdown All in One: دعم Markdown متكامل
- Markdown Preview Enhanced: ميزات معاينة محسّنة
- markdownlint: فحص بناء الكود والمعايير
- Paste Image: لصق صور سريع
- Table Editor: تحرير جداول مرئي
- Math to Image: تحويل الصيغ الرياضية إلى صور

مثال ضبط:

json
{
  "markdown.preview.fontSize": 14,
  "markdown.preview.lineHeight": 1.6,
  "markdown.extension.toc.levels": "1..6",
  "markdown.extension.print.absoluteImgPath": false,
  "[markdown]": {
    "editor.wordWrap": "on",
    "editor.lineNumbers": "on",
    "editor.quickSuggestions": false
  }
}

Typora ​

الميزات: WYSIWYG، واجهة بسيطة، سمات متعددة

markdown
الوظائف الرئيسية:
- تحرير بمعاينة مباشرة
- دعم الصيغ الرياضية
- تكامل رسم المخططات
- تصدير صيغ متعددة
- نسخ صور تلقائي
- تحرير جداول مرئي

Mark Text ​

الميزات: مفتوح المصدر، معاينة فورية، أداء ممتاز

markdown
الميزات الأساسية:
- عرض بمعاينة مباشرة
- وضع التركيز
- دعم الصيغ الرياضية
- دعم مخططات التدفق
- صيغ تصدير متعددة
- موضوعات مخصصة

محررات على الإنترنت ​

StackEdit ​

الميزات: عبر المتصفح، مزامنة سحابية، تعاون

markdown
نقاط القوة:
- مزامنة مباشرة إلى Google Drive و Dropbox
- نشر إلى GitHub ومنصات المدونات
- دعم التحرير دون اتصال
- الصيغ الرياضية والمخططات
- تحرير تعاوني
- سجل الإصدارات

Dillinger ​

الميزات: واجهة بسيطة، تكاملات متعددة

markdown
المنصات المتكاملة:
- GitHub
- Dropbox
- Google Drive
- OneDrive
- دعم تصدير HTML و PDF
- معاينة مباشرة

HackMD ​

الميزات: تعاون الفرق، وضع العروض

markdown
ميزات التعاون:
- تحرير مباشر متعدد المستخدمين
- نظام التعليقات
- تحكم بالإصدارات
- إدارة الصلاحيات
- وضع العرض
- وضع الكتاب

أدوات المعاينة والتحويل ​

مولدات مواقع ثابتة ​

VitePress ​

الميزات: بيئة Vue، أداء ممتاز، حداثة

javascript
// .vitepress/config.js
export default {
  title: 'My Documentation',
  description: 'A VitePress site',
  
  themeConfig: {
    nav: [
      { text: 'Home', link: '/' },
      { text: 'Guide', link: '/guide/' }
    ],
    
    sidebar: {
      '/guide/': [
        {
          text: 'Getting Started',
          items: [
            { text: 'Introduction', link: '/guide/introduction' },
            { text: 'Installation', link: '/guide/installation' }
          ]
        }
      ]
    }
  },
  
  markdown: {
    math: true,
    mermaid: true,
    lineNumbers: true
  }
}

GitBook ​

الميزات: واجهة جميلة، تعاون الفرق، إدارة نسخ

markdown
الميزات المميزة:
- تجربة قراءة حديثة
- تحرير تعاوني للفرق
- تصدير بصيغ متعددة
- وظيفة البحث
- تحليلات متكاملة
- توليد وثائق API

Docusaurus ​

الميزات: مفتوح المصدر من Facebook، بيئة React، دعم لغات متعددة

javascript
// docusaurus.config.js
module.exports = {
  title: 'My Site',
  tagline: 'The tagline of my site',
  url: 'https://your-docusaurus-test-site.com',
  
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        docs: {
          sidebarPath: require.resolve('./sidebars.js'),
          editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/',
        },
        blog: {
          showReadingTime: true,
          editUrl: 'https://github.com/facebook/docusaurus/edit/master/website/blog/',
        },
        theme: {
          customCss: require.resolve('./src/css/custom.css'),
        },
      },
    ],
  ],
  
  themeConfig: {
    navbar: {
      title: 'My Site',
      logo: {
        alt: 'My Site Logo',
        src: 'img/logo.svg',
      },
    },
  },
};

أدوات تحويل الصيغ ​

Pandoc ​

الميزات: محول شامل، سطر أوامر، صيغ عديدة

bash
# تحويل Markdown إلى PDF
pandoc document.md -o document.pdf

# تحويل Markdown إلى Word
pandoc document.md -o document.docx

# تحويل Markdown إلى HTML (أنماط مخصصة)
pandoc document.md -s --css=style.css -o document.html

# تحويل مجمع
find . -name "*.md" -exec pandoc {} -o {}.pdf \;

# استخدام قالب
pandoc document.md --template=template.html -o output.html

# توليد جدول المحتويات
pandoc document.md --toc --toc-depth=3 -o document.pdf

markdownlint ​

الميزات: فحص القواعد، توحيد النمط، إصلاح تلقائي

bash
# التثبيت
npm install -g markdownlint-cli

# فحص ملف واحد
markdownlint README.md

# فحص مجلد
markdownlint docs/

# إصلاح تلقائي
markdownlint --fix *.md

# استخدام ملف التكوين
markdownlint --config .markdownlint.json docs/

مثال ضبط:

json
{
  "default": true,
  "MD013": {
    "line_length": 120,
    "code_blocks": false,
    "tables": false
  },
  "MD033": {
    "allowed_elements": ["div", "span", "img", "a"]
  },
  "MD041": false
}

أدوات الصور والوسائط ​

أدوات معالجة الصور ​

PicGo ​

الميزات: رفع تلقائي، دعم منصات متعددة، إضافات

markdown
المنصات المدعومة:
- Qiniu Cloud
- Tencent Cloud COS
- Upyun
- GitHub
- Alibaba Cloud OSS
- Imgur
- رفع مخصص

مثال ضبط:

json
{
  "picBed": {
    "uploader": "github",
    "github": {
      "repo": "username/image-repo",
      "token": "your_github_token",
      "path": "images/",
      "customUrl": "https://cdn.jsdelivr.net/gh/username/image-repo",
      "branch": "main"
    }
  },
  "settings": {
    "autoRename": true,
    "uploadNotification": true
  }
}

ImageOptim / TinyPNG ​

الميزات: ضغط الصور، تصغير الحجم، الحفاظ على الجودة

bash
# استخدام ImageOptim CLI
imageoptim *.png *.jpg

# استخدام TinyPNG API
curl --user api:YOUR_API_KEY \
     --data-binary @original.png \
     --output compressed.png \
     https://api.tinify.com/shrink

أدوات توليد الرسوم ​

draw.io (diagrams.net) ​

الميزات: مجاني، قوي، تصدير بصيغ عديدة

markdown
حالات الاستخدام:
- مخططات بنية النظام
- تصميم مخططات التدفق
- مخططات UML
- مخططات طوبولوجيا الشبكة
- الخرائط الذهنية
- تصميم النماذج الأولية

Excalidraw ​

الميزات: أسلوب يدوي، تعاون، سهل الاستخدام

markdown
الميزات المميزة:
- مخططات بأسلوب الرسم اليدوي
- تعاون مباشر
- استخدام دون اتصال
- تصدير PNG/SVG
- إدارة المكتبات
- لوحة رسم غير محدودة

منصات إدارة الوثائق ​

أدوات تعاون الفرق ​

Notion ​

الميزات: مساحة عمل موحدة، قواعد بيانات، قوالب

markdown
وظائف الوثائق:
- هيكل صفحات هرمي
- تحرير تعاوني مباشر
- تكامل قاعدة البيانات
- نظام القوالب
- دعم الوسائط المتعددة
- تكامل API

Confluence ​

الميزات: على مستوى المؤسسات، صلاحيات، تكامل قوي

markdown
ميزات المؤسسات:
- تحكم متقدم بالصلاحيات
- سير عمل الموافقات
- تخصيص العلامة التجارية
- تكامل المؤسسات
- بحث متقدم
- تقارير التحليل

GitBook ​

الميزات: مناسب للمطورين، تحكم بالإصدارات، واجهة جميلة

markdown
المزايا الأساسية:
- تكامل Git
- سجل الإصدارات
- تعاون الفرق
- نطاق مخصص
- وظيفة البحث
- بيانات التحليل

منصات النشر ​

GitHub Pages ​

الميزات: استضافة مجانية، تحكم بالإصدارات، نطاق مخصص

yaml
# .github/workflows/deploy.yml
name: Deploy to GitHub Pages

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '16'
        
    - name: Install dependencies
      run: npm install
      
    - name: Build
      run: npm run build
      
    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./dist

Netlify ​

الميزات: نشر سريع، CDN، معالجة نماذج

toml
# netlify.toml
[build]
  publish = "dist"
  command = "npm run build"

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

[build.environment]
  NODE_VERSION = "16"

Vercel ​

الميزات: نشر بلا إعداد، CDN عالمي، استعراضات نشر

json
{
  "builds": [
    {
      "src": "package.json",
      "use": "@vercel/static-build",
      "config": {
        "distDir": "dist"
      }
    }
  ],
  "routes": [
    {
      "handle": "filesystem"
    },
    {
      "src": "/(.*)",
      "dest": "/index.html"
    }
  ]
}

أدوات الأتمتة ​

تكامل CI/CD ​

GitHub Actions ​

مثال سير عمل:

yaml
name: Documentation Build and Deploy

on:
  push:
    branches: [ main ]
    paths: [ 'docs/**' ]
  pull_request:
    branches: [ main ]
    paths: [ 'docs/**' ]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Lint Markdown
      uses: articulate/actions-markdownlint@v1
      with:
        config: .markdownlint.json
        files: 'docs/**/*.md'

  build:
    needs: lint
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '16'
        cache: 'npm'
        
    - name: Install dependencies
      run: npm ci
      
    - name: Build VitePress
      run: npm run docs:build
      
    - name: Upload artifact
      uses: actions/upload-pages-artifact@v1
      with:
        path: docs/.vitepress/dist

  deploy:
    needs: build
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v1

خطافات Pre-commit ​

ملف الضبط .pre-commit-config.yaml:

yaml
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files
      
  - repo: https://github.com/igorshubovych/markdownlint-cli
    rev: v0.32.2
    hooks:
      - id: markdownlint
        args: ['--fix']
        
  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black
        language_version: python3
        
  - repo: local
    hooks:
      - id: docs-build
        name: Build documentation
        entry: npm run docs:build
        language: system
        files: '^docs/.*\.md$'
        pass_filenames: false

أدوات توليد الوثائق ​

توليد وثائق API تلقائياً ​

javascript
// استخدام JSDoc لتوليد وثائق API
/**
 * إنشاء مستخدم جديد
 * @param {Object} userData - بيانات المستخدم
 * @param {string} userData.name - اسم المستخدم
 * @param {string} userData.email - عنوان البريد الإلكتروني
 * @param {string} [userData.role=user] - دور المستخدم
 * @returns {Promise<Object>} كائن المستخدم الذي تم إنشاؤه
 * @example
 * const user = await createUser({
 *   name: 'أحمد محمد',
 *   email: 'ahmed@example.com'
 * });
 */
async function createUser(userData) {
  // كود التنفيذ...
}
bash
# توليد الوثائق
jsdoc src/ -d docs/api/ -c jsdoc.conf.json

وثائق OpenAPI/Swagger ​

yaml
# openapi.yaml
openapi: 3.0.0
info:
  title: API إدارة المستخدمين
  version: 1.0.0
  description: RESTful API لنظام إدارة المستخدمين

paths:
  /users:
    post:
      summary: إنشاء مستخدم جديد
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'
      responses:
        '201':
          description: تم إنشاء المستخدم بنجاح
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'

components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
          example: "12345"
        name:
          type: string
          example: "أحمد محمد"
        email:
          type: string
          format: email
          example: "ahmed@example.com"
    
    CreateUserRequest:
      type: object
      required:
        - name
        - email
      properties:
        name:
          type: string
        email:
          type: string
          format: email
        role:
          type: string
          default: "user"

أدوات تحسين الأداء ​

تحسين البناء ​

سكربت تحسين الصور ​

javascript
// optimize-images.js
const sharp = require('sharp');
const fs = require('fs');
const path = require('path');

async function optimizeImages(dir) {
  const files = fs.readdirSync(dir);
  
  for (const file of files) {
    const filePath = path.join(dir, file);
    const stat = fs.statSync(filePath);
    
    if (stat.isDirectory()) {
      await optimizeImages(filePath);
    } else if (/\.(jpg|jpeg|png)$/i.test(file)) {
      const outputPath = filePath.replace(/\.(jpg|jpeg|png)$/i, '.webp');
      
      await sharp(filePath)
        .webp({ quality: 80 })
        .toFile(outputPath);
        
      console.log(`مُحسّن: ${file} -> ${path.basename(outputPath)}`);
    }
  }
}

optimizeImages('./docs/assets/images');

سكربت بناء الوثائق ​

javascript
// build-docs.js
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

function buildDocs() {
  console.log('📝 بدء بناء الوثائق...');
  
  // 1. فحص بناء Markdown
  console.log('🔍 فحص بناء Markdown...');
  execSync('markdownlint docs/', { stdio: 'inherit' });
  
  // 2. تحسين الصور
  console.log('🖼️ تحسين الصور...');
  execSync('node optimize-images.js', { stdio: 'inherit' });
  
  // 3. بناء الموقع الثابت
  console.log('🏗️ بناء الموقع الثابت...');
  execSync('vitepress build docs', { stdio: 'inherit' });
  
  // 4. توليد خريطة الموقع
  console.log('🗺️ توليد خريطة الموقع...');
  generateSitemap();
  
  console.log('✅ اكتمل بناء الوثائق!');
}

function generateSitemap() {
  const baseUrl = 'https://yoursite.com';
  const pages = findMarkdownFiles('./docs');
  
  const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${pages.map(page => `  <url>
    <loc>${baseUrl}${page}</loc>
    <lastmod>${new Date().toISOString().split('T')[0]}</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>`).join('\n')}
</urlset>`;

  fs.writeFileSync('./docs/.vitepress/dist/sitemap.xml', sitemap);
}

function findMarkdownFiles(dir, basePath = '') {
  const files = [];
  const items = fs.readdirSync(dir);
  
  for (const item of items) {
    const fullPath = path.join(dir, item);
    const relativePath = path.join(basePath, item);
    
    if (fs.statSync(fullPath).isDirectory()) {
      files.push(...findMarkdownFiles(fullPath, relativePath));
    } else if (item.endsWith('.md') && item !== 'README.md') {
      const urlPath = relativePath
        .replace(/\.md$/, '.html')
        .replace(/\\/g, '/');
      files.push('/' + urlPath);
    }
  }
  
  return files;
}

buildDocs();

دليل اختيار الأدوات ​

اختر الأدوات حسب الحاجة ​

markdown
## كتابة مدونة شخصية
مجموعة مُوصى بها:
- المحرر: Typora أو Mark Text
- النشر: GitHub Pages + Jekyll
- الصور: PicGo + GitHub
- الإصدارات: Git

## تعاون فرق على الوثائق
مجموعة مُوصى بها:
- المنصة: Notion أو GitBook
- المحرر: VS Code + إضافات
- الإصدارات: Git + GitHub
- الأتمتة: GitHub Actions

## موقع وثائق تقنية
مجموعة مُوصى بها:
- المولد: VitePress أو Docusaurus
- المحرر: VS Code
- النشر: Netlify أو Vercel
- المخططات: Mermaid + draw.io

## وثائق API
مجموعة مُوصى بها:
- الأداة: Swagger/OpenAPI
- التوليد: Redoc أو SwaggerUI
- التكامل: Postman
- الاختبار: Newman

## الأوراق الأكاديمية
مجموعة مُوصى بها:
- المحرر: Typora + Pandoc
- الصيغ: MathJax/KaTeX
- الاقتباسات: Zotero
- التحويل: Pandoc LaTeX

مقارنة التكاليف ​

نوع الأداةالخيارات المجانيةالخيارات المدفوعةالنسخة المؤسسية
المحررVS Code، Mark TextTypora (¥89)-
الاستضافةGitHub PagesNetlify Pro (¥190/شهر)مخصص للمؤسسات
التعاونGitHubNotion (¥64/شهر/شخص)Confluence (¥42/شهر/شخص)
استضافة الصورGitHubQiniu Cloud (¥0.1/GB)سحابة خاصة للمؤسسات
النطاقgithub.ioنطاق مخصص (¥60/سنة)نطاق مؤسسي

قواعد ذات صلة ​

توصيات ختامية ​

إعدادات مُقترحة للمبتدئين ​

markdown
🚀 مجموعة البدء السريع:
1. المحرر: VS Code + Markdown All in One
2. المعاينة: إضافة معاينة مباشرة
3. الإصدارات: Git + GitHub
4. النشر: GitHub Pages
5. الصور: رفع مباشر إلى المستودع

💰 التكلفة: مجاني تماماً
⏱️ زمن التعلم: 1-2 ساعة
🎯 مناسب لـ: مدونات شخصية، وثائق مشاريع صغيرة

إعدادات مُقترحة للمتمرسين ​

markdown
⚡ مجموعة احترافية:
1. المحرر: Typora + VS Code
2. المولد: VitePress
3. استضافة الصور: PicGo + تخزين سحابي
4. التعاون: GitHub + Issues
5. الأتمتة: GitHub Actions
6. المراقبة: Google Analytics

💰 التكلفة: ¥200-500/سنة
⏱️ زمن التعلم: 1-2 يوم
🎯 مناسب لـ: فرق تقنية، مشاريع مفتوحة المصدر

إعدادات على مستوى المؤسسات ​

markdown
🏢 مجموعة المؤسسات:
1. المنصة: Confluence أو GitBook
2. التحرير: VS Code + إضافات الفريق
3. الإصدارات: Git على مستوى المؤسسات
4. النشر: سحابة خاصة + CDN
5. التعاون: إدارة صلاحيات كاملة
6. التكامل: CI/CD + مراقبة وإنذارات

💰 التكلفة: ¥5000-20000/سنة
⏱️ زمن النشر: 1-2 أسبوع
🎯 مناسب لـ: مؤسسات كبيرة، وثائق المنتجات

بالاختيار والضبط المناسبين لهذه الأدوات، ستبني سير عمل احترافياً لوثائق Markdown وتُحسن إنتاجية الإنشاء والصيانة.

بُني بواسطة www.markdownlang.com