Communitygithub.com

David-Li0406/meta-skill-evloving

Convertissez des fichiers et documents bureautiques en Markdown. Prend en charge PDF, DOCX, PPTX, XLSX, images (avec OCR), audio (avec transcription), HTML, CSV, JSON, XML, ZIP, URLs YouTube, EPUBs et plus encore.

Qu'est-ce que meta-skill-evloving ?

MarkItDown est un outil Python développé par Microsoft pour convertir divers formats de fichiers en Markdown, un format particulièrement efficace pour les grands modèles de langage (LLM). Ce skill permet de transformer des documents complexes — PDF, fichiers bureautiques, images avec OCR, audios avec transcription, vidéos YouTube, EPUBs, etc. — en un texte structuré et facile à traiter par une IA. Il offre des fonctionnalités avancées comme la description d'images assistée par IA via OpenRouter, l'intégration avec Azure Document Intelligence pour les PDF complexes, et un système de plugins extensible. Le skill est conçu pour les développeurs et les scientifiques souhaitant préparer leurs documents pour une analyse automatisée, tout en encourageant l'ajout de schémas scientifiques pour améliorer la communication visuelle. Il est compatible avec les environnements Python, CLI et Docker, et peut être utilisé aussi bien pour des conversions ponctuelles que par lots.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/David-Li0406/meta-skill-evloving/tree/HEAD/AgentSkillOS/data/skill_seeds/markitdown

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

MarkItDown – Conversion de fichiers en Markdown

Présentation

MarkItDown est un outil Python développé par Microsoft pour convertir divers formats de fichiers en Markdown. Il est particulièrement utile pour convertir des documents dans un format texte adapté aux LLM (grands modèles de langage), car le Markdown est efficace en termes de tokens et bien compris par les modèles de langage modernes.

Avantages clés :

  • Convertir des documents en Markdown propre et structuré
  • Format efficace en tokens pour le traitement par LLM
  • Prend en charge plus de 15 formats de fichiers
  • Descriptions d'images améliorées par IA (optionnel)
  • OCR pour les images et documents scannés
  • Transcription de la parole pour les fichiers audio

Amélioration visuelle avec des schémas scientifiques

Lors de la création de documents avec ce skill, pensez toujours à ajouter des diagrammes et schémas scientifiques pour améliorer la communication visuelle.

Si votre document ne contient pas déjà de schémas ou diagrammes :

  • Utilisez le skill scientific-schematics pour générer des diagrammes de qualité publication par IA
  • Décrivez simplement votre diagramme souhaité en langage naturel
  • Nano Banana Pro générera, révisera et affinera automatiquement le schéma

Pour les nouveaux documents : Les schémas scientifiques doivent être générés par défaut pour représenter visuellement les concepts clés, les workflows, les architectures ou les relations décrites dans le texte.

Comment générer des schémas :

python scripts/generate_schematic.py "description de votre diagramme" -o figures/output.png

L'IA effectuera automatiquement :

  • La création d'images de qualité publication avec un formatage approprié
  • La révision et l'affinage en plusieurs itérations
  • L'accessibilité (adapté aux daltoniens, contraste élevé)
  • La sauvegarde des sorties dans le répertoire figures/

Quand ajouter des schémas :

  • Diagrammes de flux de conversion de documents
  • Illustrations d'architecture de formats de fichiers
  • Diagrammes de pipeline de traitement OCR
  • Illustrations de flux d'intégration
  • Diagrammes d'architecture système
  • Diagrammes de flux de données
  • Tout concept complexe bénéficiant d'une visualisation

Pour des conseils détaillés sur la création de schémas, référez-vous à la documentation du skill scientific-schematics.


Formats pris en charge

FormatDescriptionNotes
PDFPortable Document FormatExtraction complète du texte
DOCXMicrosoft WordTableaux, mise en forme conservée
PPTXPowerPointDiapositives avec notes
XLSXClasseurs ExcelTableaux et données
ImagesJPEG, PNG, GIF, WebPMétadonnées EXIF + OCR
AudioWAV, MP3Métadonnées + transcription
HTMLPages webConversion propre
CSVValeurs séparées par des virgulesFormat tableau
JSONDonnées JSONReprésentation structurée
XMLDocuments XMLFormat structuré
ZIPFichiers d'archiveParcourt le contenu
EPUBLivres numériquesExtraction complète du texte
YouTubeURLs vidéoRécupération des transcriptions

Démarrage rapide

Installation

# Installation avec toutes les fonctionnalités
pip install 'markitdown[all]'

