Back-End

28 jul, 2016

Olá, Hugo! Adeus, Jekkyl!

Publicidade

Depois de muito tempo usando o Jekyll, eu resolvi mudar de ferramenta para gerenciar o meu site pessoal. Talvez por um reflexo do meu trabalho na newsletter A semana Go, e eu acabei optando pelo excelente Hugo, escrito na linguagem do Google.

A migração do Jekyll foi bem tranquila, graças a documentação oficial e encontrei uma boa gama de temas para escolher.

O principal motivo para esta mudança foi a diferença de performance para gerar o site. Enquanto o Jekyll leva mais de 40 segundos para converter os 528 posts de markdown para html, o mesmo processo leva 600 ms com o Hugo. E a instalação do Hugo é bem mais simples e rápida, bastando um:

brew install hugo

no MacOSX e tudo pronto.

Continuo usando o S3 para hospedar o site da mesma forma que eu fazia com a versão anterior, o que é a forma mais prática e barata para manter um site estático. Para isso, eu instalei o pacote awscli usando o:

brew install awscli

O primeiro passo é configurar os dados de conexão com a Amazon executando:

aws configure

E respondendo as perguntas solicitadas pelo script.

Para facilitar o processo, eu criei um shell script com os comandos para o deploy. Usei este post como inspiração e criei o deploy.sh:

BUCKET_NAME=eltonminetto.net 

# Build a fresh copy 
hugo 

# Copy over pages - not static js/img/css/downloads aws s3 sync --acl "public-read" public/ s3://$BUCKET_NAME/ --exclude 'img' --exclude 'js' --exclude 'css' --exclude 'post' 

# Ensure static files are set to cache forever - cache for a month --cache-control "max-age=2592000" 
aws s3 sync --cache-control "max-age=2592000" --acl "public-read" public/img/ s3://$BUCKET_NAME/img/ 
aws s3 sync --cache-control "max-age=2592000" --acl "public-read" public/css/ s3://$BUCKET_NAME/css/ 
aws s3 sync --cache-control "max-age=2592000" --acl "public-read" public/js/ s3://$BUCKET_NAME/js/ -

Estou gostando do resultado e devo incrementar o site com algumas outras features nos próximos dias, então, qualquer sugestão de melhoria ou apontamento de erro é sempre bem-vindo.

p.s: A verdadeira razão é que eu odiava escrever “jekyl”, “jekkyl”, até acertar o comando certo.