Migrando blog estático do Jekyll para o Hugo

Quando pensei em criar esse blog, um dos pré-requisitos era ter agilidade e facilidade com o setup. Eu queria focar no que realmente importava: escrever. E nada melhor do que escrever em markdown, que é minha linguagem de markup favorita! Adoro a facilidade em ler, a simplicidade em formatar o texto e a leveza do formato. Com isso em mente, procurei algumas alternativas para colocar meu blog no ar.

Jekyll vem para o resgate!

Em minhas pesquisas notei que o pessoal gostava muito de usar Jekyll. O Jekyll, que é escrito em Ruby, inclusive é a engine por trás do Github Pages - que inclusive era um dos caminhos iniciais que eu estava buscando para publicar meu conteúdo. No geral, Jekyll pareceu bem popular e encontrei diversos exemplos e templates já criados para criar meu próprio blog. Ao configurar a primeira versão do blog, não tive grandes dificuldades. Confesso que a parte mais complicada foi me adaptar com liquid, que é a engine de templates usada pelo Jekyll. Liquid usa uma combinação de objetos, tags e filtros para controlar o conteúdo que será mostrado. Então, por exemplo, a minha página padrão do blog era um arquivo chamado default.htmlcom o seguinte conteúdo:

---
layout: default
permalink: /404.html
---
<!DOCTYPE html>
<html>
  {% include head.html %}
  <body>
    {% include header.html %}
    <div class="page-content">
        {{ content }}
    </div>
    {% include footer.html %}
  </body>
</html>

Na prática, é aquele tipo de configuração que não é feita múltiplas vezes: configurou uma vez, o dinamismo da ferramenta te possibilita não precisar realizar mais ajustes no template. Com isso, o restante da configuração geral do blog foi bem tranquila, e a medida que eu ia escrevendo novos posts me preocupava somente com o texto em si - ainda mais considerando a engenhosidade de buildar e fazer deploy utilizando o github actions ⚡️

Algum tempo depois…

Com o passar do tempo, percebi algumas peculiaridades do Jekyll. Uma delas foi a incompatibilidade que enfrentei com o Ruby: Lembro que atualizei a versão do Ruby na minha máquina para outro projeto e acabei quebrando o funcionamento do Jekyll local. Depois de muita pesquisa vi que ocorreu um certo drama com o fato que a principal gem que sincroniza com o Github Pages não tinha planos de dar suporte para o Jekyll 4. 👀 Outro ponto que não me agradou foi o quão custoso era instalar o ambiente em Ruby, além do estilo de gerenciamento de dependências que o Jekyll fazia - algo que me soava desnecessariamente complicado.

Fiquei um bom tempo sem postar - life happens! 🥸 - mas recebi um lindo incentivo em formato de conta bem salgada para pagar com o valor desse domínio. Fiquei com preguiça em voltar pro Jekyll considerando todos os pontos anteriores, então…

Hora de fazer a reforma!

Pesquisei sobre novos frameworks e encontrei o Hugo - que afirma ser o “framework mais rápido do mundo para construção de sites”. Li a documentação e me pareceu bem simples, e ao mesmo tempo, bem similar com o que eu já havia me acostumado com o Jekyll. O Hugo é open source e escrito em Go (que eu até aprendi recentemente), e promete bastante flexibilidade na criação de conteúdo.

Então, com muita coragem no coração, decidi encarar a migração. Usei a estratégia de criar uma nova pasta e configurar o novo projeto Hugo do zero, adicionando as funcionalidades que eu mais queria uma por uma. Escolhi um novo tema, configurei e fiz pequenos ajustes até ficar do meu agrado, depois fui adicionando minhas páginas com os posts quase que uma a uma. Como elas já estavam em markdown, foi bem tranquilo - tive que fazer pequenos ajustes convertendo algumas tags liquid para o novo formato correto.

Uma das partes mais difíceis desse processo de migração foi configurar as linguagens múltiplas do blog, já que eu escrevo os posts em ambos inglês e português. Mas para resolver esse problema foi até simples: Organizar meu conteúdo e fazer a seguinte configuração no arquivo hugo.toml:

[languages]
  [languages.en]
    contentDir = 'content/en/'
    languageName = '🇬🇧 English'
    weight = 1
  [languages.pt-BR]
    contentDir = 'content/pt_BR/'
    languageName = '🇧🇷 Português'
    weight = 2

Com isso e mais alguns ajustes no arquivo de deploy, o meu blog estava on - e realmente mais rápido do que nunca! 🚀

Licensed under CC BY-NC-SA 4.0
Última atualização em mai. 06, 2025 22:00 UTC
Criado com Hugo
Tema Stack desenvolvido por Jimmy