# Ou à partir des sources
git clone https://github.com/microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'

Utilisation en ligne de commande

# Conversion de base
markitdown document.pdf > output.md

# Spécifier le fichier de sortie
markitdown document.pdf -o output.md

# Rediriger le contenu
cat document.pdf | markitdown > output.md

# Activer les plugins
markitdown --list-plugins  # Lister les plugins disponibles
markitdown --use-plugins document.pdf -o output.md

API Python

from markitdown import MarkItDown

# Utilisation de base
md = MarkItDown()
result = md.convert("document.pdf")
print(result.text_content)

# Conversion à partir d'un flux
with open("document.pdf", "rb") as f:
    result = md.convert_stream(f, file_extension=".pdf")
    print(result.text_content)

Fonctionnalités avancées

1. Descriptions d'images améliorées par IA

Utilisez les LLM via OpenRouter pour générer des descriptions d'images détaillées (pour les fichiers PPTX et images) :

from markitdown import MarkItDown
from openai import OpenAI

# Initialiser le client OpenRouter (API compatible OpenAI)
client = OpenAI(
    api_key="votre-clé-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",  # recommandé pour la vision scientifique
    llm_prompt="Décrivez cette image en détail pour une documentation scientifique"
)

result = md.convert("presentation.pptx")
print(result.text_content)

2. Azure Document Intelligence

Pour une conversion PDF améliorée avec Microsoft Document Intelligence :

# Ligne de commande
markitdown document.pdf -o output.md -d -e "<endpoint_document_intelligence>"
# API Python
from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="<endpoint_document_intelligence>")
result = md.convert("document_complexe.pdf")
print(result.text_content)

3. Système de plugins

MarkItDown prend en charge les plugins tiers pour étendre les fonctionnalités :

# Lister les plugins installés
markitdown --list-plugins

# Activer les plugins
markitdown --use-plugins file.pdf -o output.md

Trouvez des plugins sur GitHub avec le hashtag : #markitdown-plugin

Dépendances optionnelles

Contrôlez les formats de fichiers que vous prenez en charge :

# Installer des formats spécifiques
pip install 'markitdown[pdf, docx, pptx]'

# Toutes les options disponibles :
# [all]                  - Toutes les dépendances optionnelles
# [pptx]                 - Fichiers PowerPoint
# [docx]                 - Documents Word
# [xlsx]                 - Classeurs Excel
# [xls]                  - Anciens fichiers Excel
# [pdf]                  - Documents PDF
# [outlook]              - Messages Outlook
# [az-doc-intel]         - Azure Document Intelligence
# [audio-transcription]  - Transcription WAV et MP3
# [youtube-transcription] - Transcription vidéo YouTube

Cas d'utilisation courants

1. Convertir des articles scientifiques en Markdown

from markitdown import MarkItDown

md = MarkItDown()

# Convertir un article PDF
result = md.convert("article_recherche.pdf")
with open("article.md", "w") as f:
    f.write(result.text_content)

2. Extraire des données d'Excel pour analyse

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("donnees.xlsx")

# Le résultat sera au format tableau Markdown
print(result.text_content)

3. Traiter plusieurs documents

from markitdown import MarkItDown
import os
from pathlib import Path

md = MarkItDown()

# Traiter tous les PDF d'un répertoire
pdf_dir = Path("articles/")
output_dir = Path("sortie_markdown/")
output_dir.mkdir(exist_ok=True)

for pdf_file in pdf_dir.glob("*.pdf"):
    result = md.convert(str(pdf_file))
    output_file = output_dir / f"{pdf_file.stem}.md"
    output_file.write_text(result.text_content)
    print(f"Converti : {pdf_file.name}")

4. Convertir PowerPoint avec descriptions IA

from markitdown import MarkItDown
from openai import OpenAI

# Utiliser OpenRouter pour accéder à plusieurs modèles IA
client = OpenAI(
    api_key="votre-clé-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",  # recommandé pour les présentations
    llm_prompt="Décrivez cette image de diapositive en détail, en vous concentrant sur les éléments visuels et les données clés"
)

result = md.convert("presentation.pptx")
with open("presentation.md", "w") as f:
    f.write(result.text_content)

5. Conversion par lots avec différents formats

from markitdown import MarkItDown
from pathlib import Path

md = MarkItDown()

# Fichiers à convertir
files = [
    "document.pdf",
    "tableur.xlsx",
    "presentation.pptx",
    "notes.docx"
]

