Текст и типографика
Обычный абзац. Жирный, курсив, зачёркнуто (GFM), инлайн-код.
Автоссылки (GFM даёт тот же тег ссылки, что и [текст](url)): https://example.com
Внутренняя ссылка · Оплата · Внешняя так же, markdown
Вкладки (Tabs)
Нужны оба элемента: TabsTrigger (кнопка) и TabsContent (панель) с одинаковым value. Если сделать только один триггер без TabsContent, текста под вкладкой не будет — это не баг, а неполная разметка.
Одна вкладка — список переключателей можно не растягивать на всю ширину:
Содержимое единственной вкладки.
Несколько вкладок — сетка по числу колонок (здесь две):
export function route(req: Request): Response {
return new Response("ok");
}
Фильтрация блоков по каналам («все каналы» / звонки / чаты / почта)
Один экран, разные куски текста в MDX помечаешь атрибутом channel. Блоки channel="common" идут на каждой вкладке (общая вводная). Остальные каналы: на «Все каналы» видно все категории сразу; на конкретной вкладке — только общее + свой канал, без чужих.
На вкладке «Все каналы» у каждого блока слева — иконка и tooltip с тем же названием, что и у вкладки. Подписи задаются на WikiChannelTab через label="…" (или берутся из словаря для calls, mail…). У блока channel="common" в тултипе — «Все каналы» (как у первой вкладки). Переопределить: channelLabel="…" на WikiChannelBlock.
Подсветка — только при наведении на иконку (режим «Все каналы»): полупрозрачный голубой фон и рамка. Между блоками компактный отступ. Текст не смещается при смене таба: под иконку зарезервирован отступ, слот дублируется невидимым ::before.
Разметка: WikiChannelTabs → WikiChannelTabStrip → WikiChannelTab value="calls" label="Звонки" → WikiChannelBlock channel="calls". Id канала в латинице, как у value вкладки.
Иконки: можно как раньше вставлять WikiTabIconPhone и т.д. внутри вкладки, либо задать icon="…" — имя иконки Lucide, как в URL на lucide.dev (phone, a-arrow-down, send). Та же иконка подставится слева у блока в режиме «Все каналы». У WikiChannelBlock можно отдельно указать icon="…", чтобы перекрыть иконку вкладки (например, у channel="common").
Суть вопроса (общее)
Этот блок common — на любой вкладке: и на «Все каналы», и на «Звонки», и на «Почта».
Только звонки
Инструкции по голосовым обращениям — видно на «Все каналы» и на «Звонки», но не на «Почта».
Только чаты
Материал для линии чата.
Только почта
Письма и тикеты с иконкой конверта — на вкладке «Почта» останется только это.
Оглавление папок вики
WikiAutoRootTabs — вкладки по корневым папкам public/content. Фильтрация контента по каналам — через WikiChannelTabs выше.
- Действия с регистрацией
- Инструкции и процедуры
- Оплата
- Работа в программах
Раздел документации по программам и демонстрация возможностей вики.
WikiFolderOverview — блок с фоном и иконкой: заголовок, выжимка из description или из текста index.mdx, кнопка «Перейти в раздел», ниже — ссылки на вложенные страницы. Атрибут folder — путь от public/content без / в начале.
Работа в программах
Раздел документации по программам и демонстрация возможностей вики.
Вложенная папка:
Ручные линейные вкладки без фильтрации: WikiUnderlineTabs + при необходимости WikiAllCategoriesOverview внутри панели. Иконки: WikiTabIconAll, WikiTabIconFolder, … или в WikiChannelTabs — атрибут icon="имя-lucide" (kebab-case или одно слово, как на сайте Lucide).
Подсветка синтаксиса и заголовок файла
Строки слева — showLineNumbers в пайплайне. Заголовок файла — через двоеточие в первой строке блока: ```tsx:путь/к/файлу (см. rehype-code-titles).
import type { ReactNode } from "react";
export function Badge({ children }: { children: ReactNode }) {
return <span className="rounded bg-sky-950/50 px-2 py-0.5 text-xs text-sky-200">{children}</span>;
}
Таблица (GFM)
| Действие | Где смотреть |
|---|---|
| Жалоба | тикет, история чата |
| Оплата | /oplata, чек |
Та же таблица без рамок — оберни markdown-таблицу в <WikiTablePlain>:
| Действие | Где смотреть |
|---|---|
| Жалоба | тикет, история чата |
| Оплата | /oplata, чек |
Чеклист задач (GFM)
- Прочитать обращение
- Проверить логи
- Ответить игроку
Аккордеон (вопрос — ответ)
Callout
Информация
Короткая справка для модераторов.
Внимание
Перед действием проверьте контекст обращения игрока.
Готово
Заявка обработана.
Ошибка
Недостаточно прав или неверные данные.
Нейтральное напоминание без заголовка.
Карточки (Chief / Chapter / Article)
Блок поиска (SearchBox)
Перейти к поиску «demo»
Краткое описание, что пользователь найдёт по этой ссылке.
Списки и линия
- маркированный список
- второй пункт
- Шаг один
- Шаг два
Заголовки H2 и H3 выше получают якоря (клик по иконке ссылки при наведении — если тема Prism не перекрывает отступы).