Лучший способ форматировать случайно скопированные тексты с других сайтов?
Проблема:
Мой сайт позволяет пользователям копировать / вставлять содержимое из других файлов / документов, таких как MS Word и веб-сайты (например, CNN.com), в предоставляемый нами Rich TextEditor. Этот Rick TextEditor поддерживает (и мы тоже должны поддерживать) вставку содержимого со встроенными стилями, это приносит случайные стили, теги встроенные стили из источника содержимого.
Например: если вы вставляете из любого документа MS Word, это приносит H1, H2, P, UL/OL/LI, STRONG, I, EM, TABLE
и т.д. с их собственными стилями. То же самое происходит, когда вы копируете вставку с других веб-страниц.
Как отформатировать? Я ищу лучший способ справиться с форматированием этих видов пользовательского содержимого. Во-первых, мне нужно сохранить скопированные теги без изменений. Допустим, H1 был получен от пользователя из MS Word - я должен сохранить этот стиль самостоятельно, используя корпоративный брендинг.
Другая проблема заключается в том, что когда вы копируете / вставляете из внешнего источника - некоторые теги не закрываются должным образом - это вызывает разрыв моего макета. Как мы справимся с этим?
Для стилей, м применение
.article * {
allKnownCSSProperties: myValues!important;
}
Любой метод будет работать. JavaScript, C# является предпочтительным.
2 ответа
Чтобы удалить нежелательные стили, достаточно простого регулярного выражения. В Javascript:
/( style=['"][^'"]*['"])/g
Я бы попытался решить проблему с отсутствием закрытых тегов следующим образом: проанализировать все сообщение и собрать теги, которые не заканчиваются />
и удалите их, если вы найдете тот же тег начинается с </
, Исключите теги, которые могут не иметь закрывающего тега, сгенерируйте закрывающие теги для всех тегов, которые все еще находятся в коллекции, и поместите их в конец макета Rich TextEditor. В некоторых случаях это может не сработать или выглядит неуклюже, но это первое, что приходит на ум и может помочь решить проблему