На мой взгляд, обрезка и вставка необработанного HTML представляет слишком много проблем с безопасностью. Никогда не доверяйте вводу пользователя. Даже если содержимое полностью безоблачное, на следующей неделе разработчик бюллетеня может принять решение изменить форматирование или включить какой-либо javascript, и вы будете нести ответственность за все, что может пойти не так.
Поэтому я бы реализовал парсер, который отбрасывал бы все, кроме части контента, и оставлял бы только b, a, h *, blockquote и подобные простые элементы, такие как разрешенные в сообщениях на форуме, а также их стили. После этого вы можете отобразить его как обычный пост в CMS. Я не вижу причин, по которым это должно выглядеть иначе.
Что касается того, как изолировать это от вашего другого CSS, вам на самом деле не нужно, если вы осторожны, чтобы все правила CSS вашей CMS применялись к элементам с конкретными классами. В качестве альтернативы, сделайте сброс CSS для ваших сообщений:
.post p {
margin: 0;
...
.post /* all the standard CSS reset rules preceded with .post */
, а затем
<div class="post"> content parsed from your CMS </div>