Jekyll é um gerador de site estático que transforma arquivos Markdown em um site totalmente funcional. Tudo é convertido para HTML puro, o que facilita a implantação em plataformas como GitHub Pages.
Escrevendo no Obsidian
Eu uso Obsidian para escrever meu blog porque:
- Ele suporta Markdown, facilitando a formatação dos posts.
- Posso organizar os posts com tags e metadados.
- Mantém meus textos centralizados antes da publicação.
Cada post do blog contém metadados que determinam se está pronto para publicação. E dessa forma rascunhos são excluídos do processamento.
Usando Templates no Obsidian
Para padronizar meus posts no blog, uso templates no Obsidian. Eles ajudam a manter a consistência entre os posts e aceleram o processo de escrita. Sempre que quero começar um novo post, primeiro crio uma nota de planejamento com ideias e referências. Depois, crio uma nota do post, que contém o texto completo e os metadados do post.
Usando o plugin Dataview, consigo consultar e exibir conteúdo dinamicamente com base nos metadados, rastrear posts em diferentes estágios de conclusão, identificar traduções ausentes e visualizar notas relacionadas.
Jekyll-Multiple-Languages-Plugin
O plugin jekyll-multiple-languages-plugin
me ajuda a estruturar o conteúdo em vários idiomas, criando versões diferentes para cada post. Aqui está como funciona:
-
Meu blog suporta inglês, português e francês, configurados no
_config.yml
:languages: - en - pt - fr default_lang: en
-
Cada idioma tem seu próprio diretório dentro de
_i18n/
, por exemplo:_i18n/en/_posts/2025-02-01-my-post.md _i18n/pt/_posts/2025-02-01-meu-post.md
-
O plugin gera automaticamente URLs específicas para cada idioma:
https://adrianogil.github.io/blog/en/2025/02/my-post/ https://adrianogil.github.io/blog/pt/2025/02/meu-post/
-
Os usuários podem alternar entre idiomas usando um seletor de idioma na interface do blog.
Automatizando o Processamento dos Posts com Python
Copiar arquivos Markdown, gerenciar imagens e lidar com metadados manualmente pode ser trabalhoso. Para facilitar meu fluxo de trabalho, uso um script Python que automatiza as seguintes tarefas:
- Extrai os posts do meu vault do Obsidian.
- Copia e processa imagens.
- Formata metadados para o Jekyll.
- Move o post final para o repositório do meu blog no GitHub Pages.
Extraindo Notas
O script primeiro busca notas marcadas com uma tag específica (GilLabs/posts/text
).
notes = get_notes_from_index(target_tags=["GilLabs/posts/text"], as_obsidian_notes=True)
notes = [note for note in notes if not note.metadata.get("draft", True)]
Isso garante que apenas os posts prontos para serem publicados sejam processados.
Gerando o Arquivo do Blog no Jekyll
Cada post é formatado na estrutura _posts
do Jekyll com a data, idioma e categorias corretas. Metadados como título, layout e categorias são preservados.
---
categories: git
date: '2025-02-01 16:41:00 '
lang: en
lang-ref: intro-git
layout: post
title: Primeiros Passos com Git
updated: 2025-02-01T16:41
---
## Introdução
Olá! Muitas vezes me vejo explicando Git do zero,...
4. Publicando o Blog
Depois que o script atualiza os arquivos HTML no meu projeto Jekyll, eu simplesmente:
- Compilo o site com:
jekyll build
- Envio as mudanças para o GitHub Pages com:
git add . git commit -m "New blog post" git push origin main
Em poucos minutos, meu blog está no ar!