6 pontos por GN⁺ 2025-05-04 | 5 comentários | Compartilhar no WhatsApp
  • 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.htmlmontar 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

 
ifmkl 2025-05-07

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.

 
winterjung 2025-05-07

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.

 
ifmkl 2025-05-07

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

 
ndrgrd 2025-05-04

Se você escolher só uma fonte bonita, já fica bem agradável de ler.

 
GN⁺ 2025-05-04
Comentários do Hacker News
  • Ao começar um blog, usou SSG, mas acabou migrando para o Wordpress e ganhou mais liberdade

    • É importante evitar ferramentas que atrapalhem na hora de escrever
    • Para focar na escrita, é preciso evitar procrastinar
  • Dois elementos necessários para que algo seja considerado um blog

    • Os posts precisam estar ordenados por data e exibir a data
    • É necessário ter um feed RSS
  • Apreço por sites independentes

    • Um site que começou com ASP há 25 anos hoje roda em Common Lisp
    • Começou com um site de funcionalidade mínima e foi adicionando recursos aos poucos
    • Ideias novas são sempre tentadoras, mas é preciso cuidado para que o projeto não cresça de forma descontrolada
  • Desejo por suporte nativo no navegador a text/markdown e text/gemini

    • O suporte a outros formatos reduz a barreira de publicação e devolve o controle ao usuário
  • Apontamento 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

    • Astro é uma plataforma otimizada para sites centrados em conteúdo
  • Experimento com Bun JS e uso de HTML como strings JS

    • A IDE IntelliJ detecta HTML e oferece suporte a formatação e highlighting
  • Alguns truques aprendidos ao longo de 15 anos experimentando um blog mínimo

    • JSX é útil como construtor de strings no lado do servidor
    • GH Pages pode ser mais fácil de usar do que Jekyll
    • highlight.js ainda é útil para syntax highlighting de código
  • Facilidade de um framework padrão de blog estático usando Hugo/Zola e Cloudflare Pages

    • Uso do tema Hugo Blog Awesome
    • Mantém o tamanho da página abaixo de 512kb
  • Ao reviver um blog antigo, teve uma experiência incômoda com o Hexo

    • Como os temas não funcionavam direito, está pensando em desenvolver um tema próprio
    • A complexidade pode aumentar, mas está tentando resolver o problema