Changelog
Escreva as notas de lançamento como arquivos de conteúdo normais ou obtenha-as do GitHub Releases, e o Blume constrói automaticamente uma página de cronologia e um feed RSS.
O Blume traz um changelog pronto para usar. Escreva cada versão como um arquivo de conteúdo normal, marque com type: changelog, e o Blume reúne todas as entradas em uma página de cronologia gerada e em um feed RSS — sem layout para construir, sem lista para manter. Ou dispense os arquivos por completo e alimente seu changelog a partir do GitHub Releases.
Escrever uma entrada
Uma entrada de changelog é uma página .md ou .mdx normal com type: changelog no frontmatter. Por convenção elas ficam em changelog/, mas o que importa é o tipo — não a pasta:
---
title: v1.2.0
type: changelog
date: 2026-06-20
changelog:
version: 1.2.0
category: Features
---
A big batch of components landed this release — columns, frames, trees, and tooltips, plus code groups that render as proper language tabs.
- New `Accordion`, `Expandable`, and `Tooltip` components
- `CodeGroup` tabs with flush code blocks
Atribua uma date a cada entrada para que a cronologia e o feed ordenem da mais recente para a mais antiga. Uma data YAML sem aspas serve — o Blume normaliza.
O objeto changelog
O objeto opcional changelog adiciona metadados mais ricos para a cronologia e o feed:
changelog.version?string
Release version. Falls back to a v-prefixed label when there's no title.
stringchangelog.category?string
Shown as a tag beside the entry, e.g. Release, Features, Fixes.
stringchangelog.date?string
Publish date. May live here or at the top level — both feed the timeline and RSS feed.
stringA página de cronologia
Assim que você tiver pelo menos uma entrada type: changelog, o Blume gera automaticamente uma página /changelog. Ela é exibida como uma cronologia focada e de largura total — sem barra lateral nem índice — com cada entrada da mais recente para a mais antiga, mostrando a data, o rótulo e a tag category em uma coluna à esquerda, ao lado do conteúdo:
- O título da entrada vira o rótulo dela — ou
v{version}quando não há título. Ele leva à página da própria entrada, então uma versão é ao mesmo tempo uma linha na cronologia e um permalink compartilhável. - A
categoryé exibida como uma tag ao lado da data. - Os rascunhos e as entradas com
sidebar.hiddensão ignorados.
A página só aparece quando nada já ocupa a rota /changelog. Para substituí-la pelo seu próprio design, adicione uma página personalizada em pages/changelog.astro — ela assume o controle e o Blume para de gerar a cronologia padrão.
Como essa página é gerada e não escrita, ela não faz parte da árvore de conteúdo — então uma aba do cabeçalho que aponta para /changelog resolve para a entrada mais recente. Dê um href à aba para chegar ao índice em si:
navigation: {
tabs: [
{ label: "Changelog", path: "/changelog", href: "/changelog" },
],
}
Agrupado por versão principal
Quando suas versões seguem o semver e abrangem mais de uma versão principal, o Blume pagina a cronologia por versão principal. Apenas a linha principal mais recente é exibida, com um botão Show N.x releases no rodapé que revela a versão principal imediatamente mais antiga, um clique por vez:
- A detecção é automática — sem configuração. Ela só entra em ação quando todas as versões listadas correspondem a
major.minor.patche existe mais de uma versão principal; caso contrário, a cronologia continua plana. - Ela tolera as tags com escopo que os monorepos publicam, então
pkg@2.0.0fica agrupado em2.xepkg@1.4.0em1.x. - É melhoria progressiva: todas as versões continuam presentes no HTML da página (e no feed RSS e no índice de busca), então os leitores sem JavaScript — e os rastreadores — veem o histórico completo. O botão só recolhe as versões principais mais antigas depois que a página hidrata.
A partir do GitHub Releases
Em vez de escrever as entradas à mão, aponte a fonte github-releases integrada para um repositório e cada versão vira uma entrada type: changelog — a mesma cronologia e o mesmo feed, alimentados diretamente pelas versões que você já publica. O próprio changelog do Blume é construído assim:
content: {
sources: [
{ type: "filesystem", root: "content" },
{
type: "github-releases",
prefix: "changelog",
owner: "acme",
repo: "sdk",
},
],
}
O nome da versão vira o título, a tag dela vira changelog.version e a respectiva data de publicação ordena a cronologia. Cada página de versão também recebe uma meta description única, resumida a partir das notas — sem markdown, sem títulos de seção nem prefixos de hash de commit dos changesets, cortada para o comprimento de trecho de busca que o blume audit verifica — em vez de recorrer à descrição do site. Um repositório privado se autentica com a variável de ambiente GITHUB_TOKEN. Veja Fontes de conteúdo para todas as opções.
O feed RSS
O Blume também constrói um feed do changelog em /changelog/rss.xml, ordenado por date da mais recente para a mais antiga. Os feeds precisam de uma URL absoluta do site, então defina deployment.site; o Blume então injeta uma tag <link rel="alternate"> em todas as páginas para que os leitores o descubram automaticamente.
O feed vem ativado por padrão. Ajuste em seo.rss:
seo: {
rss: {
enabled: true,
types: ["blog", "changelog"],
limit: 50,
},
}
Remova "changelog" de rss.types para dispensar o feed mantendo a cronologia.
Dados estruturados
Quando os dados estruturados estão ativos, cada entrada do changelog é emitida como um TechArticle do schema.org com a descrição e a data de publicação dela, para que os mecanismos de busca possam indexar as versões como artigos datados.