Попробуйте дать пользователю возможность писать свой HTML, но ограничьте возможности с помощью
HTMLPurifier-а (о нём
на хабре, есть
бандл). Он видится достаточно надёжным для того, чтобы пользователь не смог ввести ничего опасного. Дать ему возможность ввести основные html-теги и классы, а внешний вид - в отдельном css.