Лучший способ форматировать случайно скопированные тексты с других сайтов?

Проблема:

Мой сайт позволяет пользователям копировать / вставлять содержимое из других файлов / документов, таких как 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. В некоторых случаях это может не сработать или выглядит неуклюже, но это первое, что приходит на ум и может помочь решить проблему

Другие вопросы по тегам