Communitygithub.com

David-Li0406/meta-skill-evloving

Converta arquivos e documentos do Office para Markdown. Suporta PDF, DOCX, PPTX, XLSX, imagens (com OCR), áudio (com transcrição), HTML, CSV, JSON, XML, ZIP, URLs do YouTube, EPUBs e muito mais.

O que é meta-skill-evloving?

O MarkItDown é uma ferramenta Python desenvolvida pela Microsoft que converte mais de 15 formatos de arquivo (PDF, DOCX, PPTX, XLSX, imagens, áudio, HTML, CSV, JSON, XML, ZIP, EPUB, YouTube) em Markdown limpo e estruturado, ideal para processamento por LLMs devido à sua eficiência de tokens. A habilidade oferece recursos avançados como descrições de imagens aprimoradas por IA (via OpenRouter), OCR para documentos digitalizados, transcrição de áudio e integração com o Azure Document Intelligence para PDFs complexos. Suporta uso via linha de comando, API Python e Docker, sendo compatível com qualquer agente ou plataforma que execute Python. O workflow inclui a geração opcional de diagramas científicos de alta qualidade usando a skill `scientific-schematics` para enriquecer visualmente os documentos convertidos, automatizando a criação de ilustrações de arquiteturas, fluxos de dados e pipelines de processamento.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

MarkItDown - Conversão de Arquivos para Markdown

Visão Geral

MarkItDown é uma ferramenta Python desenvolvida pela Microsoft para converter vários formatos de arquivo para Markdown. É particularmente útil para converter documentos em formato de texto amigável para LLMs, já que Markdown é eficiente em tokens e bem compreendido por modelos de linguagem modernos.

Principais Benefícios:

  • Converta documentos para Markdown limpo e estruturado
  • Formato eficiente em tokens para processamento com LLMs
  • Suporta mais de 15 formatos de arquivo
  • Descrições de imagens aprimoradas por IA (opcional)
  • OCR para imagens e documentos digitalizados
  • Transcrição de fala para arquivos de áudio

Aprimoramento Visual com Esquemas Científicos

Ao criar documentos com esta skill, sempre considere adicionar diagramas e esquemas científicos para melhorar a comunicação visual.

Se o seu documento ainda não contiver esquemas ou diagramas:

  • Use a skill scientific-schematics para gerar diagramas de qualidade prontos para publicação
  • Simplesmente descreva o diagrama desejado em linguagem natural
  • O Nano Banana Pro irá automaticamente gerar, revisar e refinar o esquema

Para novos documentos: Esquemas científicos devem ser gerados por padrão para representar visualmente conceitos-chave, fluxos de trabalho, arquiteturas ou relacionamentos descritos no texto.

Como gerar esquemas:

python scripts/generate_schematic.py "sua descrição do diagrama" -o figures/output.png

A IA irá automaticamente:

  • Criar imagens de qualidade prontas para publicação com formatação adequada
  • Revisar e refinar através de múltiplas iterações
  • Garantir acessibilidade (compatível com daltonismo, alto contraste)
  • Salvar as saídas no diretório figures/

Quando adicionar esquemas:

  • Diagramas de fluxo de trabalho de conversão de documentos
  • Ilustrações de arquitetura de formatos de arquivo
  • Diagramas de pipeline de processamento OCR
  • Visualizações de fluxo de trabalho de integração
  • Diagramas de arquitetura de sistema
  • Diagramas de fluxo de dados
  • Qualquer conceito complexo que se beneficie de visualização

Para orientação detalhada sobre criação de esquemas, consulte a documentação da skill scientific-schematics.


Formatos Suportados

FormatoDescriçãoNotas
PDFPortable Document FormatExtração completa de texto
DOCXMicrosoft WordTabelas, formatação preservada
PPTXPowerPointSlides com anotações
XLSXPlanilhas ExcelTabelas e dados
ImagensJPEG, PNG, GIF, WebPMetadados EXIF + OCR
ÁudioWAV, MP3Metadados + transcrição
HTMLPáginas webConversão limpa
CSVValores separados por vírgulaFormato de tabela
JSONDados JSONRepresentação estruturada
XMLDocumentos XMLFormato estruturado
ZIPArquivos compactadosItera sobre os conteúdos
EPUBE-booksExtração completa de texto
YouTubeURLs de vídeoBuscar transcrições

Início Rápido

Instalação

# Instalar com todos os recursos
pip install 'markitdown[all]'

# Ou a partir do código-fonte
git clone https://github.com/microsoft/markitdown.git
cd markitdown
pip install -e 'packages/markitdown[all]'

