У меня есть HTML, введенный пользователем, который отображается в шаблоне Yesod. Я хотел бы преобразовать этот HTML-код, удаляя из него атрибуты style
, прежде чем он будет отображаться, но я не могу узнать, как это сделать.Как преобразовать некоторый Blaze `Html` перед его рендерингом с Yesod?
Если мой шаблон содержит #{ html }
я могу передать html
в качестве значения с помощью функции просто писать #{ transform html }
, если функция transform
имеет подпись: transform :: Html -> Html
где Html
является типом, определяемым blaze-html
here. Проблема, которую я вижу, в том, что Blaze, похоже, не раскрывает функциональности, полезной для того, чтобы ходить по дереву HTML или даже просто получать потомков заданного Html
. Итак, какие стратегии вы бы предложили? Должен ли я попытаться проникнуть внутрь внутренних органов Blaze?
Я не уверен, что это должно рассматриваться исключительно как проблема с Blaze. Преобразование Html
элементов не является одним из основных вариантов использования Blaze, поэтому эту проблему нужно решать в контексте рендеринга с Yesod
Спасибо, это заставляет меня думать, что выполнение такого рода преобразований при визуализации страницы - плохая идея. Я должен скорее дезинфицировать этот контент, прежде чем хранить его в базе данных – danza