Рендеринг 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 использует многоуровневую стратегию:
- Если эта функция включена и поддерживается, Qwen Code запрашивает Mermaid CLI (
mmdc) для рендеринга диаграммы в PNG и отправляет её через протокол терминальных изображений. - Если терминальные изображения недоступны, но установлен
chafa, тот же PNG может быть преобразован в ANSI-блочную графику. - В противном случае Qwen Code переключается на терминальный каркас или компактное текстовое превью.
- Если тип диаграммы 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 ....