🧩 Exercícios: Apresentações com Reveal.js e Marp
Extra Documentação Técnica com Markdown • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 18.1 — Deck de 3 Slides com Reveal.js
Contexto: Construir um arquivo Markdown configurado com layout: slide contendo exatamente 3 slides separados por ---, incluindo título, tópicos e notas do orador.
Requisitos de Execução:
- Frontmatter com
layout: slideetitle: "Apresentação Tech". - Slide 1 com título H1 e subtítulo.
- Slide 2 com lista com marcadores e código Python.
- Incluir uma nota de apresentador no Slide 2 usando
Note: ....
Resultado Esperado
---
layout: slide
title: "Apresentação Tech"
---
# Arquiteturas Modernas de Backend
**Inovações em Microsserviços e Cloud Native**
---
## Slide 2: Concorrência em Go
```go
go func() {
fmt.Println("Executando em Goroutine!")
}()
Note: Lembrar de explicar aos participantes a diferença entre threads de SO e green threads do Go.
## 📤 Instruções de Entrega (Microsoft Teams)
1. Salve o arquivo como: `Atividade_18_1_SeuNome.md`
2. Envie na tarefa: `Atividade Cap 18 - Reveal.js e Marp`
<details markdown="1">
<summary>🔑 Gabarito de Código & Solução Comentada</summary>
```markdown
---
layout: slide
title: "Apresentação Tech"
---
# Arquiteturas Modernas de Backend
**Inovações em Microsserviços e Cloud Native**
---
## Slide 2: Concorrência em Go
```go
go func() {
fmt.Println("Executando em Goroutine!")
}()
Note: Lembrar de explicar aos participantes a diferença entre threads de SO e green threads do Go.
*Comentário:* Ao pressionar a tecla 'S' durante a apresentação do Reveal.js, a janela do orador exibe o cronômetro, próximo slide e as anotações do bloco `Note:`.
</details>
---
## 🎯 Nível 2: Prática
### Problema 18.2 — Navegação Bidimensional 2D (Slides Verticais)
Configure um deck de slides Reveal.js que utilize navegação horizontal para temas principais (`---`) e navegação vertical descendente (`--`) para detalhamentos técnicos do mesmo tema.
<details markdown="1">
<summary>🔑 Gabarito de Código & Solução Comentada</summary>
```markdown
# Tema Principal: Bancos de Dados
---
## Relacionais (SQL)
Visão geral de ACID e integridade referencial.
--
### Detalhe: PostgreSQL e MVCC
Como o Multi-Version Concurrency Control isola transações sem lock de leitura.
---
## Não-Relacionais (NoSQL)
Visão geral do Teorema CAP e eventual consistency.
</details>
🎯 Nível 3: Integração
Problema 18.3 — Configuração de Apresentação Executiva com Marp Core
Crie um arquivo compatível com o ecossistema Marp contendo diretivas globais no frontmatter (marp: true, theme: gaia, paginate: true, header, footer) e exportação para PDF.
🔑 Gabarito de Código & Solução Comentada
---
marp: true
theme: gaia
_class: lead
paginate: true
header: "Roadmap de Engenharia 2026"
footer: "Confidencial • Uso Interno"
backgroundColor: "#f5f5f5"
---
# Estratégia de Engenharia de Plataforma
### Transformação Digital e Eficiência Operacional
---
## Metas do Trimestre (Q3)
- Migração de 100% dos serviços legados para Kubernetes
- Redução do tempo de build de CI/CD para menos de 3 minutos
- Adoção corporativa do protocolo aberto MCP
🎯 Nível 4: Desafio
Problema 18.4 — Automação de Compilação de Slides para PDF no CI/CD
Construa um script de automação em bash para GitHub Actions que use @marp-team/marp-cli com o motor Chromium headless para compilar todos os arquivos de slides/*.md em arquivos .pdf e publicá-los como release assets no GitHub.
🔑 Gabarito de Código & Solução Comentada
#!/usr/bin/env bash
# build_all_slides_pdf.sh
set -e
mkdir -p dist/pdf_slides
for slide in slides/*.md; do
nome_base=$(basename "$slide" .md)
echo "Compilando apresentação: $slide -> dist/pdf_slides/${nome_base}.pdf"
npx @marp-team/marp-cli "$slide" --pdf --allow-local-files -o "dist/pdf_slides/${nome_base}.pdf"
done
echo "✅ Todos os slides foram compilados em PDF vetorial com sucesso!"