Logo

dev-resources.site

for different kinds of informations.

[pt-BR] Hugo: a forma mais rápida de fazer um site

Published at
2/18/2024
Categories
ptbr
hugo
braziliandevs
Author
lelepg
Categories
3 categories in total
ptbr
open
hugo
open
braziliandevs
open
Author
6 person written this
lelepg
open
[pt-BR] Hugo: a forma mais rápida de fazer um site

No ano passado, eu me propus um desafio: montar uma oficina que envolvia programação e desenvolver uma aplicação para servir como material de apoio para essa oficina. A ideia é que os participantes da oficina pudessem utilizar essa aplicação para ver algumas explicações sobre o exemplo que seria apresentando, mas principalmente, copiar o código de cada exemplo.

Isso me pareceu uma ótima ideia, afinal a oficina não era introdutória, e as pessoas participantes deveriam ter conhecimento prévio, mas eu fiz uma escolha muito errada: resolvi implementar essa aplicação na mão, usando meus frameworks de desenvolvimento web e criando componentes do zero. Isso foi errado por vários motivos, e talvez eu até escreva um artigo específico sobre isso por aqui.

Confesso que a aplicação não ficou muito boa, mas funcionou bem o suficiente para que eu começasse a planejar uma segunda versão, e é nessa segunda versão que o personagem principal do nosso artigo entra: o Hugo, que não é um programador sênior disposto a dar dicas de programação, mas sim um framework para geração de sites estáticos que tem despertado a minha curiosidade.

🤔 O que é o Hugo?

O Hugo é uma ferramenta desenvolvida utilizando a linguagem Golang, também conhecida como Go, para a criação de sites estáticos, que são sites cujo conteúdo não muda, ou seja, é fixo. Em outras palavras, o conteúdo do site é definido durante o desenvolvimento e só pode ser alterado mudando o código.

Isso pode até parecer uma abordagem meio ultrapassada considerando a popularidade de sites dinâmicos, que apresentam conteúdos diferentes para cada usuário, mas ainda existem muitos casos onde essa abordagem se encaixa perfeitamente, como blogs, portifólios, e é claro, a aplicação que eu queria criar para minha oficina.

🤔 Por que usar o Hugo?

Como Dev frontend, confesso que no início tive uma certa resistência com relação ao Hugo, afinal, se eu queria criar um site, iria criar o MEU site, com o MEU código e mostrar as MINHAS habilidades. Essa foi a ideia na primeira versão, e era também a ideia na segunda. Até eu perceber o tempo que estava gastando para implementar coisas muito simples, com o intuito de deixá-las perfeitas. Então, achei o Hugo e resolvi dar uma chance a ele. Em outras palavras, cansei de reinventar a roda.

Fazendo uma pesquisa rápida, você consegue encontrar uma série de vantagens que o Hugo promove com relação à implementação de sites "na mão", e a principal delas é a velocidade de compilação. Quando falamos de desenvolvimento de sites que necessitam de frameworks, por exemplo, acabamos enfrentando muitas vezes um tempo longo de compilação da aplicação. Com o Hugo, a compilação foi quase instantânea. Fiquei bem impressionada com a velocidade da ferramenta, especialmente quando comparamos com o Next.js, que era o framework que estava usando na primeira versão.

Além disso, você também encontra outros pontos positivos para a utilização do Hugo, sendo um deles a velocidade de desenvolvimento, já que o Hugo já apresenta uma estrutura pronta para uso, o que permite que sua aplicação esteja funcionando em questão de minutos.

Outros pontos positivos dizem respeito à manutenção do site que se torna extremamente simples considerando que muitas páginas, no fim das contas, são apenas arquivos Markdown, o que é outro ponto que para o meu caso, foi extremamente positivo, afinal eu gostaria de escrever um pouco de texto e um pouco de código nessa aplicação.

No fim das contas, na minha experiência, o Hugo permite a criação de sites de uma maneira extremamente rápida, especialmente se comparado com outros frameworks que já tive contato, e a implementação e manutenção desses sites também é muito simples.

Mudando poucas linhas de código em um arquivo de configuração, por exemplo, você consegue alterar totalmente a interface da sua aplicação, o que nunca vi ser feito de uma forma tão rápida e sem riscos de efeitos colaterais na interface da aplicação.

🤔 Como se desenvolve uma aplicação com Hugo?

Para desenvolver uma aplicação com Hugo, é preciso fazer o download da ferramenta, criar um projeto, baixar um tema e começar a criar o conteúdo do seu site. O processo padrão são esses três passos mesmo, mas é claro que outros passos podem ser adicionados conforme a necessidade.

