🔄 Cap 17: Pandoc e Conversão Universal de Documentos - Exemplos Práticos
Demonstrações práticas de compilação multi-formato (PDF, DOCX, EPUB) e scripts de automação com Pandoc.
🗺️ Fluxo de Transformação via Árvore de Sintaxe Abstrata (AST)
flowchart LR
INPUT["Entrada (Markdown, GFM, LaTeX)"]
--> READER["Pandoc Reader"]
READER --> AST["Árvore de Sintaxe Abstrata (AST)"]
AST --> LUA["Filtros Lua Customizados (Opcional)"]
LUA --> WRITER["Pandoc Writer"]
WRITER --> OUTPUT["Saída (PDF, DOCX, EPUB, Man Pages, HTML5) ⚡"]
style INPUT fill:#ede7f6,stroke:#512da8,stroke-width:2px
style READER fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style AST fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style LUA fill:#fff9c4,stroke:#fbc02d,stroke-width:1.5px
style WRITER fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style OUTPUT fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
📄 Exemplo 1: Makefile para Automação de Builds com Pandoc
# Makefile para Documentação Técnica
SRC = $(wildcard docs/*.md)
TITLE = "Manual Corporativo de Boas Práticas"
AUTHOR = "Engenharia de Plataforma"
all: pdf docx epub
pdf:
pandoc $(SRC) -o dist/manual.pdf \
--toc --toc-depth=3 -N \
--pdf-engine=weasyprint \
--metadata title=$(TITLE) \
--metadata author=$(AUTHOR)
docx:
pandoc $(SRC) -o dist/manual.docx \
--toc --toc-depth=2 \
--metadata title=$(TITLE)
epub:
pandoc $(SRC) -o dist/manual.epub \
--toc \
--epub-cover-image=assets/capa.png \
--metadata title=$(TITLE)
clean:
rm -rf dist/*
📄 Exemplo 2: Linha de Comando Direta para Geração de Artigo em PDF
pandoc artigo.md \
--from=markdown+yaml_metadata_block \
--to=pdf \
--pdf-engine=xelatex \
--variable geometry:margin=2.5cm \
--variable fontsize=11pt \
--variable mainfont="DejaVu Sans" \
-o artigo_publicado.pdf