🔄 Cap 17: Pandoc: O Canivete Suíço Universal de Conversão de Documentos (PDF, DOCX, EPUB e LaTeX)
🗺️ 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:
- Markdown para PDF com Numeração de Páginas:
pandoc manual.md -o manual.pdf --pdf-engine=weasyprint --toc -N - Markdown para Microsoft Word com Folha de Estilos:
pandoc especificacao.md --reference-doc=modelo_corporativo.docx -o especificacao.docx - Filtros Lua: Scripts personalizados que interceptam a AST para modificar elementos antes da renderização (ex.: adicionar alertas customizados ou converter caminhos de imagens).