Um conceito muito importante que precisamos ter em mente quando falamos do Hugo, é o conceito de Tema, que nada mais é do que uma implementação de um layout completo que pode ser importado para sua aplicação com poucas linhas de código.

Depois de aplicar um tema ao seu site, você pode definir algumas configurações, ou parâmetros do tema no arquivo de configuração do site para fazer com que ele se modifique para atender as suas necessidades, ou então pode editar o tema manualmente, o que requer um entendimento mais profundo de como o Hugo funciona.

Muitos temas podem ser encontrados na galeria do Hugo, que pode ser acessada clicando aqui.É muito importante salientar que cada tema tem suas peculiaridades e possibilidades de personalização específicas, então é sempre importante ler a documentação do tema escolhido para ter mais informações acerca dos benefícios e das possibilidades que cada um tem.

Com relação ao conteúdo da aplicação, toda aplicação Hugo possui uma pasta chamada content onde o conteúdo do site, ou as páginas do site, são armazenadas. Um novo conteúdo pode ser adicionado facilmente através do terminal e são majoritariamente arquivos Markdown. O Hugo também aceita arquivos HTML que eu costumo utilizar para casos específicos onde quero adicionar algum código JavaScript na aplicação.

Cada arquivo de conteúdo do Hugo contém um cabeçalho com alguns metadados que o Hugo usa para renderizar a página. Esse cabeçalho é chamado de Front Matter, caso você queira pesquisar mais sobre o assunto. Eventualmente, algumas alterações precisam ser feitas nesses metadados, mas não vou entrar em detalhes disso agora.

Também é importante dizer aqui que o Hugo utiliza uma organização específica para os arquivos, havendo uma pasta para os conteúdos, outra para layouts, outra para temas, outra para arquivos estáticos, etc., o que acaba gerando uma certa familiaridade conforme utilizamos mais com a ferramenta.

⌛ Considerações finais

Nesse artigo, busquei trazer um pouco da motivação que me levou a ir atrás do Hugo, e algumas características dessa ferramenta que acho que podem ser muito úteis para algumas pessoas desenvolvedoras, assim como foi pra mim.

Acho que ficou perceptível ao longo do artigo o quão encantada eu estou por essa tecnologia, mas e você, querida pessoa que terminou de ler esse artigo? Já conhecia o Hugo? Já o usou em algum projeto? Como foi a sua experiência? Quais pontos positivos, ou negativos, você enxerga nessa ferramenta? Deixe aqui nos comentários!

Té mais. 🧑‍💻

ptbr Article's
30 articles in total
Favicon
Parte 1: Introdução ao dbt
Favicon
Por que eu não uso bibliotecas de gerenciamento de estado no React
Favicon
C# 13 novidades
Favicon
Estudando - Linguagem Go - Dia 01
Favicon
Estudando - Linguagem Go - Dia 02
Favicon
https://oss.gallery/ - Projetos Open Source
Favicon
Teste em Dados - Básico
Favicon
if-else & early return
Favicon
Do Caos à Clareza: Explorando a Modelagem de Software
Favicon
Paralelismo e Concorrência 101
Favicon
Pyenv para Iniciantes.
Favicon
[pt-BR] Hugo: Criando sua primeira aplicação
Favicon
Introdução ao desenvolvimento Mobile: Guia para Iniciantes
Favicon
Estruture o ser arquivo de design no Figma grátis
Favicon
+ Qualidade no código legado: A Regra do Bom Escoteiro
Favicon
Gráfico de Halteres [R-ggplot2]
Favicon
[pt-BR] Hugo: a forma mais rápida de fazer um site
Favicon
Aprofundando os Conhecimentos em Testes de Software: Diferenciando Tipo e Nível de Teste
Favicon
Mecanismos de Coordenação: Locks, Mutexes e Semáforos
Favicon
10 métodos de strings em JavaScript que você deveria saber
Favicon
Gerando certificado SSL com certbot na Oracle Cloud Infrastructure
Favicon
Como simular APIs online sem configurar um servidor
Favicon
23 métodos de strings que todo desenvolvedor Python deve saber
Favicon
Simular corpos de REQUISIÇÃO automaticamente para acelerar a depuração de APIs
Favicon
Anotando: Plugins da comunidade que utilizo no Obsidian
Favicon
Anotando: Plugins embutidos que utilizo no Obsidian
Favicon
Tomando notas como desenvolvedor de software
Favicon
[pt-BR] Criando um sistema operacional (quase) do zero
Favicon
[ptbr]Fazendo de uma comunidade a sua segunda casa.
Favicon
[ptbr] Entendendo programação reativa e imperativa com Naruto.

Featured ones: