Рендеринг 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-математики в терминале:
Строчная формула: $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
$$
\sum_{n=1}^{\infty} 1/n^2 = \pi^2/6
$$Рендерер фокусируется на распространённых символах и читаемом выводе в терминале. Это не полноценный движок TeX; сложные конструкции, такие как матрицы, выровненные уравнения и крупные вложенные выражения, могут быть упрощены.
Строчные выражения $...$ intentionally ограничены 1024 символами на строку, чтобы некорректный или очень большой сгенерированный Markdown не мог заблокировать рендеринг в терминале. Более длинные формулы остаются видимыми как исходный текст и могут быть скопированы из режима raw или исходного ответа.
Копирование исходного кода LaTeX
Используйте эти команды для копирования исходного кода LaTeX из последнего ответа AI:
| Команда | Поведение |
|---|---|
/copy latex | Копирует последнее блочное LaTeX-выражение. |
/copy latex 2 | Копирует второе блочное выражение. |
/copy latex inline | Копирует последнее строчное выражение. |
/copy latex inline 2 | Копирует второе строчное выражение. |
/copy inline-latex 2 | Синоним для /copy latex inline 2. |
Строчная LaTeX не показывает подсказку для копирования для каждого выражения в отрендеренном тексте, чтобы не загромождать прозу. Переключитесь в режим raw с помощью Alt/Option+M, когда хотите просмотреть строчный исходный код на месте; на macOS для этого требуется передача Option как Meta в терминале.
Общее копирование кода
Команда /copy code читает фрагменты кода из последнего Markdown-ответа AI:
| Команда | Поведение |
|---|---|
/copy code | Копирует последний фрагмент кода. |
/copy code 2 | Копирует второй фрагмент кода. |
/copy code typescript | Копирует последний фрагмент кода typescript. |
/copy code mermaid 1 | Копирует первый фрагмент кода mermaid. |
Выбор более раннего сообщения AI
По умолчанию /copy нацелен на самое последнее сообщение AI. Добавьте положительное целое число перед командой, чтобы копировать из N-го с конца сообщения AI — удобно, когда последний ответ малосодержателен (например, обновление TODO), а содержательный вывод находится на один-два шага назад.
| Команда | Поведение |
|---|---|
/copy 2 | Копирует предпоследнее сообщение AI полностью. |
/copy 3 | Копирует третье с конца сообщение AI полностью. |
/copy 2 code python | Копирует последний фрагмент кода python из предпоследнего. |
/copy 3 latex | Копирует последний LaTeX-блок из третьего с конца сообщения. |
/copy 1 эквивалентно /copy. Если N превышает количество сообщений AI в сессии, /copy сообщает фактическое количество, ничего не копируя. Без начального целого числа подселекторы, такие как /copy code python 2, сохраняют своё существующее значение (второй блок python в последнем сообщении).
Текущие ограничения
- Рендеринг изображений Mermaid зависит от Mermaid CLI и поддержки изображений в терминале.
- Асинхронное размещение встроенных изображений iTerm2 отключено в TUI, так как протокол привязан к позиции курсора; используйте Kitty/Ghostty или ANSI-откат для интерактивного предпросмотра изображений.
- Каркасный рендеринг Mermaid — это читаемый терминальный предпросмотр, а не полноценный движок компоновки Mermaid.
- Режим raw является глобальным для отрендеренных блоков Markdown; его нельзя переключать для отдельных блоков.
- Рендеринг LaTeX охватывает распространённые символы и выражения, но не полную вёрстку TeX.
- Команды копирования исходного кода по умолчанию нацелены на последний ответ AI или на N-й с конца при вызове как
/copy N ....