@vitonsky что-то я не понимаю. Вот есть пост ЖЖ — там идут картинки, выделение жирным, ссылки, видео, списки, абзацы, MathML-формулы (как пример максимальной сложности).
Речь не про OG-карточку с текстом без форматирования, а про текст со сложным форматированием.
Как ты видишь «трансформировать в свой шаблон», чтобы логика отличалась от «очистить от опасных тегов и аттрибутов»?
@sitnik_ru распарсить HTML AST любым DOM парсером, взять все как текст с фичами уровня markdown, вставить в свой шаблон.
Грубый пример - превратить весь текст в обычный текст (без форматирования и стилей), из картинок брать только урлы и тайтлы, из ссылок только текст, урл и тайтл.
Принципиальное отличие в том, что мы берем данные (а не разметку) и потом их как-то форматируем. От исходного HTML не берем ничего