Uso via Linha de Comando

# Conversão básica
markitdown document.pdf > output.md

# Especificar arquivo de saída
markitdown document.pdf -o output.md

# Usar pipe
cat document.pdf | markitdown > output.md

# Habilitar plugins
markitdown --list-plugins  # Listar plugins disponíveis
markitdown --use-plugins document.pdf -o output.md

API Python

from markitdown import MarkItDown

# Uso básico
md = MarkItDown()
result = md.convert("document.pdf")
print(result.text_content)

# Converter a partir de um stream
with open("document.pdf", "rb") as f:
    result = md.convert_stream(f, file_extension=".pdf")
    print(result.text_content)

Recursos Avançados

1. Descrições de Imagens Aprimoradas por IA

Use LLMs via OpenRouter para gerar descrições detalhadas de imagens (para arquivos PPTX e imagens):

from markitdown import MarkItDown
from openai import OpenAI

# Inicializar cliente OpenRouter (API compatível com OpenAI)
client = OpenAI(
    api_key="sua-chave-da-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",  # recomendado para visão científica
    llm_prompt="Descreva esta imagem em detalhes para documentação científica"
)

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

2. Azure Document Intelligence

Para conversão aprimorada de PDF com Microsoft Document Intelligence:

# Linha de comando
markitdown document.pdf -o output.md -d -e "<endpoint_do_document_intelligence>"
# API Python
from markitdown import MarkItDown

md = MarkItDown(docintel_endpoint="<endpoint_do_document_intelligence>")
result = md.convert("documento_complexo.pdf")
print(result.text_content)

3. Sistema de Plugins

MarkItDown suporta plugins de terceiros para estender a funcionalidade:

# Listar plugins instalados
markitdown --list-plugins

# Habilitar plugins
markitdown --use-plugins file.pdf -o output.md

Encontre plugins no GitHub com a hashtag: #markitdown-plugin

Dependências Opcionais

Controle quais formatos de arquivo você suporta:

# Instalar formatos específicos
pip install 'markitdown[pdf, docx, pptx]'

# Todas as opções disponíveis:
# [all]                  - Todas as dependências opcionais
# [pptx]                 - Arquivos PowerPoint
# [docx]                 - Documentos Word
# [xlsx]                 - Planilhas Excel
# [xls]                  - Arquivos Excel antigos
# [pdf]                  - Documentos PDF
# [outlook]              - Mensagens do Outlook
# [az-doc-intel]         - Azure Document Intelligence
# [audio-transcription]  - Transcrição de WAV e MP3
# [youtube-transcription] - Transcrição de vídeos do YouTube

Casos de Uso Comuns

1. Converter Artigos Científicos para Markdown

from markitdown import MarkItDown

md = MarkItDown()

# Converter artigo em PDF
result = md.convert("artigo_pesquisa.pdf")
with open("artigo.md", "w") as f:
    f.write(result.text_content)

2. Extrair Dados do Excel para Análise

from markitdown import MarkItDown

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

# O resultado estará no formato de tabela Markdown
print(result.text_content)

3. Processar Múltiplos Documentos

from markitdown import MarkItDown
import os
from pathlib import Path

md = MarkItDown()

# Processar todos os PDFs em um diretório
dir_pdf = Path("artigos/")
dir_saida = Path("saida_markdown/")
dir_saida.mkdir(exist_ok=True)

for arquivo_pdf in dir_pdf.glob("*.pdf"):
    result = md.convert(str(arquivo_pdf))
    arquivo_saida = dir_saida / f"{arquivo_pdf.stem}.md"
    arquivo_saida.write_text(result.text_content)
    print(f"Convertido: {arquivo_pdf.name}")

4. Converter PowerPoint com Descrições de IA

from markitdown import MarkItDown
from openai import OpenAI

# Use OpenRouter para acesso a múltiplos modelos de IA
client = OpenAI(
    api_key="sua-chave-da-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",  # recomendado para apresentações
    llm_prompt="Descreva esta imagem de slide em detalhes, focando nos elementos visuais e dados principais"
)

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

5. Conversão em Lote com Diferentes Formatos

from markitdown import MarkItDown
from pathlib import Path

md = MarkItDown()

# Arquivos para converter
arquivos = [
    "documento.pdf",
    "planilha.xlsx",
    "apresentacao.pptx",
    "anotacoes.docx"
]

for arquivo in arquivos:
    try:
        result = md.convert(arquivo)
        saida = Path(arquivo).stem + ".md"
        with open(saida, "w") as f:
            f.write(result.text_content)
        print(f"✓ Convertido {arquivo}")
    except Exception as e:
        print(f"✗ Erro ao converter {arquivo}: {e}")

