العودة للمدونة
Blog Article2026-07-06

تحويل Markdown إلى Word عبر سطر الأوامر: دليل Pandoc

SO
(sosojustdo)
9 min read

طرفية تشغّل أمر pandoc لتحويل ملف Markdown إلى مستند Word

إذا أردت تحويل Markdown إلى Word من سطر الأوامر، فالإجابة هي pandoc، والمهمة كلها سطر واحد:

pandoc report.md -f gfm -o report.docx

يغطي هذا الأمر معظم المستندات. ما لا تخبرك به الدروس المختصرة هو أين يتوقف عن العمل — كما أن جزءًا مما كُتب عن حدود pandoc أصبح ببساطة قديمًا. أجرينا اختبارًا فعليًا باستخدام pandoc 3.7.0.2 على مستند مليء بالجداول وقوائم المهام ومعادلات LaTeX ومخطط Mermaid، ثم فككنا ضغط ملف .docx الناتج لفحص ما خرج بالفعل. بعض النتائج كانت مفاجئة.

يمر هذا الدليل بالتثبيت، والأوامر التي تستحق الحفظ، وتنسيق DOCX، والتحويل الدفعي، ثم — استنادًا إلى ذلك الاختبار — خريطة صادقة لمواضع فشل pandoc والحالات التي تكون فيها أداة التحويل عبر الإنترنت الخيار الأفضل.

👈 انتقل مباشرة إلى نتائج الاختبار | انتقل إلى مقارنة سطر الأوامر بالأداة عبر الإنترنت

تثبيت Pandoc

Pandoc ملف تنفيذي واحد وله مثبّتات لكل المنصات الرئيسية:

  • macOS: ‏brew install pandoc
  • Windows: ‏winget install --id JohnMacFarlane.Pandoc (أو مثبّت MSI)
  • Debian/Ubuntu: ‏sudo apt install pandoc

تنبيه قبل الوثوق بحزمة نظام قديمة: كثيرًا ما تشحن مستودعات التوزيعات إصدارات pandoc متأخرة بسنوات. ظل Ubuntu LTS يشحن الإصدار 2.x لفترة طويلة بينما خط الإصدارات الحالي هو 3.x — وكما سترى أدناه، يغيّر عمر الإصدار ما يُحوَّل بشكل سليم. تحقق من إصدارك بالأمر pandoc --version.

شرح أمر التحويل الأساسي

الأمر الأدنى يعمل، لكن في المشاريع الحقيقية تقوم هذه الخيارات بمعظم العمل الشاق:

pandoc report.md -f gfm -o report.docx --toc
الخيارما يفعلهمتى تحتاجه
-f gfmيقرأ GitHub Flavored Markdownيستخدم ملفك جداول أو قوائم مهام أو نصًا مشطوبًا
-o report.docxيحدد ملف الإخراج؛ ويُستنتج التنسيق من الامتداددائمًا
--tocيُدرج جدول محتويات مبنيًا من عناوينكالمستندات الأطول من بضع صفحات
--reference-docيطبّق الخطوط والأنماط من ملف DOCX قالبالهوية المؤسسية (القسم التالي)

لماذا -f gfm بدلًا من لهجة Markdown الافتراضية في pandoc؟ لأن Markdown الذي يكتبه معظم الناس اليوم — في ملفات README على GitHub، وفي مخرجات ChatGPT وClaude، وفي تصديرات Notion — هو GFM. اللهجة الافتراضية في pandoc أكثر أكاديمية: تفعّل الحواشي السفلية والاستشهادات لكنها تفسّر بعض التراكيب بشكل مختلف. إن جاء مصدرك من مساعد ذكاء اصطناعي أو أداة مطورين، فإن gfm هو القارئ الأكثر أمانًا.

ملاحظة حول المعادلات: مع قارئ GFM تعمل صيغ $...$ و$$...$$ مباشرة في إصدارات pandoc الحالية، وتصبح المعادلات معادلات Word أصلية لا صورًا. سنفصّل ذلك أدناه، لأنه أكثر سلوك في pandoc يُنقل عنه خطأ على الويب.

تنسيق المخرجات باستخدام مستند مرجعي (reference-doc)

