Ir para o conteúdo
Acecore

De VitePress para Starlight — Unificação do framework do site de documentação

by Gui
Índice
De VitePress para Starlight — Unificação do framework do site de documentação

Resumimos o procedimento para migrar um site de documentação criado com VitePress para Astro + Starlight. Quando o site principal roda em Astro, unificar a documentação no Starlight simplifica a operação. Também apresentamos a migração dos diagramas Mermaid para CDN.

Por que unificar o framework

Quando o site principal e o site de documentação usam frameworks diferentes, surgem os seguintes problemas:

  • Duplicação do custo de aprendizado: É necessário conhecer as especificações tanto do VitePress quanto do Astro
  • Dispersão de dependências: Gerenciamento de atualizações de pacotes npm em dois sistemas
  • Consistência de configuração: Manutenção individual de ESLint, Prettier, configurações de deploy etc.

Ao unificar com Astro + Starlight, é possível compartilhar padrões de arquivos de configuração e conhecimentos de troubleshooting.

Procedimento de migração do VitePress para o Starlight

1. Conversão da estrutura do projeto

VitePress coloca os documentos no diretório docs/, enquanto Starlight usa src/content/docs/.

# Antes (VitePress)
docs/
  pages/
    index.md
    business-overview.md
    market-analysis.md

# Depois (Starlight)
src/
  content/
    docs/
      index.md
      business-overview.md
      market-analysis.md

2. Ajuste do frontmatter

O formato do frontmatter difere ligeiramente entre VitePress e Starlight. A configuração de sidebar do VitePress foi migrada para o campo sidebar do frontmatter.

# Frontmatter do Starlight
---
title: Visão geral do negócio
sidebar:
  order: 1
---

3. Configuração do astro.config.mjs

import { defineConfig } from 'astro/config'
import starlight from '@astrojs/starlight'

export default defineConfig({
  integrations: [
    starlight({
      title: 'Plano de Negócios Acecore',
      defaultLocale: 'ja',
      sidebar: [
        {
          label: 'Plano de Negócios',
          autogenerate: { directory: '/' },
        },
      ],
    }),
  ],
})

4. Remoção do UnoCSS

No ambiente VitePress, estilos personalizados eram aplicados com UnoCSS, mas o Starlight possui estilos padrão suficientes embutidos. Removemos uno.config.ts e pacotes relacionados, reduzindo as dependências.

Migração da Mermaid para CDN

Os documentos do plano de negócios descrevem fluxogramas e organogramas em Mermaid. No VitePress, a Mermaid era integrada via plugin (vitepress-plugin-mermaid), mas não existe plugin equivalente para o Starlight.

Assim, mudamos para carregar a Mermaid via CDN no lado do navegador.

Implementação

Adicionamos o script CDN da Mermaid ao cabeçalho personalizado do Starlight.

// astro.config.mjs
starlight({
  head: [
    {
      tag: 'script',
      attrs: { type: 'module' },
      content: `
        import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs'
        mermaid.initialize({ startOnLoad: true })
      `,
    },
  ],
})

No Markdown, a notação padrão da Mermaid funciona normalmente:

```mermaid
graph TD
    A[Plano de Negócios] --> B[Análise de Mercado]
    A --> C[Estratégia de Vendas]
    A --> D[Plano Financeiro]
```

Benefícios da abordagem CDN

  • Zero dependências de build: Mermaid como pacote npm não é necessário
  • Sempre na versão mais recente: Obtém a versão mais recente via CDN
  • SSR desnecessário: Renderização no navegador, sem impacto no tempo de build

Resultado da migração

ItemAntesDepois
FrameworkVitePress 1.xAstro 6 + Starlight
CSSUnoCSSEstilização integrada do Starlight
Mermaidvitepress-plugin-mermaidCDN (jsdelivr)
Saída do builddocs/.vitepress/distdist
HospedagemCloudflare PagesCloudflare Pages (sem alteração)

Com a unificação do framework, é possível compartilhar padrões de configuração do astro.config.mjs e configurações de deploy entre múltiplos projetos.

Conclusão

A unificação de frameworks pode não ser “urgente”, mas quanto mais longa a operação, maior o benefício. A migração do VitePress para o Starlight pode ser concluída em poucas horas, e a migração da Mermaid para CDN é até um benefício — a liberação da gestão de plugins. Se você opera múltiplos projetos, considere unificar a stack tecnológica.

Fluxo da migração

Análise da situação atual

Levantamento da configuração VitePress + UnoCSS.

Introdução do Starlight

Reestruturação do projeto com Astro + Starlight.

Migração do conteúdo

Ajuste da disposição dos arquivos Markdown e frontmatter.

Migração da Mermaid para CDN

Eliminação da dependência de plugins e renderização de diagramas via CDN.

Comparação antes e depois da migração

VitePress + UnoCSS
  • SSG baseado em Vue
  • Estilização com UnoCSS
  • Mermaid funciona via plugin
  • Stack tecnológica diferente do projeto Astro

Astro + Starlight
  • SSG baseado em Astro
  • Estilização integrada do Starlight
  • Mermaid funciona via CDN
  • Framework unificado com o site principal
Perguntas frequentes
Quais são os benefícios de migrar do VitePress para o Starlight?
Quando o site principal usa Astro, unificar o framework reduz o custo de aprendizado, melhora a gestão de dependências e a consistência das configurações. O pipeline de build também pode ser unificado.
Como os diagramas Mermaid são exibidos?
Abandonamos a dependência de plugins e mudamos para carregar a Mermaid via CDN (jsdelivr). As dependências de build ficam zeradas e a renderização dos diagramas fica estável.
Quanto trabalho é necessário para a migração?
O trabalho principal é a conversão da estrutura de diretórios (docs/ → src/content/docs/) e ajuste do frontmatter. Como o conteúdo é Markdown, pode ser usado como está, então a migração é concluída em relativamente pouco tempo.
G

Gui

CEO da Acecore. Engenheiro versátil que trabalha com desenvolvimento de sistemas, produção web, operações de infraestrutura e educação em TI. Gosta de resolver desafios organizacionais e humanos por meio da tecnologia.

Desenvolvimento de sistemas Produção web Operações de infraestrutura Educação em TI

Quer saber mais sobre nossos serviços?

Oferecemos suporte abrangente em desenvolvimento de sistemas, design web, design gráfico e educação em TI.

Artigos relacionados

Pesquisar artigos