Компонент превращает текст вроде ответов модели в настоящие элементы: заголовки, обычные списки и списки задач, цитаты, таблицы, блоки кода с кнопкой копирования и ссылки. Он разбирает текст в дерево и рисует его шаблонами, поэтому сырой HTML остаётся текстом и ничего никогда не вставляется как HTML.
С streaming недописанный текст выглядит так, как будет выглядеть готовый: незакрытый блок кода — уже блок кода, одинокий ** ждёт пары, а за последним словом идёт курсор. Блоки, которые не изменились, сохраняют свой DOM.
Ссылки работают только для веб-адресов, почты и телефонов, а изображения остаются ссылками, пока вы не включите images.
Документ
Заголовки начинаются с уровня headingLevel, чтобы встать под заголовки самой страницы. Широкие таблицы и код прокручиваются в своих областях.
Потоковый вывод
Тот же текст, по нескольку символов за раз. Ничего не мелькает служебными символами, и перерисовывается только последний блок.
Подсветка кода
nuiMarkdownCode рисует блоки кода вашим шаблоном — здесь с крошечной подсветкой синтаксиса. Шаблон получает код и его язык.