يفتح ملف DOCX الناتج عن pandoc في Word بتنسيق عام. إذا كان على المستند مطابقة قالب شركتك، فلن تصلح ذلك بالخيارات — بل تستخدم مستندًا مرجعيًا (reference document).

سير عمل reference-doc في Pandoc: ملف Markdown مع قالب أنماط Word ينتجان ملف DOCX منسقًا

يتكون سير العمل من ثلاث خطوات:

  1. أنشئ القالب الافتراضي لـ pandoc كنقطة بداية:

    pandoc -o custom-reference.docx --print-default-data-file reference.docx
    
  2. افتح custom-reference.docx في Word وحرّر الأنماط — العنوان 1، والنص العادي، والجدول، وكتل التعليمات البرمجية. يُتجاهل المحتوى النصي لهذا الملف؛ فقط الأنماط وإعداد الصفحة يُنقلان.

  3. حوّل مع تطبيق القالب:

    pandoc report.md -f gfm --reference-doc=custom-reference.docx -o report.docx
    

يوثّق دليل pandoc أسماء الأنماط المعتمدة. النموذج الذهني الذي يوضح الفكرة: أنت لا تنسّق مستندًا بعينه، بل تعلّم pandoc أنماط Word الخاصة بمؤسستك مرة واحدة، ثم تعيد استخدامها في كل تحويل.

التحويل الدفعي لعدة ملفات

هنا يتفوق سطر الأوامر فعليًا على أي أداة ويب. لتحويل مجلد كامل:

Bash (macOS/Linux):

