diff --git a/docs/pt/guide/cms.md b/docs/pt/guide/cms.md new file mode 100644 index 00000000..c3df35c8 --- /dev/null +++ b/docs/pt/guide/cms.md @@ -0,0 +1,56 @@ +--- +outline: deep +--- + +# Conectando a um CMS + +## Fluxo de Trabalho Geral + +Conectar VitePress a um CMS orbitará majoritariamente sobre [Rotas Dinâmicas](./routing#dynamic-routes). Certifique-se de entender como funcionam antes de proceder. + +Como cada CMS funcionará de forma diferente, aqui podemos fornecer apenas um fluxo de trabalho genérico que precisará ser adaptado para cada cenário específico. + +1. Se seu CMS exige autenticação, crie um arquivo `.env` para armazenar os tokens da API e carregá-los como: + + ```js + // posts/[id].paths.js + import { loadEnv } from 'vitepress' + + const env = loadEnv('', process.cwd()) + ``` + +2. Obtenha os dados necessários do CMS e formate-os em caminhos de dados apropriados: + + ```js + export default { + async paths() { + // use a biblitoca do cliente CMS respectiva se preciso + const data = await (await fetch('https://my-cms-api', { + headers: { + // token se necessário + } + })).json() + + return data.map(entry => { + return { + params: { id: entry.id, /* título, autores, data, etc. */ }, + content: entry.content + } + }) + } + } + ``` + +3. Apresente o conteúdo na página: + + ```md + # {{ $params.title }} + + - por {{ $params.author }} em {{ $params.date }} + + + ``` + +## Guias de Integração + +Se você tiver escrito um guia sobre como integrar VitePress com um CMS específico, por favor use o link "Edite esta página" abaixo para enviá-lo para cá!