[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6M0DDBMRQZ64TNMRTC4DYR3":3,"skill-same:01M6M0DDBMRQZ64TNMRTC4DYR3":120},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":33,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":13,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":67,"install":68,"resources":81},"01M6M0DDBMRQZ64TNMRTC4DYR3","markitdown",null,"Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.","endman100\u002Fskill-router-nexus","endman100","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F31997019?v=4","01M6KPDX17BYDWW4RRB0TNGGMX","01M6KPDX64Y2QBEWVFG5W5PWPF",0,"MIT","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002FSKILL.md",[17,22,25,28],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":29,"categoryName":30,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[5,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"convert","zip","more","youtube","files","images","html","edit","write","read","docx","markdown","Bash","Audio","ocr","documents","xlsx","pptx","PDF","2026-11-10 10:12:30",false,"---\nname: markitdown\ndescription: Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.\nallowed-tools: Read Write Edit Bash\nlicense: MIT license\nmetadata:\n    skill-author: K-Dense Inc.\n---\n\n# MarkItDown - File to Markdown Conversion\n\n## Overview\n\nMarkItDown is a Python tool developed by Microsoft for converting various file formats to Markdown. It's particularly useful for converting documents into LLM-friendly text format, as Markdown is token-efficient and well-understood by modern language models.\n\n**Key Benefits**:\n- Convert documents to clean, structured Markdown\n- Token-efficient format for LLM processing\n- Supports 15+ file formats\n- Optional AI-enhanced image descriptions\n- OCR for images and scanned documents\n- Speech transcription for audio files\n\n## Visual Enhancement with Scientific Schematics\n\n**When creating documents with this skill, always consider adding scientific diagrams and schematics to enhance visual communication.**\n\nIf your document does not already contain schematics or diagrams:\n- Use the **scientific-schematics** skill to generate AI-powered publication-quality diagrams\n- Simply describe your desired diagram in natural language\n- Nano Banana Pro will automatically generate, review, and refine the schematic\n\n**For new documents:** Scientific schematics should be generated by default to visually represent key concepts, workflows, architectures, or relationships described in the text.\n\n**How to generate schematics:**\n```bash\npython scripts\u002Fgenerate_schematic.py \"your diagram description\" -o figures\u002Foutput.png\n```\n\nThe AI will automatically:\n- Create publication-quality images with proper formatting\n- Review and refine through multiple iterations\n- Ensure accessibility (colorblind-friendly, high contrast)\n- Save outputs in the figures\u002F directory\n\n**When to add schematics:**\n- Document conversion workflow diagrams\n- File format architecture illustrations\n- OCR processing pipeline diagrams\n- Integration workflow visualizations\n- System architecture diagrams\n- Data flow diagrams\n- Any complex concept that benefits from visualization\n\nFor detailed guidance on creating schematics, refer to the scientific-schematics skill documentation.\n\n---\n\n## Supported Formats\n\n| Format | Description | Notes |\n|--------|-------------|-------|\n| **PDF** | Portable Document Format | Full text extraction |\n| **DOCX** | Microsoft Word | Tables, formatting preserved |\n| **PPTX** | PowerPoint | Slides with notes |\n| **XLSX** | Excel spreadsheets | Tables and data |\n| **Images** | JPEG, PNG, GIF, WebP | EXIF metadata + OCR |\n| **Audio** | WAV, MP3 | Metadata + transcription |\n| **HTML** | Web pages | Clean conversion |\n| **CSV** | Comma-separated values | Table format |\n| **JSON** | JSON data | Structured representation |\n| **XML** | XML documents | Structured format |\n| **ZIP** | Archive files | Iterates contents |\n| **EPUB** | E-books | Full text extraction |\n| **YouTube** | Video URLs | Fetch transcriptions |\n\n## Quick Start\n\n### Installation\n\n```bash\n# Install with all features\npip install 'markitdown[all]'\n\n# Or from source\ngit clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown.git\ncd markitdown\npip install -e 'packages\u002Fmarkitdown[all]'\n```\n\n### Command-Line Usage\n\n```bash\n# Basic conversion\nmarkitdown document.pdf > output.md\n\n# Specify output file\nmarkitdown document.pdf -o output.md\n\n# Pipe content\ncat document.pdf | markitdown > output.md\n\n# Enable plugins\nmarkitdown --list-plugins  # List available plugins\nmarkitdown --use-plugins document.pdf -o output.md\n```\n\n### Python API\n\n```python\nfrom markitdown import MarkItDown\n\n# Basic usage\nmd = MarkItDown()\nresult = md.convert(\"document.pdf\")\nprint(result.text_content)\n\n# Convert from stream\nwith open(\"document.pdf\", \"rb\") as f:\n    result = md.convert_stream(f, file_extension=\".pdf\")\n    print(result.text_content)\n```\n\n## Advanced Features\n\n### 1. AI-Enhanced Image Descriptions\n\nUse LLMs via OpenRouter to generate detailed image descriptions (for PPTX and image files):\n\n```python\nfrom markitdown import MarkItDown\nfrom openai import OpenAI\n\n# Initialize OpenRouter client (OpenAI-compatible API)\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",  # recommended for scientific vision\n    llm_prompt=\"Describe this image in detail for scientific documentation\"\n)\n\nresult = md.convert(\"presentation.pptx\")\nprint(result.text_content)\n```\n\n### 2. Azure Document Intelligence\n\nFor enhanced PDF conversion with Microsoft Document Intelligence:\n\n```bash\n# Command line\nmarkitdown document.pdf -o output.md -d -e \"\u003Cdocument_intelligence_endpoint>\"\n```\n\n```python\n# Python API\nfrom markitdown import MarkItDown\n\nmd = MarkItDown(docintel_endpoint=\"\u003Cdocument_intelligence_endpoint>\")\nresult = md.convert(\"complex_document.pdf\")\nprint(result.text_content)\n```\n\n### 3. Plugin System\n\nMarkItDown supports 3rd-party plugins for extending functionality:\n\n```bash\n# List installed plugins\nmarkitdown --list-plugins\n\n# Enable plugins\nmarkitdown --use-plugins file.pdf -o output.md\n```\n\nFind plugins on GitHub with hashtag: `#markitdown-plugin`\n\n## Optional Dependencies\n\nControl which file formats you support:\n\n```bash\n# Install specific formats\npip install 'markitdown[pdf, docx, pptx]'\n\n# All available options:\n# [all]                  - All optional dependencies\n# [pptx]                 - PowerPoint files\n# [docx]                 - Word documents\n# [xlsx]                 - Excel spreadsheets\n# [xls]                  - Older Excel files\n# [pdf]                  - PDF documents\n# [outlook]              - Outlook messages\n# [az-doc-intel]         - Azure Document Intelligence\n# [audio-transcription]  - WAV and MP3 transcription\n# [youtube-transcription] - YouTube video transcription\n```\n\n## Common Use Cases\n\n### 1. Convert Scientific Papers to Markdown\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# Convert PDF paper\nresult = md.convert(\"research_paper.pdf\")\nwith open(\"paper.md\", \"w\") as f:\n    f.write(result.text_content)\n```\n\n### 2. Extract Data from Excel for Analysis\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\nresult = md.convert(\"data.xlsx\")\n\n# Result will be in Markdown table format\nprint(result.text_content)\n```\n\n### 3. Process Multiple Documents\n\n```python\nfrom markitdown import MarkItDown\nimport os\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Process all PDFs in a directory\npdf_dir = Path(\"papers\u002F\")\noutput_dir = Path(\"markdown_output\u002F\")\noutput_dir.mkdir(exist_ok=True)\n\nfor pdf_file in pdf_dir.glob(\"*.pdf\"):\n    result = md.convert(str(pdf_file))\n    output_file = output_dir \u002F f\"{pdf_file.stem}.md\"\n    output_file.write_text(result.text_content)\n    print(f\"Converted: {pdf_file.name}\")\n```\n\n### 4. Convert PowerPoint with AI Descriptions\n\n```python\nfrom markitdown import MarkItDown\nfrom openai import OpenAI\n\n# Use OpenRouter for access to multiple AI models\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",  # recommended for presentations\n    llm_prompt=\"Describe this slide image in detail, focusing on key visual elements and data\"\n)\n\nresult = md.convert(\"presentation.pptx\")\nwith open(\"presentation.md\", \"w\") as f:\n    f.write(result.text_content)\n```\n\n### 5. Batch Convert with Different Formats\n\n```python\nfrom markitdown import MarkItDown\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Files to convert\nfiles = [\n    \"document.pdf\",\n    \"spreadsheet.xlsx\",\n    \"presentation.pptx\",\n    \"notes.docx\"\n]\n\nfor file in files:\n    try:\n        result = md.convert(file)\n        output = Path(file).stem + \".md\"\n        with open(output, \"w\") as f:\n            f.write(result.text_content)\n        print(f\"✓ Converted {file}\")\n    except Exception as e:\n        print(f\"✗ Error converting {file}: {e}\")\n```\n\n### 6. Extract YouTube Video Transcription\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# Convert YouTube video to transcript\nresult = md.convert(\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\")\nprint(result.text_content)\n```\n\n## Docker Usage\n\n```bash\n# Build image\ndocker build -t markitdown:latest .\n\n# Run conversion\ndocker run --rm -i markitdown:latest \u003C ~\u002Fdocument.pdf > output.md\n```\n\n## Best Practices\n\n### 1. Choose the Right Conversion Method\n\n- **Simple documents**: Use basic `MarkItDown()`\n- **Complex PDFs**: Use Azure Document Intelligence\n- **Visual content**: Enable AI image descriptions\n- **Scanned documents**: Ensure OCR dependencies are installed\n\n### 2. Handle Errors Gracefully\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\ntry:\n    result = md.convert(\"document.pdf\")\n    print(result.text_content)\nexcept FileNotFoundError:\n    print(\"File not found\")\nexcept Exception as e:\n    print(f\"Conversion error: {e}\")\n```\n\n### 3. Process Large Files Efficiently\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# For large files, use streaming\nwith open(\"large_file.pdf\", \"rb\") as f:\n    result = md.convert_stream(f, file_extension=\".pdf\")\n    \n    # Process in chunks or save directly\n    with open(\"output.md\", \"w\") as out:\n        out.write(result.text_content)\n```\n\n### 4. Optimize for Token Efficiency\n\nMarkdown output is already token-efficient, but you can:\n- Remove excessive whitespace\n- Consolidate similar sections\n- Strip metadata if not needed\n\n```python\nfrom markitdown import MarkItDown\nimport re\n\nmd = MarkItDown()\nresult = md.convert(\"document.pdf\")\n\n# Clean up extra whitespace\nclean_text = re.sub(r'\\n{3,}', '\\n\\n', result.text_content)\nclean_text = clean_text.strip()\n\nprint(clean_text)\n```\n\n## Integration with Scientific Workflows\n\n### Convert Literature for Review\n\n```python\nfrom markitdown import MarkItDown\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Convert all papers in literature folder\npapers_dir = Path(\"literature\u002Fpdfs\")\noutput_dir = Path(\"literature\u002Fmarkdown\")\noutput_dir.mkdir(exist_ok=True)\n\nfor paper in papers_dir.glob(\"*.pdf\"):\n    result = md.convert(str(paper))\n    \n    # Save with metadata\n    output_file = output_dir \u002F f\"{paper.stem}.md\"\n    content = f\"# {paper.stem}\\n\\n\"\n    content += f\"**Source**: {paper.name}\\n\\n\"\n    content += \"---\\n\\n\"\n    content += result.text_content\n    \n    output_file.write_text(content)\n\n# For AI-enhanced conversion with figures\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd_ai = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",\n    llm_prompt=\"Describe scientific figures with technical precision\"\n)\n```\n\n### Extract Tables for Analysis\n\n```python\nfrom markitdown import MarkItDown\nimport re\n\nmd = MarkItDown()\nresult = md.convert(\"data_tables.xlsx\")\n\n# Markdown tables can be parsed or used directly\nprint(result.text_content)\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Missing dependencies**: Install feature-specific packages\n   ```bash\n   pip install 'markitdown[pdf]'  # For PDF support\n   ```\n\n2. **Binary file errors**: Ensure files are opened in binary mode\n   ```python\n   with open(\"file.pdf\", \"rb\") as f:  # Note the \"rb\"\n       result = md.convert_stream(f, file_extension=\".pdf\")\n   ```\n\n3. **OCR not working**: Install tesseract\n   ```bash\n   # macOS\n   brew install tesseract\n   \n   # Ubuntu\n   sudo apt-get install tesseract-ocr\n   ```\n\n## Performance Considerations\n\n- **PDF files**: Large PDFs may take time; consider page ranges if supported\n- **Image OCR**: OCR processing is CPU-intensive\n- **Audio transcription**: Requires additional compute resources\n- **AI image descriptions**: Requires API calls (costs may apply)\n\n## Next Steps\n\n- See `references\u002Fapi_reference.md` for complete API documentation\n- Check `references\u002Ffile_formats.md` for format-specific details\n- Review `scripts\u002Fbatch_convert.py` for automation examples\n- Explore `scripts\u002Fconvert_with_ai.py` for AI-enhanced conversions\n\n## Resources\n\n- **MarkItDown GitHub**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown\n- **PyPI**: https:\u002F\u002Fpypi.org\u002Fproject\u002Fmarkitdown\u002F\n- **OpenRouter**: https:\u002F\u002Fopenrouter.ai (for AI-enhanced conversions)\n- **OpenRouter API Keys**: https:\u002F\u002Fopenrouter.ai\u002Fkeys\n- **OpenRouter Models**: https:\u002F\u002Fopenrouter.ai\u002Fmodels\n- **MCP Server**: markitdown-mcp (for Claude Desktop integration)\n- **Plugin Development**: See `packages\u002Fmarkitdown-sample-plugin`\n\n\n","# MarkItDown - File to Markdown Conversion\n\n## Overview\n\nMarkItDown is a Python tool developed by Microsoft for converting various file formats to Markdown. It's particularly useful for converting documents into LLM-friendly text format, as Markdown is token-efficient and well-understood by modern language models.\n\n**Key Benefits**:\n- Convert documents to clean, structured Markdown\n- Token-efficient format for LLM processing\n- Supports 15+ file formats\n- Optional AI-enhanced image descriptions\n- OCR for images and scanned documents\n- Speech transcription for audio files\n\n## Visual Enhancement with Scientific Schematics\n\n**When creating documents with this skill, always consider adding scientific diagrams and schematics to enhance visual communication.**\n\nIf your document does not already contain schematics or diagrams:\n- Use the **scientific-schematics** skill to generate AI-powered publication-quality diagrams\n- Simply describe your desired diagram in natural language\n- Nano Banana Pro will automatically generate, review, and refine the schematic\n\n**For new documents:** Scientific schematics should be generated by default to visually represent key concepts, workflows, architectures, or relationships described in the text.\n\n**How to generate schematics:**\n```bash\npython scripts\u002Fgenerate_schematic.py \"your diagram description\" -o figures\u002Foutput.png\n```\n\nThe AI will automatically:\n- Create publication-quality images with proper formatting\n- Review and refine through multiple iterations\n- Ensure accessibility (colorblind-friendly, high contrast)\n- Save outputs in the figures\u002F directory\n\n**When to add schematics:**\n- Document conversion workflow diagrams\n- File format architecture illustrations\n- OCR processing pipeline diagrams\n- Integration workflow visualizations\n- System architecture diagrams\n- Data flow diagrams\n- Any complex concept that benefits from visualization\n\nFor detailed guidance on creating schematics, refer to the scientific-schematics skill documentation.\n\n---\n\n## Supported Formats\n\n| Format | Description | Notes |\n|--------|-------------|-------|\n| **PDF** | Portable Document Format | Full text extraction |\n| **DOCX** | Microsoft Word | Tables, formatting preserved |\n| **PPTX** | PowerPoint | Slides with notes |\n| **XLSX** | Excel spreadsheets | Tables and data |\n| **Images** | JPEG, PNG, GIF, WebP | EXIF metadata + OCR |\n| **Audio** | WAV, MP3 | Metadata + transcription |\n| **HTML** | Web pages | Clean conversion |\n| **CSV** | Comma-separated values | Table format |\n| **JSON** | JSON data | Structured representation |\n| **XML** | XML documents | Structured format |\n| **ZIP** | Archive files | Iterates contents |\n| **EPUB** | E-books | Full text extraction |\n| **YouTube** | Video URLs | Fetch transcriptions |\n\n## Quick Start\n\n### Installation\n\n```bash\n# Install with all features\npip install 'markitdown[all]'\n\n# Or from source\ngit clone https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown.git\ncd markitdown\npip install -e 'packages\u002Fmarkitdown[all]'\n```\n\n### Command-Line Usage\n\n```bash\n# Basic conversion\nmarkitdown document.pdf > output.md\n\n# Specify output file\nmarkitdown document.pdf -o output.md\n\n# Pipe content\ncat document.pdf | markitdown > output.md\n\n# Enable plugins\nmarkitdown --list-plugins  # List available plugins\nmarkitdown --use-plugins document.pdf -o output.md\n```\n\n### Python API\n\n```python\nfrom markitdown import MarkItDown\n\n# Basic usage\nmd = MarkItDown()\nresult = md.convert(\"document.pdf\")\nprint(result.text_content)\n\n# Convert from stream\nwith open(\"document.pdf\", \"rb\") as f:\n    result = md.convert_stream(f, file_extension=\".pdf\")\n    print(result.text_content)\n```\n\n## Advanced Features\n\n### 1. AI-Enhanced Image Descriptions\n\nUse LLMs via OpenRouter to generate detailed image descriptions (for PPTX and image files):\n\n```python\nfrom markitdown import MarkItDown\nfrom openai import OpenAI\n\n# Initialize OpenRouter client (OpenAI-compatible API)\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",  # recommended for scientific vision\n    llm_prompt=\"Describe this image in detail for scientific documentation\"\n)\n\nresult = md.convert(\"presentation.pptx\")\nprint(result.text_content)\n```\n\n### 2. Azure Document Intelligence\n\nFor enhanced PDF conversion with Microsoft Document Intelligence:\n\n```bash\n# Command line\nmarkitdown document.pdf -o output.md -d -e \"\u003Cdocument_intelligence_endpoint>\"\n```\n\n```python\n# Python API\nfrom markitdown import MarkItDown\n\nmd = MarkItDown(docintel_endpoint=\"\u003Cdocument_intelligence_endpoint>\")\nresult = md.convert(\"complex_document.pdf\")\nprint(result.text_content)\n```\n\n### 3. Plugin System\n\nMarkItDown supports 3rd-party plugins for extending functionality:\n\n```bash\n# List installed plugins\nmarkitdown --list-plugins\n\n# Enable plugins\nmarkitdown --use-plugins file.pdf -o output.md\n```\n\nFind plugins on GitHub with hashtag: `#markitdown-plugin`\n\n## Optional Dependencies\n\nControl which file formats you support:\n\n```bash\n# Install specific formats\npip install 'markitdown[pdf, docx, pptx]'\n\n# All available options:\n# [all]                  - All optional dependencies\n# [pptx]                 - PowerPoint files\n# [docx]                 - Word documents\n# [xlsx]                 - Excel spreadsheets\n# [xls]                  - Older Excel files\n# [pdf]                  - PDF documents\n# [outlook]              - Outlook messages\n# [az-doc-intel]         - Azure Document Intelligence\n# [audio-transcription]  - WAV and MP3 transcription\n# [youtube-transcription] - YouTube video transcription\n```\n\n## Common Use Cases\n\n### 1. Convert Scientific Papers to Markdown\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# Convert PDF paper\nresult = md.convert(\"research_paper.pdf\")\nwith open(\"paper.md\", \"w\") as f:\n    f.write(result.text_content)\n```\n\n### 2. Extract Data from Excel for Analysis\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\nresult = md.convert(\"data.xlsx\")\n\n# Result will be in Markdown table format\nprint(result.text_content)\n```\n\n### 3. Process Multiple Documents\n\n```python\nfrom markitdown import MarkItDown\nimport os\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Process all PDFs in a directory\npdf_dir = Path(\"papers\u002F\")\noutput_dir = Path(\"markdown_output\u002F\")\noutput_dir.mkdir(exist_ok=True)\n\nfor pdf_file in pdf_dir.glob(\"*.pdf\"):\n    result = md.convert(str(pdf_file))\n    output_file = output_dir \u002F f\"{pdf_file.stem}.md\"\n    output_file.write_text(result.text_content)\n    print(f\"Converted: {pdf_file.name}\")\n```\n\n### 4. Convert PowerPoint with AI Descriptions\n\n```python\nfrom markitdown import MarkItDown\nfrom openai import OpenAI\n\n# Use OpenRouter for access to multiple AI models\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",  # recommended for presentations\n    llm_prompt=\"Describe this slide image in detail, focusing on key visual elements and data\"\n)\n\nresult = md.convert(\"presentation.pptx\")\nwith open(\"presentation.md\", \"w\") as f:\n    f.write(result.text_content)\n```\n\n### 5. Batch Convert with Different Formats\n\n```python\nfrom markitdown import MarkItDown\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Files to convert\nfiles = [\n    \"document.pdf\",\n    \"spreadsheet.xlsx\",\n    \"presentation.pptx\",\n    \"notes.docx\"\n]\n\nfor file in files:\n    try:\n        result = md.convert(file)\n        output = Path(file).stem + \".md\"\n        with open(output, \"w\") as f:\n            f.write(result.text_content)\n        print(f\"✓ Converted {file}\")\n    except Exception as e:\n        print(f\"✗ Error converting {file}: {e}\")\n```\n\n### 6. Extract YouTube Video Transcription\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# Convert YouTube video to transcript\nresult = md.convert(\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VIDEO_ID\")\nprint(result.text_content)\n```\n\n## Docker Usage\n\n```bash\n# Build image\ndocker build -t markitdown:latest .\n\n# Run conversion\ndocker run --rm -i markitdown:latest \u003C ~\u002Fdocument.pdf > output.md\n```\n\n## Best Practices\n\n### 1. Choose the Right Conversion Method\n\n- **Simple documents**: Use basic `MarkItDown()`\n- **Complex PDFs**: Use Azure Document Intelligence\n- **Visual content**: Enable AI image descriptions\n- **Scanned documents**: Ensure OCR dependencies are installed\n\n### 2. Handle Errors Gracefully\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\ntry:\n    result = md.convert(\"document.pdf\")\n    print(result.text_content)\nexcept FileNotFoundError:\n    print(\"File not found\")\nexcept Exception as e:\n    print(f\"Conversion error: {e}\")\n```\n\n### 3. Process Large Files Efficiently\n\n```python\nfrom markitdown import MarkItDown\n\nmd = MarkItDown()\n\n# For large files, use streaming\nwith open(\"large_file.pdf\", \"rb\") as f:\n    result = md.convert_stream(f, file_extension=\".pdf\")\n    \n    # Process in chunks or save directly\n    with open(\"output.md\", \"w\") as out:\n        out.write(result.text_content)\n```\n\n### 4. Optimize for Token Efficiency\n\nMarkdown output is already token-efficient, but you can:\n- Remove excessive whitespace\n- Consolidate similar sections\n- Strip metadata if not needed\n\n```python\nfrom markitdown import MarkItDown\nimport re\n\nmd = MarkItDown()\nresult = md.convert(\"document.pdf\")\n\n# Clean up extra whitespace\nclean_text = re.sub(r'\\n{3,}', '\\n\\n', result.text_content)\nclean_text = clean_text.strip()\n\nprint(clean_text)\n```\n\n## Integration with Scientific Workflows\n\n### Convert Literature for Review\n\n```python\nfrom markitdown import MarkItDown\nfrom pathlib import Path\n\nmd = MarkItDown()\n\n# Convert all papers in literature folder\npapers_dir = Path(\"literature\u002Fpdfs\")\noutput_dir = Path(\"literature\u002Fmarkdown\")\noutput_dir.mkdir(exist_ok=True)\n\nfor paper in papers_dir.glob(\"*.pdf\"):\n    result = md.convert(str(paper))\n    \n    # Save with metadata\n    output_file = output_dir \u002F f\"{paper.stem}.md\"\n    content = f\"# {paper.stem}\\n\\n\"\n    content += f\"**Source**: {paper.name}\\n\\n\"\n    content += \"---\\n\\n\"\n    content += result.text_content\n    \n    output_file.write_text(content)\n\n# For AI-enhanced conversion with figures\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=\"your-openrouter-api-key\",\n    base_url=\"https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\"\n)\n\nmd_ai = MarkItDown(\n    llm_client=client,\n    llm_model=\"anthropic\u002Fclaude-opus-4.5\",\n    llm_prompt=\"Describe scientific figures with technical precision\"\n)\n```\n\n### Extract Tables for Analysis\n\n```python\nfrom markitdown import MarkItDown\nimport re\n\nmd = MarkItDown()\nresult = md.convert(\"data_tables.xlsx\")\n\n# Markdown tables can be parsed or used directly\nprint(result.text_content)\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Missing dependencies**: Install feature-specific packages\n   ```bash\n   pip install 'markitdown[pdf]'  # For PDF support\n   ```\n\n2. **Binary file errors**: Ensure files are opened in binary mode\n   ```python\n   with open(\"file.pdf\", \"rb\") as f:  # Note the \"rb\"\n       result = md.convert_stream(f, file_extension=\".pdf\")\n   ```\n\n3. **OCR not working**: Install tesseract\n   ```bash\n   # macOS\n   brew install tesseract\n   \n   # Ubuntu\n   sudo apt-get install tesseract-ocr\n   ```\n\n## Performance Considerations\n\n- **PDF files**: Large PDFs may take time; consider page ranges if supported\n- **Image OCR**: OCR processing is CPU-intensive\n- **Audio transcription**: Requires additional compute resources\n- **AI image descriptions**: Requires API calls (costs may apply)\n\n## Next Steps\n\n- See `references\u002Fapi_reference.md` for complete API documentation\n- Check `references\u002Ffile_formats.md` for format-specific details\n- Review `scripts\u002Fbatch_convert.py` for automation examples\n- Explore `scripts\u002Fconvert_with_ai.py` for AI-enhanced conversions\n\n## Resources\n\n- **MarkItDown GitHub**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown\n- **PyPI**: https:\u002F\u002Fpypi.org\u002Fproject\u002Fmarkitdown\u002F\n- **OpenRouter**: https:\u002F\u002Fopenrouter.ai (for AI-enhanced conversions)\n- **OpenRouter API Keys**: https:\u002F\u002Fopenrouter.ai\u002Fkeys\n- **OpenRouter Models**: https:\u002F\u002Fopenrouter.ai\u002Fmodels\n- **MCP Server**: markitdown-mcp (for Claude Desktop integration)\n- **Plugin Development**: See `packages\u002Fmarkitdown-sample-plugin`\n\n\n",{"name":5,"license":58,"metadata":59,"description":7,"allowed-tools":61},"MIT license",{"skill-author":60},"K-Dense Inc.","Read Write Edit Bash","main","f19b254e8975d0bfddb394686706106930d7964d","Science\u002Fresearch-and-communication\u002Fmarkitdown","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus","https:\u002F\u002Fgithub.com\u002Fendman100","2026-11-12 18:13:37",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add endman100\u002Fskill-router-nexus --skill markitdown",{"tool":74,"command":75},"bunx","bunx skills add endman100\u002Fskill-router-nexus --skill markitdown",{"tool":77,"command":78},"pnpm","pnpm dlx skills add endman100\u002Fskill-router-nexus --skill markitdown","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002FSKILL.md",true,[82,88,94,98,104,108,112,116],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"assets\u002Fexample_usage.md","ASSET","资产文件",10378,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fassets\u002Fexample_usage.md",{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fapi_reference.md","REFERENCE","参考文档",8851,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Freferences\u002Fapi_reference.md",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Ffile_formats.md",8985,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Freferences\u002Ffile_formats.md",{"path":99,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fbatch_convert.py","SCRIPT","脚本",6650,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fscripts\u002Fbatch_convert.py",{"path":105,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fconvert_literature.py",8915,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fscripts\u002Fconvert_literature.py",{"path":109,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Fconvert_with_ai.py",7461,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fscripts\u002Fconvert_with_ai.py",{"path":113,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Fgenerate_schematic_ai.py",32647,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fscripts\u002Fgenerate_schematic_ai.py",{"path":117,"resourceType":100,"resourceTypeDesc":101,"sizeBytes":118,"sourceHtmlUrl":119},"scripts\u002Fgenerate_schematic.py",5146,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FScience\u002Fresearch-and-communication\u002Fmarkitdown\u002Fscripts\u002Fgenerate_schematic.py",[121,139,175,198,207,231],{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":125,"sourceHtmlUrl":126,"categories":127,"keywords":131,"publishedAt":53},"01M6MPCT5BXVER8HQZTW3QE9AS","create-master","基于佛教经典文献，生成特定高僧大德的 AI 教学角色","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FMetaphysics-and-Spirituality\u002FMaster-skill\u002FSKILL.md",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000039","教师与教育",[132,133,134,135,136,137,41,42,43,138,46],"create master","master","create","生成","true","webfetch","grep",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":143,"sourceHtmlUrl":144,"categories":145,"keywords":155,"publishedAt":53},"01M6M43AKE95Y64E1JRXEF5QQ3","writing-dna-skill","从至少 20 篇完整文章中蒸馏可复用的写作 DNA，分析语言、文章结构、选题逻辑、素材策略、认知框架和视觉风格，并生成 Writing-DNA.md；按该 DNA 写作时会读取全部蒸馏产物和 5 篇相关原文。用于中英文作者、账号、品牌或出版物的风格分析与一致性写作。 Distill reusable Writing DNA from at least 20 complete articles for Chinese or English authors, publications, brands, and accounts; use for language, structure, topic logic, source strategy, cognitive-frame, and visual-style analysis.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fwriting-dna-skill\u002FSKILL.md",[146,149,152],{"categoryNo":147,"categoryName":148,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":150,"categoryName":151,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":153,"categoryName":154,"taxonomyType":31,"taxonomyTypeDesc":32},"01JBSEEDCAT000000000000036","内容创作者",[156,157,158,159,160,161,162,163,164,165,166,167,168,135,169,170,171,172,173,174],"writing dna skill","DNA","writing","strategy","english","logic","visual","structure","chinese","reusable","use","style","distill","analysis","frame","source","for","at","complete",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":179,"sourceHtmlUrl":180,"categories":181,"keywords":184,"publishedAt":53},"01M6M428TTCGQ4ME3KY99VN037","stop-slop","Remove AI writing patterns from prose. Use when drafting, editing, or reviewing text to eliminate predictable AI tells.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fstop-slop\u002FSKILL.md",[182,183],{"categoryNo":147,"categoryName":148,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":153,"categoryName":154,"taxonomyType":31,"taxonomyTypeDesc":32},[185,186,187,188,189,190,191,192,193,166,194,195,196,172,197,158],"slop","stop slop","stop","drafting","when","drafts","https","patterns","prose","remove","editing","text","content",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":202,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":53},"01M6M41X0B7EBX42TK435DMGGR","shuorenhua","检查和清理中英文文本里的 AI 套路，适用于“去 AI 味”“说人话”“自然一点”“别像模板”“先标问题”这类改写和审稿需求；按场景控制力度，同时保留事实、术语、语域和责任主体。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fshuorenhua\u002FSKILL.md",[],[200,206],"文本",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":211,"sourceHtmlUrl":212,"categories":213,"keywords":214,"publishedAt":53},"01M6M3ZD12WBEW5KXKDM4N6DFG","naming","Name products, SaaS, brands, open source projects, bots, and apps. Use when the user needs to name something, find a brand name, or pick a product name. Metaphor-driven process that produces memorable, meaningful names and avoids AI slop.","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fnaming-main\u002FSKILL.md",[],[209,215,216,217,218,219,166,220,43,171,221,222,223,224,46,225,226,227,228,189,229,230,185],"repo","websearch","product name","apps","bots","view","brand","pick","gh","projects","open","saas","open source","product","describe","ai slop",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":235,"sourceHtmlUrl":236,"categories":237,"keywords":239,"publishedAt":53},"01M6M3YVXAFAAWJ7F6JMPFREYE","humanizer-zh","去除文本中的 AI 生成痕迹。适用于编辑或审阅文本，使其听起来更自然、更像人类书写。\n基于维基百科的\"AI 写作特征\"综合指南。检测并修复以下模式：夸大的象征意义、\n宣传性语言、以 -ing 结尾的肤浅分析、模糊的归因、破折号过度使用、三段式法则、\nAI 词汇、否定式排比、过多的连接性短语。","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FWriting-and-Content\u002Fhumanizer-zh\u002FSKILL.md",[238],{"categoryNo":147,"categoryName":148,"taxonomyType":20,"taxonomyTypeDesc":21},[240,241,242,43,42,41,158,135,206,243,185,187],"humanizer","zh","humanizer zh","翻译"]