Skip to Content
Руководство для пользователейВозможностиРендеринг Markdown

Рендеринг Markdown

Qwen Code рендерит стандартные структуры Markdown прямо в TUI, чтобы ответы модели было легче просматривать, не выходя из терминала. Рендерер спроектирован так, чтобы исходный код оставался доступным, особенно для визуальных блоков, таких как диаграммы Mermaid и математические формулы LaTeX.

Режимы Render и Raw

По умолчанию Markdown отображается в режиме render. Поддерживаемые блоки рендерятся в виде визуальных превью, где это возможно:

  • Фрагменты кода Mermaid
  • Таблицы Markdown
  • списки задач
  • цитаты
  • встроенные и блочные математические формулы LaTeX
  • фрагменты кода с подсветкой синтаксиса

Нажмите Alt/Option+M, чтобы переключать текущую сессию между режимами. На macOS терминал должен отправлять Option как Meta для этого сочетания клавиш; в противном случае Option+M воспринимается как обычный ввод текста.

  • render: показывать расширенные терминальные превью для поддерживаемого Markdown.
  • raw: показывать исходный ориентированный Markdown для визуальных блоков, таких как Mermaid, таблицы и LaTeX.

Чтобы запустить Qwen Code в режиме raw по умолчанию, установите ui.renderMode:

{ "ui": { "renderMode": "raw" } }

Допустимые значения: "render" и "raw". Сочетание клавиш меняет только представление текущей сессии; оно не перезаписывает ваш файл настроек.

Mermaid

Фрагменты кода mermaid визуально рендерятся в режиме render. TUI использует многоуровневую стратегию:

  1. Если эта функция включена и поддерживается, Qwen Code запрашивает Mermaid CLI (mmdc) для рендеринга диаграммы в PNG и отправляет её через протокол терминальных изображений.
  2. Если терминальные изображения недоступны, но установлен chafa, тот же PNG может быть преобразован в ANSI-блочную графику.
  3. В противном случае Qwen Code переключается на терминальный каркас или компактное текстовое превью.
  4. Если тип диаграммы Mermaid не может быть предварительно просмотрен, Qwen Code показывает исходный фрагмент кода вместо того, чтобы скрывать его за заполнителем.

Рендеринг изображений Mermaid отключён по умолчанию, поскольку он требует внешних рендереров и поддержки терминальных изображений. Включите его с помощью:

QWEN_CODE_MERMAID_IMAGE_RENDERING=1 qwen

Дополнительные переменные окружения:

ПеременнаяОписание
QWEN_CODE_MERMAID_IMAGE_RENDERING=1Включает внешний рендеринг изображений Mermaid.
QWEN_CODE_DISABLE_MERMAID_IMAGES=1Отключает рендеринг изображений Mermaid, даже если он включён в других местах.
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=kittyПринудительно использует протокол Kitty. Полезно для терминалов, таких как Kitty и Ghostty.
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=iterm2Запрашивает встроенные изображения iTerm2. Интерактивный рендеринг TUI переключается на текст/ANSI.
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=offОтключает протоколы терминальных изображений и разрешает текстовый или chafa запасной вариант.
QWEN_CODE_MERMAID_MMD_CLI=/path/to/mmdcИспользует конкретный исполняемый файл Mermaid CLI.
QWEN_CODE_MERMAID_ALLOW_NPX=1Разрешает Qwen Code запускать npx @mermaid-js/mermaid-cli, если mmdc не установлен.
QWEN_CODE_MERMAID_ALLOW_LOCAL_RENDERERS=1Разрешает локальные для проекта бинарники рендереров из node_modules/.bin.
QWEN_CODE_MERMAID_RENDER_WIDTH=1200Переопределяет ширину рендеринга PNG.
QWEN_CODE_MERMAID_RENDER_TIMEOUT_MS=10000Переопределяет тайм-аут внешнего рендеринга (максимум 60000 мс).
QWEN_CODE_MERMAID_CELL_ASPECT_RATIO=0.5Регулирует подгонку строк изображения по геометрии ячейки шрифта терминала.

Первый рендеринг изображения может быть медленным, особенно когда npx нужно разрешить или загрузить Mermaid CLI. Во время потоковой передачи Qwen Code показывает ограниченное текстовое превью и пытается выполнить рендеринг изображения только после завершения ответа модели.

Копирование исходного кода Mermaid