for f in docs/*.md; do
  pandoc "$f" -f gfm -o "${f%.md}.docx"
done

PowerShell (Windows):

Get-ChildItem docs -Filter *.md | ForEach-Object {
  pandoc $_.FullName -f gfm -o ($_.FullName -replace '\.md$', '.docx')
}

ولأن pandoc اعتمادية واحدة، فهو يندمج في CI دون تعقيد. هذه خطوة GitHub Actions تعيد توليد نسخ Word من وثائقك عند كل دفعة (push):

- uses: pandoc/actions/setup@v1
- run: |
    for f in docs/*.md; do
      pandoc "$f" -f gfm --reference-doc=brand.docx -o "out/$(basename "${f%.md}").docx"
    done

تستخدم الفرق هذا النمط للاحتفاظ بنسخة Word موازية لويكي Markdown لأغراض مراجعات الامتثال أو تسليمات العملاء. إذا حوّلت المجموعة نفسها من الملفات أكثر من مرتين، فإن السكربت يسدد كلفته فورًا.

أين تتوقف قدرات Pandoc (اختبار على 3.7)

هذا هو الاختبار الذي أجريناه: ملف Markdown واحد يحتوي جدولًا، وقائمة مهام، ومعادلة ضمن السطر ($E = mc^2$)، ومعادلة معروضة متعددة الأسطر، ومخطط تدفق Mermaid، وكتلة تنبيه GFM. حُوّل بالإصدار pandoc 3.7.0.2، ثم فُك ضغط ملف .docx وقُرئ word/document.xml مباشرة. ثلاث نتائج.

المعادلات الرياضية: أفضل مما قيل لك

يحتوي XML المستند على كتلتي <m:oMath> — واحدة لكل معادلة. هذا هو OMML، تنسيق المعادلات الأصلي في Word. كلتا المعادلتين قابلتان للتحرير بالكامل في محرر معادلات Word، وتُعرضان بجودة طباعية، وتصمدان عند النسخ واللصق إلى مستندات Office أخرى.

هذا يناقض ادعاءً لا يزال موجودًا في الدروس القديمة (وحتى وقت قريب في أحد أدلتنا نحن): أن معادلات LaTeX المعقدة تُحوَّل إلى صور نقطية. في إصدارات pandoc الحالية لا يحدث ذلك. رياضيات LaTeX القياسية — الكسور، ورموز الجمع، والحروف اليونانية، والحروف السفلية — تتحول إلى معادلات أصلية دون أي إعداد إضافي.

الحد الصادق: يتعامل pandoc مع صيغة رياضيات LaTeX القياسية، لا مع LaTeX الاعتباطي. وحدات الماكرو المخصصة عبر \newcommand، وأشكال TikZ، والبيئات المعتمدة على حزم لن تعبر. وإذا كانت توزيعتك قد شحنت pandoc 2.x فالسلوك يختلف — تحقق من pandoc --version قبل لوم الأداة.

Mermaid هو نقطة الانكسار الحقيقية

مخطط Mermaid مُصدَّر كنص عادي بواسطة pandoc مقارنة بعرضه الصحيح

لم يتحول مخطط تدفق Mermaid إلى مخطط. وصل كنص حرفي بخط أحادي المسافة — أي المصدر الخام flowchart LR بأسلوب كتلة تعليمات برمجية. ويُظهر XML المستند صفر كائنات رسومية.

أهمية هذا اليوم أكبر مما كانت قبل خمس سنوات، لأن مساعدي الذكاء الاصطناعي مولعون بـ Mermaid. اطلب من ChatGPT أو Claude نظرة عامة معمارية، وستجد في الرد على الأرجح كتلة تعليمات برمجية بلغة mermaid. حوّل تلك المحادثة بواسطة pandoc وسيحتوي مستند Word على ما يبدو أنه شيفرة مصدرية متبقية. إذا كان هذا هو سير عملك، فإن دليلنا حول تصدير مخرجات ChatGPT إلى Word يغطي التفاصيل الخاصة بالذكاء الاصطناعي.

يوجد حل على سطر الأوامر: mermaid-filter، وهو مرشّح pandoc يعرض المخططات أثناء التحويل. إنه يعمل، لكن قيّم كلفة الإعداد بصدق — فهو حزمة npm تسحب متصفح Chromium بلا واجهة عبر Puppeteer، ويصبح استدعاء pandoc على الشكل pandoc -F mermaid-filter .... لخط أنابيب توثيق يحوّل المخططات يوميًا، تتوزع تلك الكلفة وتستحق؛ أما لتقرير واحد يُسلَّم بعد الظهر، فهي انعطافة مطوّلة.

خسائر دقة صغيرة عند الأطراف

نتيجتان أهدأ من الاختبار نفسه. كتل تنبيه GFM (‏> [!NOTE]) تحتفظ بنصها لكنها تفقد معالجة التنبيه الملونة — تظهر في Word كاقتباسات عادية. وتصل عناصر قوائم المهام كنص قائمة عادي بدلًا من عناصر تحكم خانات اختيار Word. لا يكسر أي منهما المستند، لكن كليهما يسطّح تنسيقًا اختاره الكاتب على الأرجح عمدًا. إذا أخفق تحويلك بطرق أخرى، فقد جمعنا أوضاع الفشل الشائعة في مشكلات تحويل Markdown الشائعة.

سطر الأوامر أم أداة التحويل عبر الإنترنت؟

بعد ذلك الاختبار، هذا هو إطار القرار الذي نعتمده فعلًا:

وضعكالأداة الأنسبالسبب
تحويل ملفات كثيرة، أو الملفات نفسها بشكل متكررPandocالسكربتات وCI تجعل التحويل المتكرر بلا كلفة
تحتاج تطبيق أنماط Word المؤسسية تلقائيًاPandoc--reference-doc لا يُضاهى في هذا
بيئة دون اتصال أو معزولة عن الشبكةPandocملف تنفيذي واحد، دون شبكة
مستند واحد وموعد تسليم قريبأداة التحويل عبر الإنترنتلا تثبيت ولا أسئلة عن الإصدارات
المستند يحتوي مخططات Mermaidأداة التحويل عبر الإنترنتتُعرض المخططات كمخططات دون سلسلة مرشّحات
جهاز عمل مقيّد لا يسمح بتثبيت البرامجأداة التحويل عبر الإنترنتتعمل في المتصفح
معادلات LaTeX كثيفةكلاهماpandoc الحديث يجيد المعادلات القياسية؛ ونحن كذلك

كلا الطريقين مشروع. يستحق pandoc مكانه في أي خط أنابيب متكرر. أما حالة «أحتاج هذا كملف .docx خلال خمس دقائق» — خصوصًا عند وجود Mermaid — فإن محوّل Markdown إلى Word مجانيًا عبر الإنترنت يمنحك مستندًا نظيفًا بالمعادلات والمخططات المعروضة معًا، دون تثبيت أي شيء.

الأسئلة الشائعة

س: هل يمكنني تحويل Markdown إلى Word دون تثبيت أي شيء؟
ج: ليس من سطر الأوامر — يتطلب pandoc تثبيتًا. إن لم يكن تثبيت البرامج خيارًا، فالمحوّلات العاملة في المتصفح هي الطريق العملي؛ يجري التحويل على الخادم وتنزّل ملف .docx الجاهز.

س: هل يحوّل pandoc معادلات LaTeX إلى معادلات Word حقيقية؟
ج: نعم. في اختبارنا مع pandoc 3.7.0.2 أصبحت المعادلات ضمن السطر والمعروضة على حد سواء معادلات OMML أصلية قابلة للتحرير في محرر معادلات Word. الاستثناءات هي إصدارات pandoc القديمة جدًا ووحدات ماكرو LaTeX المخصصة.

س: لماذا يظهر مخطط Mermaid كتعليمات برمجية في Word؟
ج: يتعامل pandoc مع كتلة mermaid البرمجية كتعليمات برمجية حرفية — فهو لا يعرض المخططات. إما أن تضيف mermaid-filter إلى خط الأنابيب (يتطلب Node.js) أو تستخدم محوّلًا يدعم عرض Mermaid مدمجًا.

س: كيف أحافظ على خطوط شركتي وأنماط العناوين؟
ج: استخدم --reference-doc=template.docx. حرّر أنماط ذلك القالب مرة واحدة في Word؛ وسيطبّقها pandoc في كل تحويل. يُتجاهل محتوى القالب، وتُنقل الأنماط فقط.

س: ما الفرق بين -f markdown و-f gfm؟
ج: ‏markdown هي لهجة pandoc الموسّعة الخاصة (حواشٍ سفلية واستشهادات)؛ بينما تطابق gfm ما تنتجه GitHub وChatGPT ومعظم الأدوات الحديثة — جداول وقوائم مهام ونص مشطوب. مع Markdown المولّد بالذكاء الاصطناعي أو المكتوب من المطورين، يمنحك gfm مفاجآت أقل.

س: هل يستطيع pandoc تحويل Word إلى Markdown في الاتجاه العكسي؟
ج: نعم — اعكس المعاملات: pandoc report.docx -o report.md. تفقد الرحلة ذهابًا وإيابًا بعض التنسيقات الخاصة بـ Word (مربعات النص والتعليقات)، فتعامل معها كترحيل محتوى لا كدورة بلا فقد.

موارد ذات صلة

الخاتمة

يظل pandoc الإجابة الصحيحة عن سؤال «تحويل Markdown إلى Word من سطر الأوامر» — أمر واحد لملف واحد، وسكربت قصير لمجلد، و--reference-doc لأنماط المؤسسة. أظهر اختبارنا أن دعمه للمعادلات أفضل من سمعته: يتحول LaTeX القياسي إلى معادلات Word حقيقية قابلة للتحرير.

فجوته الحقيقية بصرية: تصل مخططات Mermaid كشيفرة مصدرية ما لم تركّب سلسلة مرشّحات قائمة على Node. فاختر بحسب سير عملك. خط أنابيب متكرر لمستندات نصية: اكتبه سكربتًا بـ pandoc. مستند واحد فيه مخططات وموعد تسليم: حوّله في المتصفح واحتفظ بالمعادلات ومخططات التدفق سليمة.

المراجع

  • Pandoc User's Guide — الدليل الرسمي: القارئات والكاتبات و--reference-doc ومعالجة المعادلات
  • Installing pandoc — المثبّتات الرسمية لكل المنصات
  • mermaid-filter — مرشّح pandoc مجتمعي لعرض مخططات Mermaid
  • pandoc/actions — إجراءات GitHub Actions الرسمية لاستخدام pandoc في CI
#Pandoc#سطر الأوامر#Markdown#تصدير Word#DOCX#الأتمتة

هل وجدت هذه الأداة مفيدة؟ ساعدنا في نشر الكلمة.