Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
---
category: general
date: 2026-08-12
description: تحويل HTML إلى Markdown باستخدام بايثون. تعلم سير عمل سطر الأوامر لتحويل
صفحة الويب إلى Markdown وأتمتة التوثيق.
draft: false
images:
- PLACEHOLDER_URL/og-image.png
keywords:
- convert html to markdown
- convert web page to markdown
- convert html to markdown command line
language: ar
lastmod: 2026-08-12
og_description: تحويل HTML إلى Markdown باستخدام بايثون. يوضح لك هذا الدليل حلاً سطر
الأوامر لتحويل صفحة الويب إلى Markdown بسرعة وموثوقية.
og_image_alt: Screenshot of Python script that converts HTML to Markdown
og_title: تحويل HTML إلى Markdown باستخدام Python – دليل خطوة بخطوة
schemas:
- author: GroupDocs
dateModified: '2026-08-12'
description: Convert HTML to Markdown using Python. Learn a command‑line workflow
to convert web page to Markdown and automate documentation.
headline: Convert HTML to Markdown with Python – complete programming guide
type: TechArticle
tags:
- HTML
- Markdown
- Python
- CLI
title: تحويل HTML إلى Markdown باستخدام بايثون – دليل برمجي كامل
url: /ar/python/general/convert-html-to-markdown-with-python-complete-programming-gu/
---

{{< blocks/products/pf/main-wrap-class >}}
{{< blocks/products/pf/main-container >}}
{{< blocks/products/pf/tutorial-page-section >}}

# تحويل HTML إلى Markdown باستخدام Python – دليل برمجة كامل

إذا كنت بحاجة إلى **convert HTML to Markdown**، يوضح لك هذا الدليل حلاً جاهزًا للتنفيذ. سترى كيف يحول برنامج Python قصير أي ملف HTML إلى Markdown نظيف، بنكهة Git، وكيف يمكنك استدعاء نفس المنطق من سطر الأوامر.

تحويل صفحات الويب إلى Markdown خطوة شائعة عند بناء مواقع توثيق ثابتة أو إعداد المحتوى لمستودعات مُتحكم فيها بالإصدارات. بنهاية هذا الدليل ستحصل على أداة سطر أوامر قابلة لإعادة الاستخدام تتعامل مع ترميز HTML، وتحافظ على الروابط، وتلتزم باتفاقيات Markdown بنكهة Git.

## المتطلبات المسبقة

* Python 3.9 أو أحدث مثبت على نظامك.
* حزمة Python `groupdocs-conversion` (أو أي مكتبة توفر `HTMLDocument`، `MarkdownSaveOptions`، و `Converter`). قم بتثبيتها باستخدام:

```bash
pip install groupdocs-conversion
```

* مجلد يحتوي على ملف `input.html` المصدر الذي تريد معالجته.

الأقسام التالية تتناول كل خطوة، وتشرح سبب أهميتها، وتزودك بالكود الدقيق الذي تحتاجه.

## الخطوة 1: إعداد البيئة

إنشاء بيئة افتراضية معزولة يمنع تعارضات الاعتماديات ويجعل أداة سطر الأوامر قابلة للنقل.

```bash
# Create a virtual environment in the project folder
python -m venv .venv

# Activate the environment (Windows)
.\.venv\Scripts\activate

# Activate the environment (macOS / Linux)
source .venv/bin/activate

# Install the required library
pip install groupdocs-conversion
```

*لماذا هذه الخطوة؟*
بيئة افتراضية تعزل حزمة `groupdocs-conversion` عن المشاريع الأخرى، مما يضمن أن أداة `convert html to markdown command line` تعمل بالإصدارات الدقيقة التي اختبرتها.

## الخطوة 2: كتابة سكريبت التحويل

أنشئ ملفًا باسم `html_to_md.py` والصق الكود التالي. يقبل السكريبت ثلاثة معطيات: مسار ملف HTML الإدخالي، مسار ملف Markdown الناتج، وعلامة اختيارية لتحديد مُنسق بنكهة Git.

```python
"""html_to_md.py – Convert HTML to Markdown from the command line.

Usage:
python html_to_md.py INPUT_HTML OUTPUT_MD [--git]

Arguments:
INPUT_HTML Path to the source HTML file.
OUTPUT_MD Desired path for the generated Markdown file.
--git Optional flag to use Git‑flavored Markdown (default is plain).

The script uses GroupDocs.Conversion to read the HTML document,
configure Markdown save options, and write the result to disk.
"""

import argparse
import sys
from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter


def parse_arguments() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Convert HTML to Markdown.")
parser.add_argument("input_html", help="Path to the HTML file to convert.")
parser.add_argument("output_md", help="Path where the Markdown file will be saved.")
parser.add_argument(
"--git",
action="store_true",
help="Use Git‑flavored Markdown (adds tables, task lists, etc.).",
)
return parser.parse_args()


def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None:
"""Perform the conversion and write the Markdown file."""
# Load the HTML document
html_doc = HTMLDocument(input_path)

# Configure save options
md_opts = MarkdownSaveOptions()
if use_git:
md_opts.formatter = MarkdownSaveOptions.Formatter.GIT

# Execute the conversion
Converter.convert_html(html_doc, md_opts, output_path)


def main() -> None:
args = parse_arguments()
try:
convert_html_to_markdown(args.input_html, args.output_md, args.git)
print(f"✅ Conversion succeeded: '{args.output_md}'")
except Exception as exc:
print(f"❌ Conversion failed: {exc}", file=sys.stderr)
sys.exit(1)


if __name__ == "__main__":
main()
```

### شرح السكريبت