for file in files:
    try:
        result = md.convert(file)
        output = Path(file).stem + ".md"
        with open(output, "w") as f:
            f.write(result.text_content)
        print(f"✓ Converti {file}")
    except Exception as e:
        print(f"✗ Erreur lors de la conversion de {file} : {e}")

6. Extraire la transcription d'une vidéo YouTube

from markitdown import MarkItDown

md = MarkItDown()

# Convertir une vidéo YouTube en transcription
result = md.convert("https://www.youtube.com/watch?v=ID_VIDEO")
print(result.text_content)

Utilisation avec Docker

# Construire l'image
docker build -t markitdown:latest .

# Lancer la conversion
docker run --rm -i markitdown:latest < ~/document.pdf > output.md

Bonnes pratiques

1. Choisir la bonne méthode de conversion

  • Documents simples : Utiliser MarkItDown() de base
  • PDF complexes : Utiliser Azure Document Intelligence
  • Contenu visuel : Activer les descriptions d'images par IA
  • Documents scannés : S'assurer que les dépendances OCR sont installées

2. Gérer les erreurs avec élégance

from markitdown import MarkItDown

md = MarkItDown()

try:
    result = md.convert("document.pdf")
    print(result.text_content)
except FileNotFoundError:
    print("Fichier introuvable")
except Exception as e:
    print(f"Erreur de conversion : {e}")

3. Traiter efficacement les gros fichiers

from markitdown import MarkItDown

md = MarkItDown()

# Pour les gros fichiers, utiliser le streaming
with open("gros_fichier.pdf", "rb") as f:
    result = md.convert_stream(f, file_extension=".pdf")
    
    # Traiter par morceaux ou sauvegarder directement
    with open("output.md", "w") as out:
        out.write(result.text_content)

4. Optimiser l'efficacité en tokens

La sortie Markdown est déjà efficace en tokens, mais vous pouvez :

  • Supprimer les espaces blancs excessifs
  • Consolider les sections similaires
  • Supprimer les métadonnées si nécessaire
from markitdown import MarkItDown
import re

md = MarkItDown()
result = md.convert("document.pdf")

# Nettoyer les espaces blancs supplémentaires
clean_text = re.sub(r'\n{3,}', '\n\n', result.text_content)
clean_text = clean_text.strip()

print(clean_text)

Intégration avec les workflows scientifiques

Convertir la littérature pour révision

from markitdown import MarkItDown
from pathlib import Path

md = MarkItDown()

# Convertir tous les articles du dossier littérature
articles_dir = Path("litterature/pdfs")
output_dir = Path("litterature/markdown")
output_dir.mkdir(exist_ok=True)

for article in articles_dir.glob("*.pdf"):
    result = md.convert(str(article))
    
    # Sauvegarder avec métadonnées
    output_file = output_dir / f"{article.stem}.md"
    content = f"# {article.stem}\n\n"
    content += f"**Source** : {article.name}\n\n"
    content += "---\n\n"
    content += result.text_content
    
    output_file.write_text(content)

# Pour une conversion améliorée par IA avec figures
from openai import OpenAI

client = OpenAI(
    api_key="votre-clé-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md_ai = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",
    llm_prompt="Décrivez les figures scientifiques avec une précision technique"
)

Extraire des tableaux pour analyse

from markitdown import MarkItDown
import re

md = MarkItDown()
result = md.convert("tableaux_donnees.xlsx")

# Les tableaux Markdown peuvent être analysés ou utilisés directement
print(result.text_content)

Dépannage

Problèmes courants

  1. Dépendances manquantes : Installer les packages spécifiques aux fonctionnalités

    pip install 'markitdown[pdf]'  # Pour le support PDF
    
  2. Erreurs de fichier binaire : S'assurer que les fichiers sont ouverts en mode binaire

    with open("fichier.pdf", "rb") as f:  # Notez le "rb"
        result = md.convert_stream(f, file_extension=".pdf")
    
  3. OCR ne fonctionne pas : Installer Tesseract

    # macOS
    brew install tesseract
    
    # Ubuntu
    sudo apt-get install tesseract-ocr
    

Considérations de performance

  • Fichiers PDF : Les gros PDF peuvent prendre du temps ; envisagez des plages de pages si supportées
  • OCR d'images : Le traitement OCR est intensif en CPU
  • Transcription audio : Nécessite des ressources de calcul supplémentaires
  • Descriptions d'images par IA : Nécessite des appels API (des coûts peuvent s'appliquer)

