@vitonsky но DOMPurify ровно это и делает, парсит DOM и вырезает всё ненужное по белому списку.
XSS-атаки в основном строятся на том, что парсер начнёт сбоить и не увидит тега или аргумента.
Все эти же атаки протащат эти невидимы аргументы до Markdown-генератора и попадут в HTML выход из него.
@sitnik_ru как именно они протаскивают, если мы не используем оригинальный HTML, а только текст нод? Из `<a href="/foo">Hello</a>` мы имеем только данные `{type: 'link', url: '/foo', text: 'Hello'}`, который потом превращаем во что-то