🗺️ A Árvore de Conversão Universal do Pandoc

flowchart TD
    MD["Arquivo Fonte Markdown (.md)"]
    --> AST["Pandoc Abstract Syntax Tree (AST Universal em Haskell)"]

    AST --> PDF["PDF Impresso de Alta Qualidade (via wkhtmltopdf / WeasyPrint / XeLaTeX)"]
    AST --> DOCX["Microsoft Word (.docx com template corporativo de estilos)"]
    AST --> EPUB["E-book para Leitores Digitais (.epub com índice interativo)"]
    AST --> HTML5["Apresentações e Manuais Web Estáticos"]
    AST --> LATEX["Artigos Acadêmicos (.tex para submissão IEEE / ACM) ⚡"]

    style MD fill:#ede7f6,stroke:#512da8,stroke-width:2px
    style AST fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style PDF fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
    style DOCX fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
    style EPUB fill:#fff9c4,stroke:#fbc02d,stroke-width:1.5px
    style HTML5 fill:#b2dfdb,stroke:#00796b,stroke-width:1.5px
    style LATEX fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff

📖 Fundamentos e Aplicação

O Pandoc é considerado o “canivete suíço” da conversão de documentos. Em vez de traduzir diretamente de um formato para outro em um emaranhado de $N \times M$ conversores, o Pandoc utiliza uma Árvore de Sintaxe Abstrata (AST) intermediária em Haskell: o leitor (reader) converte a entrada em AST e o escritor (writer) gera o formato alvo.

Comandos Essenciais do Pandoc:

  1. Markdown para PDF com Numeração de Páginas:
    pandoc manual.md -o manual.pdf --pdf-engine=weasyprint --toc -N
    
  2. Markdown para Microsoft Word com Folha de Estilos:
    pandoc especificacao.md --reference-doc=modelo_corporativo.docx -o especificacao.docx
    
  3. Filtros Lua: Scripts personalizados que interceptam a AST para modificar elementos antes da renderização (ex.: adicionar alertas customizados ou converter caminhos de imagens).