Prochaines étapes

  • Consultez references/api_reference.md pour la documentation complète de l'API
  • Vérifiez references/file_formats.md pour les détails spécifiques aux formats
  • Examinez scripts/batch_convert.py pour des exemples d'automatisation
  • Explorez scripts/convert_with_ai.py pour les conversions améliorées par IA

Ressources

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

David-Li0406/meta-skill-evloving

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

David-Li0406/meta-skill-evloving

Create technical diagrams using Mermaid syntax for architecture, sequences, ERDs, flowcharts, and state machines. Use for visualizing system design, data flows, and processes. Triggers: diagram, mermaid, architecture diagram, sequence diagram, flowchart, ERD, entity relationship, state diagram, C4 model, component diagram, visualize, draw.

David-Li0406/meta-skill-evloving

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

David-Li0406/meta-skill-evloving

Complete color manipulation and green screen effects system. PROACTIVELY activate for: (1) Green screen/chromakey removal, (2) Color grading with LUTs, (3) Color correction (levels, curves, white balance), (4) Colorkey/color removal effects, (5) Hue/saturation manipulation, (6) Color space conversions (BT.709, BT.2020, HDR), (7) Color isolation effects, (8) Teal and orange look, (9) Vintage/film looks, (10) Color keying for transparency. Provides: chromakey and colorkey filters, LUT application (lut3d), curves and levels adjustment, color balance, selective color manipulation, color space handling, HDR tone mapping, professional color grading chains.

David-Li0406/meta-skill-evloving

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

David-Li0406/meta-skill-evloving

Build with OpenAI's stateless APIs - Chat Completions (GPT-5, GPT-4o), Embeddings, Images (DALL-E 3), Audio (Whisper + TTS), and Moderation. Includes Node.js SDK and fetch-based approaches for Cloudflare Workers. Use when: implementing chat completions with GPT-5/GPT-4o, streaming responses with SSE, using function calling/tools, creating structured outputs with JSON schemas, generating embeddings for RAG (text-embedding-3-small/large), generating images with DALL-E 3, editing images with GPT-Image-1, transcribing audio with Whisper, synthesizing speech with TTS (11 voices), moderating content (11 safety categories), or troubleshooting rate limits (429), invalid API keys (401), function calling failures, streaming parse errors, embeddings dimension mismatches, or token limit exceeded.

David-Li0406/meta-skill-evloving

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

David-Li0406/meta-skill-evloving

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

David-Li0406/meta-skill-evloving

Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas

David-Li0406/meta-skill-evloving

Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.

David-Li0406/meta-skill-evloving

Best practices for Remotion - Video creation in React

David-Li0406/meta-skill-evloving

Provides bidirectional translation (Chinese/English), grammar checking, and sentence polishing. Supports specific tense constraints, context-aware tone adjustment, and natural expression optimization. Outputs direct text without formatting.

David-Li0406/meta-skill-evloving

指导如何通过自定义注解(如@Unicom)标识Dubbo接口,利用BeanDefinitionRegistryPostProcessor在启动时扫描并动态注册ReferenceBean,实现RPC调用的封装。

David-Li0406/meta-skill-evloving

生成Python脚本,利用FFmpeg将图片序列按3x3布局合并,或将合并图拆分。要求使用subprocess模块执行命令,并支持用户交互式输入路径。

David-Li0406/meta-skill-evloving

SOP for extracting and analyzing promotional activity details, handling time formatting, location mapping, payment logic, and step-by-step process validation.

David-Li0406/meta-skill-evloving

Specializes in creating TikTok short video scripts using an anthropomorphic 'Chef' perspective to explain wildlife food chains and survival environments, utilizing real field footage.

David-Li0406/meta-skill-evloving

针对TikTok平台,以拟人化视角(如动物作为厨师)创作系列短视频脚本。重点介绍野生动物、食物链及生态环境,要求使用野外实拍素材,风格幽默且具有教育意义。

David-Li0406/meta-skill-evloving

Generates KWL (Know, Want to know, Learned) charts for educational videos, specifically BrainPOP, using simple 7th-grade language and short, concise bullet points.

David-Li0406/meta-skill-evloving

Develops DAX measures to calculate promo and regular volumes and generates a calculated table of dates excluding continuous promo date ranges, handling multiple periods and nulls.

David-Li0406/meta-skill-evloving

Tracks complex, multi-session work using the Beads issue tracker and dependency graphs, and provides persistent memory that survives conversation compaction. Use when work spans multiple sessions, has complex dependencies, or needs persistent context across compaction cycles. Trigger with phrases like "create task for", "what's ready to work on", "show task", "track this work", "what's blocking", or "update status".

Skills associés