Каждый отрендеренный блок Mermaid включает подсказку об исходнике, например:

Mermaid flowchart (TD) · source: /copy mermaid 1

Используйте следующие команды, чтобы скопировать исходный код Mermaid из последнего ответа AI:

КомандаПоведение
/copy mermaidКопирует последний блок Mermaid.
/copy mermaid 1Копирует первый блок Mermaid.
/copy code mermaidКопирует последний фрагмент кода mermaid.
/copy code mermaid 1Копирует первый фрагмент кода mermaid.

/copy code 1 учитывает все фрагменты кода, а не только блоки Mermaid. Используйте /copy mermaid N, когда вам нужна последовательность, специфичная для Mermaid, отображаемая в заголовке рендера.

Математические формулы LaTeX

Qwen Code поддерживает базовый встроенный и блочный рендеринг LaTeX в терминале:

Inline math: $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$ $$ \sum_{n=1}^{\infty} 1/n^2 = \pi^2/6 $$

Рендерер фокусируется на распространённых символах и читабельном выводе в терминале. Это не полный TeX-движок: сложные макеты, такие как матрицы, выровненные уравнения и большие вложенные выражения, могут быть упрощены.

Встроенные выражения $...$ намеренно ограничены 1024 символами на строку, чтобы некорректный или очень большой сгенерированный Markdown не мог замедлить терминальный рендеринг. Более длинные формулы остаются видимыми в виде исходного текста и могут быть скопированы из сырого режима или из исходного ответа.

Копирование исходного кода LaTeX

Используйте эти команды для копирования исходного кода LaTeX из последнего ответа ИИ:

КомандаДействие
/copy latexКопирует последнее блочное выражение LaTeX.
/copy latex 2Копирует второе блочное выражение.
/copy latex inlineКопирует последнее встроенное выражение.
/copy latex inline 2Копирует второе встроенное выражение.
/copy inline-latex 2Синоним для /copy latex inline 2.

Встроенные LaTeX-выражения не показывают подсказку для копирования в визуальном тексте, чтобы избежать зашумления текста. Переключитесь в сырой режим с помощью Alt/Option+M, когда нужно просмотреть встроенный исходный код на месте; на macOS это требует настройки ввода терминала «Option как Meta».

Копирование кода общего назначения

Команда /copy code читает блоки кода в обрамлении из последнего Markdown-ответа ИИ:

КомандаДействие
/copy codeКопирует последний блок кода.
/copy code 2Копирует второй блок кода.
/copy code typescriptКопирует последний блок кода typescript.
/copy code mermaid 1Копирует первый блок кода mermaid.

Выбор более раннего сообщения ИИ

По умолчанию /copy нацелен на самое последнее сообщение ИИ. Добавьте перед командой положительное целое число, чтобы скопировать из N-последнего сообщения ИИ — удобно, когда последний ответ содержит мало информации (например, обновление TODO), а содержательный вывод был на один или два шага раньше.

КомандаДействие
/copy 2Копирует второе с конца сообщение ИИ целиком.
/copy 3Копирует третье с конца сообщение ИИ целиком.
/copy 2 code pythonКопирует последний блок кода python из второго с конца сообщения.
/copy 3 latexКопирует последний блок LaTeX из третьего с конца сообщения.

/copy 1 эквивалентно /copy. Если N превышает количество сообщений ИИ в сессии, /copy сообщает фактическое количество, ничего не копируя. Без начального целого числа подселекторы, такие как /copy code python 2, сохраняют своё текущее значение (второй блок python в последнем сообщении).

Текущие ограничения

  • Рендеринг диаграмм Mermaid в виде изображений зависит от Mermaid CLI и поддержки изображений в терминале.
  • Асинхронное размещение встроенных изображений iTerm2 отключено в TUI, так как протокол привязан к позиции курсора; для интерактивного предварительного просмотра изображений используйте Kitty/Ghostty или ANSI-запасной вариант.
  • Проволочное (wireframe) отображение Mermaid — это читабельный предварительный просмотр в терминале, а не полноценный движок компоновки Mermaid.
  • Сырой режим действует глобально для отображаемых блоков Markdown; это не переключатель на отдельный блок.
  • Рендеринг LaTeX охватывает распространённые символы и выражения, а не полную вёрстку TeX.
  • Команды копирования исходного кода по умолчанию нацелены на последний ответ ИИ, либо на N-последний, если команда вызвана как /copy N ....
Last updated on