Séries de artigos com HUGO
Índice, apresentação, navegação
Um problema geral quando há uma série de posts relacionados entre si é que o blog fica saturado com esses posts, todos similares e relacionados. Se o eventual ou hipotético leitor não está interessado nesse tópico particular, não vê outra coisa que o induza a continuar lendo.
O exemplo disso é a série da lista de componentes do FT101: todos os artigos dessa lista são similares entre si.
Mesmo para o leitor interessado no tema, é tedioso e pouco atrativo apresentar um sumário que tem dez artigos todos iguais, todos seguidos.
Apresentação
Uma possível solução é apresentar apenas um artigo representativo, o “índice” da série, e que este seja o acesso à mesma. No entanto, isso apresenta o problema de que se a série for ampliada com mais artigos, ou algum dos artigos da série for editado/atualizado, não seria visível, já que o sumário não apresenta artigos individuais da série.
Com essas ideias implementei o sistema atual: a série é apresentada como um único post que é mostrado em seu lugar cronologicamente correspondente tanto no sumário quanto nas visualizações de categorias (taxonomias HUGO…), tags, etc. Este “post” é especial, representa o cabeçalho da série, é o ponto de acesso à mesma. Isso resolve o aspecto de “poluição” ou sequestro do sumário quando há muitos artigos seguidos e similares.
Para resolver o problema de como apresentar a série quando é de alguma forma atualizada, por edição ou adição de um artigo, o campo “date:” do artigo cabeçalho é atualizado: isso “flutua” esse artigo para um lugar mais novo e mostra a info relevante com uma decoração ⚡NOVO.
Eu considero esta solução não diria elegante, mas um pouco mais limpa.
Índice
O índice é um post com uma prop “series_role” no Front Matter que é usada para o título da série e como índice. Este é o post cuja data será atualizada quando algo mudar na série.
Isso último é feito automaticamente usando git hooks. Provavelmente falarei mais sobre isso depois.
Navegação
O partial de navegação inicialmente coloquei no cabeçalho de cada artigo. Ocupa muito espaço. Por enquanto, a solução é um widget na barra lateral, que só aparece quando o artigo é parte de uma série. Não estou descontente com este mecanismo.
Tem um inconveniente que ainda não resolvi, que é que a sidebar não é fixa, portanto se o artigo é longo, coisa frequente, é preciso voltar para cima para navegar.
Vamos ver.
Futuro
Vou deixar um tempo para ir vendo que experiência tenho e que ideias me produz, mas falta ajuste. Uma possível melhoria é colocar o novo artigo da série no lugar do índice, mas isso não serve para um artigo antigo editado, então tenho que resolver isso.
Tenho previsto implementar outro git hook para traduzir automaticamente os artigos novos com algum agente LLM. Veremos o que acontece.
Conclusão
Espero que essas mudanças melhorem a UX. Pelo menos a implementação de tudo isso me serviu para entender melhor o framework e a tecnologia subjacente, e para poder apreciar a inteligência e elegância por trás do Hugo ↗️.