<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hugo on /var/log/janio</title><link>https://devops.sarmento.org/tags/hugo/</link><description>Recent content in Hugo on /var/log/janio</description><generator>Hugo</generator><language>pt-BR</language><lastBuildDate>Wed, 13 May 2026 21:14:59 +0000</lastBuildDate><atom:link href="https://devops.sarmento.org/tags/hugo/index.xml" rel="self" type="application/rss+xml"/><item><title>Hugin on steroids: tags, links e edição numa só TUI</title><link>https://devops.sarmento.org/posts/hugin-on-steroids-unificando-tags-links-e-edicao-numa-so-tui/</link><pubDate>Sat, 18 Apr 2026 13:13:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/hugin-on-steroids-unificando-tags-links-e-edicao-numa-so-tui/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/post/hugin-tags-e-resumos-para-hugo-com-ia/"&gt;post sobre o Hugin&lt;/a&gt; apresentei a ferramenta que uso para gerar tags e resumos nos meus blogs Hugo. Duas semanas depois, no &lt;a href="https://devops.sarmento.org/post/munin-links-internos-para-hugo-com-ia/"&gt;post sobre o Munin&lt;/a&gt;, mostrei o irmão dele: um segundo programa que descobre e insere links internos entre posts usando embeddings e LLM.&lt;/p&gt;
&lt;p&gt;Os dois funcionavam bem. Separados, funcionavam bem.&lt;/p&gt;
&lt;h2 id="o-problema-de-ter-dois-programas"&gt;O problema de ter dois programas&lt;/h2&gt;
&lt;p&gt;Na teoria, dividir responsabilidades entre ferramentas é uma boa prática. Na prática, o fluxo para processar um post novo era assim: abrir o Hugin, navegar até o post, gerar tags, gerar resumo, fechar o Hugin. Abrir o Munin, esperar o modelo de embeddings carregar, navegar até o mesmo post, verificar links existentes, gerar sugestões de links, aplicar. Se precisasse corrigir um typo no título que só apareceu depois de olhar o post no Hugin, fechar tudo e abrir o Pages CMS ou o vim.&lt;/p&gt;</description></item><item><title>Munin: links internos para Hugo com IA</title><link>https://devops.sarmento.org/posts/munin-links-internos-para-hugo-com-ia/</link><pubDate>Fri, 17 Apr 2026 10:49:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/munin-links-internos-para-hugo-com-ia/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/post/hugin-tags-e-resumos-para-hugo-com-ia/"&gt;post sobre o Hugin&lt;/a&gt; contei como resolvi o problema de tags e resumos no meu blog Hugo. Mas tinha outro problema, menos óbvio e mais chato: links internos. Aqueles links que conectam um post a outro, que ajudam o leitor a navegar pelo conteúdo relacionado, e que o Google adora ver num site bem estruturado.&lt;/p&gt;
&lt;p&gt;O problema é que ninguém linka nada. Você escreve um post sobre systemd timers, outro sobre cron, outro sobre launchd — e nenhum dos três menciona os outros. São ilhas de conteúdo que poderiam estar conectadas. A solução óbvia é reler cada post, lembrar quais outros existem, e ir inserindo links manualmente. Com 30 posts, é viável. Com 400, é insano.&lt;/p&gt;</description></item><item><title>Hugin: tags e resumos para Hugo com IA</title><link>https://devops.sarmento.org/posts/hugin-tags-e-resumos-para-hugo-com-ia/</link><pubDate>Sat, 11 Apr 2026 15:33:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/hugin-tags-e-resumos-para-hugo-com-ia/</guid><description>&lt;p&gt;Quem mantém um &lt;a href="https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/"&gt;blog estático com Hugo&lt;/a&gt; sabe que existem duas tarefas que ninguém gosta de fazer: classificar posts com tags e escrever meta descriptions. São aquelas coisas que você pula na hora de publicar porque o post já está pronto, o deploy já está configurado, e ficar escolhendo entre &amp;ldquo;selfhosted&amp;rdquo; e &amp;ldquo;self-hosted&amp;rdquo; não é exatamente o uso mais nobre do seu tempo. O resultado é previsível: posts sem tags, descriptions vazias ou copiadas do primeiro parágrafo, e uma taxonomia que mais atrapalha do que ajuda.&lt;/p&gt;</description></item><item><title>De WordPress a Hugo: Temas Não São o Que Você Pensa</title><link>https://devops.sarmento.org/posts/de-wordpress-a-hugo-temas-nao-sao-o-que-voce-pensa/</link><pubDate>Sat, 04 Apr 2026 14:59:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/de-wordpress-a-hugo-temas-nao-sao-o-que-voce-pensa/</guid><description>&lt;p&gt;Quem trabalha com WordPress por tempo suficiente desenvolve uma intuição sobre o que um tema é e o que ele faz. Essa intuição funciona bem dentro do ecossistema — ela guia decisões sobre estrutura de arquivos, sobre onde colocar lógica e sobre como estender funcionalidades. O problema aparece quando você migra para o Hugo e tenta aplicar esse mesmo modelo mental.&lt;/p&gt;
&lt;p&gt;As palavras são parecidas — templates, layouts, partials — mas o que elas significam na prática é radicalmente diferente. Um tema no WordPress é, em essência, uma aplicação PHP completa que consulta banco de dados, toma decisões de lógica e renderiza HTML, tudo no mesmo lugar. Um tema no Hugo é uma coleção de templates que recebe dados já processados e se limita a apresentá-los. Parece uma diferença sutil até você sentar para construir o seu primeiro layout e perceber que quase tudo que você sabia precisa ser reaprendido.&lt;/p&gt;</description></item><item><title>Comentários em sites estáticos com Isso — leve, self-hosted e sem rastreamento</title><link>https://devops.sarmento.org/posts/comentarios-em-sites-estaticos-com-isso-leve-self-hosted-e-sem-rastreamento/</link><pubDate>Sat, 28 Mar 2026 13:34:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/comentarios-em-sites-estaticos-com-isso-leve-self-hosted-e-sem-rastreamento/</guid><description>&lt;p&gt;Um &lt;a href="https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/"&gt;site estático&lt;/a&gt; não tem backend. Não tem banco de dados, não tem servidor de aplicação processando requisições — e é exatamente isso que o torna rápido, barato e resiliente. Mas essa simplicidade cobra um preço quando você quer algo que dependa de estado persistente, e comentários são o caso mais óbvio. No WordPress ou Ghost, o sistema de comentários faz parte da aplicação. Num site gerado por Hugo, Jekyll ou Eleventy, essa camada simplesmente não existe.&lt;/p&gt;</description></item><item><title>O Lado B do Site Grátis: Limites e Alternativas para Hugo + GitHub + Cloudflare Pages + Pages CMS</title><link>https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</link><pubDate>Tue, 24 Mar 2026 10:45:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/"&gt;post anterior&lt;/a&gt;, montamos um blog completo com Hugo, GitHub, Cloudflare Pages e Pages CMS sem gastar um centavo. A stack funciona, é rápida, e para a maioria dos blogs pessoais vai continuar funcionando por muito tempo sem pedir nada em troca. Mas &amp;ldquo;grátis&amp;rdquo; não significa &amp;ldquo;sem limites&amp;rdquo;, e entender onde estão as paredes antes de bater nelas é o tipo de coisa que poupa dor de cabeça lá na frente.&lt;/p&gt;</description></item><item><title>Como criei este blog sem gastar um centavo (e sem tocar em WordPress)</title><link>https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/</link><pubDate>Fri, 20 Mar 2026 00:10:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/</guid><description>&lt;h2 id="por-que-abandonar-o-wordpress"&gt;Por que abandonar o WordPress&lt;/h2&gt;
&lt;h3 id="o-peso-de-manter-um-cms-dinâmico"&gt;O peso de manter um CMS dinâmico&lt;/h3&gt;
&lt;p&gt;O WordPress é um software extraordinário que alimenta quase metade da internet. Dito isso, manter uma instalação WordPress saudável é um trabalho que nunca termina. Cada visita ao seu site dispara uma cadeia de eventos: o servidor recebe a requisição, o PHP acorda, consulta o MySQL, monta a página na hora, e devolve o HTML para o navegador. Multiplica isso por cem visitantes simultâneos e você tem um servidor suando para entregar páginas que, na maioria dos blogs, são exatamente iguais para todo mundo.&lt;/p&gt;</description></item></channel></rss>