| القسم | الغرض |
|---------|---------|
| **Argument parsing** | يُمكّن نمط الاستخدام **convert html to markdown command line**. |
| **HTMLDocument** | يقوم بتحميل ملف المصدر؛ المكتبة تُجرد ترميز الأحرف وتحليل DOM. |
| **MarkdownSaveOptions** | يسمح لك بالتبديل بين Markdown عادي وMarkdown بنكهة Git (علامة `--git`). |
| **Converter.convert_html** | يقوم بالمعالجة الثقيلة – يتجول في شجرة HTML، يترجم الوسوم، ويكتب ملف الإخراج. |
| **Error handling** | يوفر رسالة نجاح/فشل واضحة، وهو أمر أساسي لأنابيب CI. |

## الخطوة 3: تشغيل التحويل من سطر الأوامر

بعد حفظ السكريبت، يمكنك تحويل أي ملف HTML بأمر واحد:

```bash
# Basic conversion (plain Markdown)
python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md

# Git‑flavored conversion (adds tables, task lists, etc.)
python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git
```

**المخرجات المتوقعة**

```
✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md'
```

افتح `output.md` في محرر نصوص؛ سترى العناوين والقوائم والروابط مُعروضة بصيغة Markdown نظيفة. لأننا استخدمنا مُنسق Git، تظهر الجداول بفواصل الأنابيب (`|`)، وتستخدم قوائم المهام الصيغة `- [ ]`، والتي يعرضها GitHub وGitLab بشكل أصلي.

## الخطوة 4: دمج الأداة في خطوط الأتمتة

إذا كنت تدير التوثيق في مستودع، يمكنك إضافة خطوة التحويل إلى سير عمل CI. أدناه مثال لوظيفة GitHub Actions تُنفّذ عند كل دفعة (push):

```yaml
name: Convert HTML docs to Markdown

on:
push:
paths:
- 'docs/**/*.html'

jobs:
convert:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install dependencies
run: pip install groupdocs-conversion
- name: Convert HTML to Markdown
run: |
python html_to_md.py docs/input.html docs/output.md --git
- name: Commit converted files
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "Auto‑convert HTML to Markdown"
```

*لماذا هذا مهم* – أتمتة خطوة **convert web page to markdown** تضمن بقاء توثيقك متزامنًا مع ملفات HTML المصدر دون جهد يدوي.

## الحالات الخاصة ونصائح أفضل الممارسات

* **مشكلات الترميز** – إذا كان HTML الخاص بك يحتوي على أحرف غير UTF‑8، مرّر ترميزًا صريحًا عند إنشاء `HTMLDocument` (مثال: `HTMLDocument(input_path, encoding='utf-8')`).
* **ملفات كبيرة** – بالنسبة لملفات HTML التي تتجاوز 50 ميغابايت، فكر في تحويلها عبر التدفق لتجنب ارتفاع الذاكرة. المكتبة توفر طريقة `convert_html_stream` لهذا السيناريو.
* **معالجة CSS مخصصة** – يقوم المحول بإزالة سمات النمط بشكل افتراضي. إذا كنت بحاجة إلى الحفاظ على تنسيق معين، فعّل `md_opts.preserveFormatting = True`.
* **اختصار سطر الأوامر** – أنشئ سكريبت غلاف صغير (`html2md`) يمرّر المعطيات إلى `html_to_md.py`. ضعّه في `$HOME/.local/bin` وأضفه إلى `PATH` لتجربة **convert html to markdown command line** أقصر.

## الأسئلة المتكررة

**هل يعمل هذا على Windows و macOS و Linux؟**
نعم. يعتمد السكريبت فقط على حزمة `groupdocs-conversion` المتعددة المنصات ومكتبات Python القياسية، لذا يعمل دون تغيير على الأنظمة الثلاثة.

**هل يمكنني تحويل صفحة ويب عن بُعد مباشرة؟**
يمكنك جلب الصفحة باستخدام `requests` وإعطاء سلسلة HTML إلى `HTMLDocument`:

```python
import requests
from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter

response = requests.get("https://example.com")
html_doc = HTMLDocument.from_string(response.text)
# Continue with the same md_opts and Converter.convert_html call
```

**ماذا لو كنت أحتاج فقط إلى تحويل HTML → Markdown بنكهة GitHub؟**
ما عليك سوى دائمًا تمرير العلامة `--git`؛ فإن المُنسق ينتج مخرجات متوافقة مع GitHub وGitLab وBitbucket.

## الخلاصة

أصبح لديك الآن حلًا قويًا لـ **convert HTML to Markdown** يعمل من سكريبت Python ومن سطر الأوامر. غطّى الدليل إعداد البيئة، الكود الكامل، استخدام سطر الأوامر، دمج CI، ومعالجة الحالات الخاصة العملية.

بعد ذلك، قد تستكشف **convert markdown to HTML**، وتجرب Pandoc للحصول على خيارات تحويل متقدمة، أو تضيف مولد front‑matter لتضمين البيانات الوصفية مباشرةً في ملفات Markdown. كل هذه الإضافات تبني على المفاهيم الأساسية التي أتممتها للتو.

تحويل سعيد!

## ما الذي يجب أن تتعلمه لاحقًا؟

الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مصدر يتضمن أمثلة كود كاملة تعمل مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك.

- [تحويل HTML إلى Markdown باستخدام Aspose.HTML للغة Java](/html/english/java/saving-html-documents/convert-html-to-markdown/)
- [تحويل HTML إلى Markdown في .NET باستخدام Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/)

{{< /blocks/products/pf/tutorial-page-section >}}
{{< /blocks/products/pf/main-container >}}
{{< /blocks/products/pf/main-wrap-class >}}
{{< blocks/products/products-backtop-button >}}
Loading