6. Extrair Transcrição de Vídeo do YouTube

from markitdown import MarkItDown

md = MarkItDown()

# Converter vídeo do YouTube para transcrição
result = md.convert("https://www.youtube.com/watch?v=ID_DO_VIDEO")
print(result.text_content)

Uso com Docker

# Construir imagem
docker build -t markitdown:latest .

# Executar conversão
docker run --rm -i markitdown:latest < ~/documento.pdf > output.md

Melhores Práticas

1. Escolha o Método de Conversão Adequado

  • Documentos simples: Use MarkItDown() básico
  • PDFs complexos: Use Azure Document Intelligence
  • Conteúdo visual: Ative descrições de imagens com IA
  • Documentos digitalizados: Certifique-se de que as dependências de OCR estão instaladas

2. Trate Erros com Elegância

from markitdown import MarkItDown

md = MarkItDown()

try:
    result = md.convert("documento.pdf")
    print(result.text_content)
except FileNotFoundError:
    print("Arquivo não encontrado")
except Exception as e:
    print(f"Erro de conversão: {e}")

3. Processe Arquivos Grandes com Eficiência

from markitdown import MarkItDown

md = MarkItDown()

# Para arquivos grandes, use streaming
with open("arquivo_grande.pdf", "rb") as f:
    result = md.convert_stream(f, file_extension=".pdf")
    
    # Processe em partes ou salve diretamente
    with open("output.md", "w") as out:
        out.write(result.text_content)

4. Otimize para Eficiência de Tokens

A saída Markdown já é eficiente em tokens, mas você pode:

  • Remover espaços em branco excessivos
  • Consolidar seções similares
  • Remover metadados se não forem necessários
from markitdown import MarkItDown
import re

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

# Limpar espaços em branco extras
texto_limpo = re.sub(r'\n{3,}', '\n\n', result.text_content)
texto_limpo = texto_limpo.strip()

print(texto_limpo)

Integração com Fluxos de Trabalho Científicos

Converter Literatura para Revisão

from markitdown import MarkItDown
from pathlib import Path

md = MarkItDown()

# Converter todos os artigos na pasta de literatura
dir_artigos = Path("literatura/pdfs")
dir_saida = Path("literatura/markdown")
dir_saida.mkdir(exist_ok=True)

for artigo in dir_artigos.glob("*.pdf"):
    result = md.convert(str(artigo))
    
    # Salvar com metadados
    arquivo_saida = dir_saida / f"{artigo.stem}.md"
    conteudo = f"# {artigo.stem}\n\n"
    conteudo += f"**Fonte**: {artigo.name}\n\n"
    conteudo += "---\n\n"
    conteudo += result.text_content
    
    arquivo_saida.write_text(conteudo)

# Para conversão aprimorada com IA incluindo figuras
from openai import OpenAI

client = OpenAI(
    api_key="sua-chave-da-api-openrouter",
    base_url="https://openrouter.ai/api/v1"
)

md_ia = MarkItDown(
    llm_client=client,
    llm_model="anthropic/claude-sonnet-4.5",
    llm_prompt="Descreva figuras científicas com precisão técnica"
)

Extrair Tabelas para Análise

from markitdown import MarkItDown
import re

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

# Tabelas Markdown podem ser analisadas ou usadas diretamente
print(result.text_content)

Solução de Problemas

Problemas Comuns

  1. Dependências ausentes: Instale pacotes específicos do formato

    pip install 'markitdown[pdf]'  # Para suporte a PDF
    
  2. Erros de arquivo binário: Certifique-se de que os arquivos são abertos em modo binário

    with open("arquivo.pdf", "rb") as f:  # Observe o "rb"
        result = md.convert_stream(f, file_extension=".pdf")
    
  3. OCR não funciona: Instale o tesseract

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

Considerações de Desempenho

  • Arquivos PDF: PDFs grandes podem levar tempo; considere intervalos de páginas, se suportado
  • OCR de imagens: O processamento OCR é intensivo em CPU
  • Transcrição de áudio: Requer recursos computacionais adicionais
  • Descrições de imagens com IA: Requer chamadas de API (custos podem ser aplicados)

Próximos Passos

  • Veja references/api_reference.md para documentação completa da API
  • Consulte references/file_formats.md para detalhes específicos de cada formato
  • Revise scripts/batch_convert.py para exemplos de automação
  • Explore scripts/convert_with_ai.py para conversões aprimoradas com IA

Recursos

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".

Habilidades Relacionadas