Руководство по написанию статей и документации
Контент пишется в формате MDX (.mdx) или Markdown (.md) — оба формата поддерживаются.
Создайте content/blog/my-post.mdx или content/blog/my-post.md:
---
title: "Заголовок"
description: "Описание"
date: "2026-03-07"
tags: ["tag1", "tag2"]
draft: false
---
Содержимое поста...Для постов с картинками создайте папку:
content/blog/2025/my-post/
index.mdx # контент (или index.md)
screenshot.png # ассеты
diagram.svg
В контенте ссылайтесь на ассеты относительными путями:
| Поле | Тип | Описание |
|---|---|---|
title | string | Заголовок статьи |
description | string | Краткое описание |
date | string | Дата публикации (YYYY-MM-DD) |
tags | string[] | Теги |
draft | boolean | Скрыть из списков (по умолчанию false) |
geo_block | object | Гео-блокировка (см. ниже) |
Создайте перевод, добавив файл с суффиксом локали:
hello-world.mdx — основной (ru)hello-world.en.mdx — английская версияДля директория-постов:
index.mdx — основнойindex.en.mdx — переводПереключатель языка появляется автоматически, если для поста есть переводы.
Ограничьте доступ к посту по странам:
geo_block:
countries: ["RU", "DE"]
message: "Контент недоступен в вашем регионе."Заблокированные посты отображаются с блюром в списках и полной заглушкой на странице поста.
Создайте content/docs/<категория>/my-doc.mdx:
---
title: "Заголовок"
description: "Описание"
order: 1
---
Содержимое документа...| Поле | Тип | Описание |
|---|---|---|
title | string | Заголовок |
description | string | Описание |
order | number | Порядок в sidebar |
Создайте index.mdx в папке категории для страницы-обзора:
content/docs/getting-started/
index.mdx # Индекс категории → /docs/getting-started
introduction.mdx # → /docs/getting-started/introduction
Файл content/pages/about.mdx → доступен по /about.
---
title: "About"
description: "О проекте"
---
Содержимое страницы...Добавьте страницу в навбар через cloudea.config.ts:
navbar: {
links: [
{ href: "/about", label: { ru: "О проекте", en: "About" } },
],
},Чтобы сделать кастомную страницу главной:
homepage: "about",MDX/Markdown поддерживает все стандартные возможности:
**текст***текст*Инлайн-код — `код`~~текст~~Тройные обратные кавычки с указанием языка. Кнопка Copy добавляется автоматически:
function Welcome({ name }: { name: string }) {
return <h1>Hello, {name}!</h1>;
}Используйте компонент <Callout> для выделения информации:
<Callout type="info">Информационное сообщение</Callout>
<Callout type="tip">Полезный совет</Callout>
<Callout type="warning">Предупреждение</Callout>
<Callout type="danger">Критически важная информация</Callout>Callouts работают только в файлах .mdx, так как используют JSX-синтаксис.
.md — используйте для простого контента без JSX-компонентов