- Um caso de criação de um blog do zero, sem Jekyll, Ghost ou WordPress
- Os requisitos básicos eram usar um domínio próprio, geração de site estático, compatibilidade com SEO e facilidade para adicionar posts
- A configuração principal usa
template.html e o script render.py, renderizando automaticamente todas as páginas apenas com a escrita de textos em Markdown
- Usa a biblioteca Python markdown2 para automatizar a conversão de Markdown → HTML e a geração de páginas
- Destaca uma estrutura que segue SEO e os padrões web modernos, ao mesmo tempo em que permite adicionar conteúdo de forma simples
Requisitos do blog
- Usar um domínio já existente
- Manter padrões web modernos e compatibilidade com SEO
- Adicionar textos deve ser muito fácil
- Todas as páginas devem ser geradas estaticamente
Resumo do processo de implementação
- Criar o arquivo
template.html → montar o layout HTML básico
- Instalar a ferramenta de renderização de Markdown com o comando
pip install markdown2
- Pedir ao
O1 um script Python para renderização (render.py)
- Escrever posts no formato
eng.md dentro da pasta posts/
- Executar
render.py para converter em HTML e gerar a pasta de saída
Template HTML principal (template.html)
- A estrutura HTML é simples e minimalista, com o resultado renderizado do Markdown inserido em
{{ content }}
- O CSS usa fonte baseada em
system-ui, padding adaptativo, configuração de color-scheme e outros recursos para garantir legibilidade
Script principal de renderização em Python (render.py)
- Usa
markdown2 para converter cada post em Markdown para HTML
- Durante a conversão, substitui automaticamente o caminho de
<img> por /posts/{post_code}/
- O título HTML é extraído do cabeçalho
# do Markdown
- O
index.html é composto por greetings.md + a lista de títulos de cada post
- O resultado é salvo como
.html na pasta ./blog/
5 comentários
Eu também estou mantendo meu blog atualmente exatamente desse jeito. Estou usando um SSG que criei para atender às minhas necessidades pessoais. Para aproveitar recursos como imagem de miniatura, categoria e tags, adicionei funcionalidades personalizadas separadamente. As imagens anexadas são convertidas automaticamente para webp para serem referenciadas, e graças a isso a velocidade de renderização está muito satisfatória.
Ah, então esses recursos personalizados você vai adicionando aos poucos escrevendo o código por conta própria? Eu também sempre penso em fazer tudo no estilo DIY, mas acabo hesitando por causa das extensões e plugins que os frameworks de blog SSG que eu já usava oferecem.
Se você deixar a ambição de lado — só isso — o resto não é tão difícil. Até no SSG, se você pedir para a IA, ela escreve todo o código, e se pedir para adicionar funcionalidades, na verdade ela adiciona tudo também haha
Se você escolher só uma fonte bonita, já fica bem agradável de ler.
Comentários do Hacker News
Ao começar um blog, usou SSG, mas acabou migrando para o Wordpress e ganhou mais liberdade
Dois elementos necessários para que algo seja considerado um blog
Apreço por sites independentes
Desejo por suporte nativo no navegador a
text/markdownetext/geminiApontamento sobre um bug em que a string "Minimum viable blog" é substituída pelo título do post
Manteve um blog com páginas HTML simples, mas agora usa Astro para operar um site mais avançado
Experimento com Bun JS e uso de HTML como strings JS
Alguns truques aprendidos ao longo de 15 anos experimentando um blog mínimo
Facilidade de um framework padrão de blog estático usando Hugo/Zola e Cloudflare Pages
Ao reviver um blog antigo, teve uma experiência incômoda com o Hexo