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.html
com 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! 🚀