Демонстрация возможностей вики

Табы, подсветка кода, GFM-таблицы, аккордеон, callout и карточки.

Текст и типографика

Обычный абзац. Жирный, курсив, зачёркнуто (GFM), инлайн-код.

Автоссылки (GFM даёт тот же тег ссылки, что и [текст](url)): https://example.com

Внутренняя ссылка · Оплата · Внешняя так же, markdown

Вкладки (Tabs)

Нужны оба элемента: TabsTrigger (кнопка) и TabsContent (панель) с одинаковым value. Если сделать только один триггер без TabsContent, текста под вкладкой не будет — это не баг, а неполная разметка.

Одна вкладка — список переключателей можно не растягивать на всю ширину:

Содержимое единственной вкладки.

Несколько вкладок — сетка по числу колонок (здесь две):

handlers/ticket.ts
export function route(req: Request): Response {
  return new Response("ok");
}

Фильтрация блоков по каналам («все каналы» / звонки / чаты / почта)

Один экран, разные куски текста в MDX помечаешь атрибутом channel. Блоки channel="common" идут на каждой вкладке (общая вводная). Остальные каналы: на «Все каналы» видно все категории сразу; на конкретной вкладке — только общее + свой канал, без чужих.

На вкладке «Все каналы» у каждого блока слева — иконка и tooltip с тем же названием, что и у вкладки. Подписи задаются на WikiChannelTab через label="…" (или берутся из словаря для calls, mail…). У блока channel="common" в тултипе — «Все каналы» (как у первой вкладки). Переопределить: channelLabel="…" на WikiChannelBlock.

Подсветка — только при наведении на иконку (режим «Все каналы»): полупрозрачный голубой фон и рамка. Между блоками компактный отступ. Текст не смещается при смене таба: под иконку зарезервирован отступ, слот дублируется невидимым ::before.

Разметка: WikiChannelTabsWikiChannelTabStripWikiChannelTab 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).

components/Badge.tsx
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)

Перейти к поиску «demo»

Краткое описание, что пользователь найдёт по этой ссылке.

Списки и линия

  • маркированный список
  • второй пункт
  1. Шаг один
  2. Шаг два

Заголовки H2 и H3 выше получают якоря (клик по иконке ссылки при наведении — если тема Prism не перекрывает отступы).