O que é o slide in the woods
slide in the woods é uma biblioteca open-source para criar apresentações usando Markdown e TypeScript. O diferencial é que você escreve slides como se fosse um documento técnico, e o renderizador converte tudo em HTML interativo no navegador. Achei útil quando precisei apresentar algo técnico sem perder tempo formatando slides manualmente em ferramentas como PowerPoint ou Google Slides.
slide in the woods: instalação e primeiros passos
A instalação é simples. Você precisa ter Node.js 18 ou superior instalado. Rode npm install -g slide-in-the-woods para instalar globalmente, ou use npx direto na pasta do projeto. Depois, crie um arquivo slides.md com o conteúdo dos seus slides. Cada slide começa com uma linha de nível 2 (dois traços ##) ou uma quebra de página com ---. Para rodar localmente, basta executar sitw serve na pasta do projeto. Um servidor dev sobe na porta 3000 por padrão e você abre no navegador. Alterações no Markdown são detectadas automaticamente e o slide é re-renderizado em segundos. Não precisa reiniciar nada.
O formato de slides segue uma sintaxe própria inspirada no remark, mas com extensões adicionais. Blocos de código ganham highlighting automático, tabelas são renderizadas como HTML, e LaTeX funciona com MathJax incluído. O tema padrão é limpo, fundo escuro com texto claro, mas você pode sobrescrever via theme.css personalizado na pasta assets/.
👉 Clique no botão abaixo para saber mais sobre o assunto!
um problema real que encontrei na prática
Num projeto recente, precisei usar slides com múltiplas colunas e um diagrama SVG inline. O motor de renderização padrão do slide in the woods não reconhece blocos HTML arbitrários dentro de Markdown — ele filtra tags estranhas por segurança. O resultado era um slide quebrado, com partes do diagrama sumindo e o layout desalinhado. A solução que encontrei foi usar o recurso %%raw%% disponível nas versões 3.2+. Você envolve o HTML bruto dentro desse delimitador e ele é passado direto para o DOM sem sanitização. Funciona, mas claramente compromete a portabilidade se você migrar para outra ferramenta depois. Deixa isso anotado na documentação do projeto se precisar lembrar depois. Usei também um hack temporário com plugins customizados em remark-config.js para injetar classes CSS específicas nos blocos de código, algo que o tema padrão não oferece.
limitações que ninguém mentiona
O slide in the woods é bom para apresentações técnicas pequenas, mas tem gargalos reais. O suporte a transições entre slides é básico — você tem fade e slide horizontal, mas nada mais elaborado. Se seu público espera animações complexas, vai ficar limitado. A exportação para PDF também é uma camada por cima do print do navegador, então elementos posicionados absolutamente podem sair da área de impressão. O versionamento de dependências é outro ponto. Atualizei o projeto de uma vez e o motor de renderização quebrou compatibilidade com temas que eu já tinha criado. Fica registrado: sempre mantenha uma cópia do package-lock.json junto com os slides. Também notei que slides muito longos (acima de 80 linhas) causam lentidão perceptível no servidor dev, especialmente se tiverem muitos blocos de código com highlight. Divida em partes menores se perceber slowdown.
configuração avançada rápida
O arquivo sitw.config.js controla praticamente tudo. Você define autor, título, tema, plugins remark personalizados, e opções de build. Um detalhe útil: o campo output permite gerar múltiplos formatos — HTML, PDF, e até um diretório estático para deploy. A flag --watch no comando serve já é padrão, mas se você estiver num container Docker, precisa adicionar --poll porque o inotify não funciona bem dentro de containers. Para quem trabalha com apresentação remota, o modo --remote expõe uma interface de controle que permite avançar/slides de qualquer dispositivo na mesma rede. Funciona bem, mas a sincronização tem latência de cerca de 200ms. Em redes WiFi congestionadas, esse número sobe. Recomendo Wired se for apresentar ao vivo com esse recurso.
Se o seu fluxo envolve colaboração em equipe, o slide in the woods não tem versionamento integrado de conteúdo. Todo mundo edita o mesmo repositório Git, e conflitos em arquivos Markdown longos são inevitáveis. Configure branches por slide ou use uma ferramenta como Overleaf se a colaboração em tempo real for essencial. É trabalhoso, mas evitou dores de cabeça no meu último projeto.