Introdução
Manter um currículo profissional atualizado e adaptável para várias aplicações pode ser desafiador. Este artigo demonstra como usar o Markdown para o conteúdo e o Pandoc para a conversão simplifica o processo, permitindo que você mantenha um único arquivo fonte limpo que se transforma sem esforço em saídas PDF, DOCX ou HTML refinadas.
Por que Markdown e Pandoc?
Quando se trata de gerenciamento de currículos, usar Markdown e Pandoc oferece várias vantagens:
- Controle de Versão: Seu currículo se torna facilmente rastreável no Git e você pode usar tags ou branches para preservar as versões que foram enviadas para uma vaga de emprego;
- Sintaxe Simples: A sintaxe Markdown é simples e legível, tornando a edição e manutenção do seu currículo direta;
- Múltiplos Formatos: Atualize seu currículo em um arquivo Markdown central e gere múltiplos formatos (PDF, DOCX, HTML, etc.). A fonte pode até ser renderizada diretamente em plataformas como o GitHub;
- Separação de Preocupações: Mantenha o conteúdo do seu currículo limpo em Markdown enquanto gerencia a formatação externamente por meio de templates. Isso garante um estilo consistente em todos os formatos gerados, ao contrário de documentos formatados manualmente, onde os estilos podem divergir com o tempo;
- Suporte a Múltiplos Idiomas: Facilite currículos em vários idiomas, gerenciando diferentes versões de idioma do seu conteúdo mais facilmente;
- Automação com Filtros: Estenda a funcionalidade com filtros Pandoc (escritos em Lua ou Python) para automatizar tarefas como citações, formatação personalizada ou inclusão de conteúdo condicional.
Configurando o Ambiente
Para começar, você precisará do Pandoc e de um mecanismo de renderização de PDF como LaTeX, wkhtmltopdf ou WeasyPrint. Observe que cada mecanismo tem dependências específicas; por exemplo, usar LaTeX exige a instalação de vários pacotes (por exemplo, amsfonts
, amsmath
, graphicx
, hyperref
, babel
, etc.).
Para evitar sobrecarregar seu sistema com inúmeras dependências, considere executar o Pandoc dentro de um contêiner Docker. Essa abordagem isola o ambiente, permitindo fácil acesso a templates, fontes e ativos locais por meio de volumes Docker.
Dito isto, neste artigo, não abordarei a instalação do Pandoc e me concentrarei em usá-lo em um contêiner.
O Pandoc possui várias variações de imagem de contêiner (aqui está a lista oficial), mas eu uso pandoc/extra
, que vem com LaTeX e dependências instaladas.
Puxe a imagem:
docker pull pandoc/extra
E toda vez que você executar o Pandoc, use um docker run --rm
para iniciar um contêiner e removê-lo posteriormente:
docker run --rm -v "$(pwd):/data" -u $(id -u):$(id -g) pandoc/extra {pandoc-params}
Exemplo:
docker run --rm -v "$(pwd):/data" -u $(id -u):$(id -g) pandoc/extra Resume.md -o Resume.pdf
ℹ️ Para fins de simplicidade, pelo resto do artigo, usarei apenas o comando
pandoc {params}
.
Criando Seu Currículo em Markdown
Comece criando um arquivo resume.md
. Aqui está uma estrutura fundamental para você começar:
|
|
Gerando Seu Currículo
Use os seguintes comandos Pandoc para converter seu currículo Markdown em vários formatos:
Para PDF
pandoc resume.md -o resume.pdf
Para DOCX
pandoc resume.md -o resume.docx
Para HTML
pandoc resume.md -o resume.html -s
Templates
Os templates Pandoc oferecem diversos estilos e funcionalidades. Selecione um que corresponda à sua estética desejada e necessidades de personalização. As escolhas populares incluem Eisvogel para LaTeX/PDF e várias opções para HTML/CSS.
Se você pretende gerar em mais de um formato, você precisa escolher um template que suporte todos eles ou usar um template para cada formato.
Usando um template embutido ou instalado (por exemplo, Eisvogel para PDF)
Para usar um template embutido, passe seu nome no parâmetro template
:
pandoc resume.md -o resume.pdf --template eisvogel
Usando um arquivo de template personalizado dentro de um contêiner
Para usar um template personalizado dentro de um contêiner, crie um volume mapeando uma pasta com o contêiner e passe o caminho relativo no parâmetro template
:
docker run --rm \
--volume "$(pwd):/data" \
--volume "$(pwd)/custom-templates:/templates" \
--user "$(id -u):$(id -g)" \
pandoc/extra \
resume.md \
-o resume.pdf \
--template /templates/my-custom-template.latex
Parâmetros Frontmatter
O Pandoc utiliza variáveis definidas em um bloco de metadados YAML (frontmatter) no início do seu arquivo Markdown. Os templates geralmente definem variáveis personalizadas para controlar o layout, estilo ou adicionar informações de cabeçalho/rodapé – consulte a documentação específica do template para obter detalhes.
Aqui está um exemplo de variáveis usadas pelo Pandoc:
|
|
Estilo Personalizado (com LaTeX)
Para controle refinado da saída PDF via LaTeX, você pode incluir trechos de código LaTeX personalizados. Crie um arquivo (por exemplo, styling.tex
) com suas personalizações:
|
|
Em seguida, inclua este arquivo durante a conversão usando a flag --include-in-header
:
pandoc resume.md -o resume.pdf --template eisvogel --include-in-header=styling.tex
Da mesma forma, para saída HTML, você pode fornecer um arquivo CSS personalizado usando a flag --css
.
Dicas e Melhores Práticas
- Mantenha Simples: Markdown deve ser legível. Concentre-se na estrutura do conteúdo;
- Controle de Versão: Use o Git para rastrear alterações, experimentar com branches e marcar versões enviadas aos empregadores;
- Separe Conteúdo e Estilo: Gerencie o estilo externamente usando includes/templates LaTeX para PDF ou CSS para HTML para manter seu Markdown focado no conteúdo;
- Verifique a Saída: Sempre verifique como seu currículo aparece em cada formato (PDF, DOCX, HTML) para garantir a correção e a aparência desejada;
- Use Templates e Variáveis: Aproveite diferentes templates e use variáveis de metadados e filtros Pandoc para gerar facilmente versões de currículo personalizadas para aplicações de emprego específicas sem duplicar o conteúdo principal.
Explorando Mais Templates
Além do popular template Eisvogel, muitas outras opções existem no GitHub, oferecendo diferentes estilos e recursos. Alguns usam YAML em vez de Markdown para o conteúdo.
Aqui estão alguns exemplos:
- john-bokma/resume-pandoc: Baseado em LaTeX, usa metadados YAML;
- roguh/pandoc-resume: Template simples com scripts para geração de PDF, DOCX e HTML. Inclui CSS e DOCX de referência;
- plain-plain-text/simple-cv: Template minimalista usando Bootstrap para HTML e memoir para LaTeX/PDF;
- florianschwanz/awesome-cv-pandoc: Integra o bem conceituado template LaTeX “Awesome CV” com Pandoc;
- bmschmidt/CV-pandoc-healy: Concentra-se em separar dados YAML do estilo LaTeX;
- kjhealy/pandoc-templates: Uma coleção de templates Pandoc para gerar documentos HTML, LaTeX e PDF
- samijuvonen/pandoc_resume_template: Usa YAML para conteúdo, suporta múltiplas saídas (PDF, HTML, Markdown, TXT) via XeLaTeX e inclui um Makefile.
Ao escolher um template, considere seus formatos de saída, opções de personalização, dependências e documentação.
Referências
- Documentação do Pandoc
- Guia Markdown
- Templates LaTeX
- Tópico GitHub: pandoc-templates - Descubra mais templates.