Como Sincronizar seu Blog Hugo ao Perfil do GitHub
Depois de implantarmos nosso blog, queremos que nosso perfil do GitHub seja atualizado automaticamente sempre que houver uma nova publicação no blog, para que nosso perfil possa exibir nossos últimos artigos. Podemos achieving isso com GitHub Actions.
Pré-requisitos
Antes de começar, certifique-se de ter completado os seguintes preparativos:
- Blog Hugo: Um blog Hugo configurado e hospedado em um repositório do GitHub (como
username/username.github.ioou um repositório personalizado). - Repositório do GitHub: Um repositório para armazenar os arquivos fonte do seu blog (por exemplo,
username/blog) e um repositório para GitHub Pages (por exemplo,username/username.github.io). - README do Perfil do GitHub: O Profile README está habilitado no GitHub (crie um repositório com o mesmo nome que seu nome de usuário, como
username/username, por exemplo, Meu Perfil do GitHub). - Conhecimentos Básicos de Git: Entender como fazer commit de código, configurar
.gitignoree usar GitHub Actions.
O que é blog-post-workflow?
blog-post-workflow é uma GitHub Action desenvolvida por Gautam Krishnar, projetada para sincronizar as últimas publicações do blog ao GitHub Profile README ou outras localizações especificadas. Suporta múltiplos frameworks de blog (incluindo Hugo) e recupera as últimas publicações analisando o feed RSS, atualizando automaticamente o arquivo de destino.
Passo 1: Configurar o Repositório do Blog Hugo
-
Garantir que o Blog Hugo Gere um Feed RSS: O Hugo gera um feed RSS por padrão (geralmente localizado em
public/index.xml). No seu arquivo de configuração do Hugo (config.tomlouconfig.yaml), certifique-se de que a saída RSS esteja habilitada:TOML[outputs] home = ["HTML", "RSS"]Depois de executar o comando
hugo, verifique o arquivoindex.xmlno diretóriopublic.Dicas: Se o seu blog for multilíngue, o endereço do feed RSS deve ser
https://seu-dominio-blog/index.xml, nãohttps://seu-dominio-blog/en/index.xmlouhttps://seu-dominio-blog/zh/index.xml, etc. -
Hospedar Conteúdo do Blog:
- Certifique-se de que os arquivos fonte do seu blog Hugo estejam armazenados em um repositório (por exemplo,
username/blog). - Os arquivos estáticos (o diretório
public) devem ser enviados para o repositório do GitHub Pages (por exemplo,username/username.github.io). - Nas configurações do repositório do GitHub Pages, habilite o GitHub Pages e selecione a branch correta (geralmente
mainough-pages).
- Certifique-se de que os arquivos fonte do seu blog Hugo estejam armazenados em um repositório (por exemplo,
-
Verificar Acesso ao Blog: Certifique-se de que seu blog seja acessível através de um domínio personalizado (por exemplo,
https://username.github.io) ou do domínio padrão do GitHub Pages.
Passo 2: Configurar o README do Perfil do GitHub
-
Criar Repositório README do Perfil:
- Crie um repositório no GitHub que tenha o mesmo nome que seu nome de usuário (por exemplo,
username/username). - Crie um arquivo
README.mdno diretório raiz do repositório para exibir o conteúdo do seu Perfil do GitHub.
- Crie um repositório no GitHub que tenha o mesmo nome que seu nome de usuário (por exemplo,
-
Adicionar Marcador de Posição do Blog: Adicione um marcador de posição em
README.mdpara inserir dinamicamente artigos do blog. Por exemplo:MARKDOWN## Meus Últimos Artigos do Blog <!-- BLOG-POST-LIST:START --> <!-- BLOG-POST-LIST:END -->O
blog-post-workflowsubstituirá este marcador de posição por links para os últimos artigos do blog.
Passo 3: Configurar blog-post-workflow
-
Criar Fluxo de Trabalho do GitHub Actions: No seu repositório README do Perfil (
username/username), crie a seguinte estrutura de diretórios:PLAINTEXT.github/workflows/blog-post.yml -
Escrever Arquivo de Fluxo de Trabalho: Adicione o seguinte conteúdo a
blog-post.ymlpara configurarblog-post-workflow:YAMLname: Sync Blog to Profile README on: schedule: - cron: "0 0 * * *" # Executar uma vez ao dia workflow_dispatch: # Permitir disparo manual jobs: update-readme-with-blog: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: gautamkrishnar/blog-post-workflow@v1 with: feed_list: "https://username.github.io/index.xml" # Substitua pelo endereço RSS do seu blog max_post_count: 5 # Sincronizar os últimos 5 artigos readme_path: ./README.md # Arquivo README de destino commit_message: "Update README with latest blog posts"- feed_list: Substitua pelo endereço do feed RSS do seu blog Hugo (geralmente
https://seu-dominio-blog/index.xml). - max_post_count: Defina o número de artigos recentes a exibir.
- readme_path: Certifique-se de que aponta para o caminho correto do arquivo README.
- commit_message: Personalize a mensagem de commit.
- feed_list: Substitua pelo endereço do feed RSS do seu blog Hugo (geralmente
-
Confirmar Arquivo de Fluxo de Trabalho: Faça commit de
blog-post.ymlno seu repositório README do Perfil. O GitHub Actions será executado automaticamente à meia-noite (UTC) diariamente ou pode ser acionado manualmente através do painel do GitHub Actions.
Passo 4: Verificar Resultados da Sincronização
-
Verificar Registros do GitHub Actions:
- Vá para a aba Actions do repositório README do Perfil para ver o status do fluxo de trabalho
Sync Blog to Profile README. - Certifique-se de que não há erros e de que o fluxo de trabalho foi concluído com sucesso.

- Você também pode acionar manualmente o fluxo de trabalho para verificar se o README foi atualizado. Clique em
Run workflowpara acioná-lo manualmente.
- Vá para a aba Actions do repositório README do Perfil para ver o status do fluxo de trabalho
-
Ver Atualização do README:
- Abra o
README.mddo repositóriousername/usernamepara verificar se o marcador de posição<!-- blog-post-workflow -->foi substituído pela lista das últimas publicações do blog. - A saída de exemplo pode parecer:
MARKDOWN
## Meus Últimos Artigos do Blog - [Título do Artigo 1](https://username.github.io/post/xxx) - 2025-06-21 - [Título do Artigo 2](https://username.github.io/post/yyy) - 2025-06-20
- Abra o
-
Acessar o Perfil do GitHub: Abra sua página de perfil do GitHub (por exemplo,
https://github.com/username) e confirme que os últimos artigos do blog são exibidos no Profile README.
Notas
- Disponibilidade do Feed RSS: Certifique-se de que o feed RSS do seu blog (
index.xml) seja acessível através de uma URL pública. Se o blog estiver hospedado em um repositório privado, considere mudar para um repositório público ou fornecer RSS através de outro meio. - Permissões do GitHub Actions: Certifique-se de que seu repositório tenha permissões de gravação do Actions habilitadas (Settings > Actions > General > Allow all actions and reusable workflows).
- Frequência de Sincronização: A configuração padrão é sincronizar uma vez ao dia, mas você pode ajustar a expressão
cronconforme necessário (por exemplo, a cada hora:0 * * * *). - Depuração: Se a sincronização falhar, verifique os registros do Actions. Problemas comuns incluem um endereço RSS incorreto ou um caminho de arquivo README incorreto.
Recursos de Referência:
Comments