diff --git a/docs/ru/guide/cms.md b/docs/ru/guide/cms.md new file mode 100644 index 00000000..9781e756 --- /dev/null +++ b/docs/ru/guide/cms.md @@ -0,0 +1,58 @@ +--- +outline: deep +--- + +# Подключение к CMS {#connecting-to-a-cms} + +## Общий рабочий процесс {#general-workflow} + +Подключение VitePress к CMS в значительной степени зависит от [динамических маршрутов](./routing#dynamic-routes). Прежде чем приступить к работе, убедитесь, что вы понимаете, как это работает. + +Поскольку каждая CMS работает по-своему, здесь мы можем предоставить лишь общую схему работы, которую вам нужно будет адаптировать под свой конкретный сценарий. + +1. Если ваша CMS требует аутентификации, создайте файл `.env` для хранения токенов API и загрузите его таким образом: + + ```js + // posts/[id].paths.js + import { loadEnv } from 'vitepress' + + const env = loadEnv('', process.cwd()) + ``` + +2. Получите необходимые данные из CMS и преобразуйте их в соответствующие пути: + + ```js + export default { + async paths() { + // при необходимости используйте соответствующую клиентскую библиотеку CMS + const data = await ( + await fetch('https://my-cms-api', { + headers: { + // токен, если необходимо + } + }) + ).json() + + return data.map((entry) => { + return { + params: { id: entry.id /* заголовок, автор, дата и т. д. */ }, + content: entry.content + } + }) + } + } + ``` + +3. Отрисуйте содержимое страницы: + + ```md + # {{ $params.title }} + + - by {{ $params.author }} on {{ $params.date }} + + + ``` + +## Руководства по интеграции {#integration-guides} + +Если вы написали руководство по интеграции VitePress с конкретной CMS, воспользуйтесь ссылкой «Редактировать эту страницу», чтобы отправить его сюда!