Disclaimer: I’ve zero experience with Vue, so this is going to be a generic response that you’ll likely want to just ignore anyway, because it’s going to try to convince you not to go down this road at all. Additionally, I apologize for the fact that the links in this post go to Angular topics, because that’s the framework I work in.
HTML is a relatively difficult language to parse and treat in a structured fashion, largely because so many things that were never intended in the first place have been shoehorned into it. Because it can also contain content that is “executable code” for most purposes, it’s got significant security concerns that require vigilant mitigation, especially when dealing with user-generated content.
I would urge you to pick something other than HTML as your domain transfer language here, and render that into HTML as part of your app. Some subset of JSON will probably be easiest to work with, but I’ve used this basic strategy with Markdown to implement message board functionality in an Ionic app.
One massive upside of going that route is that your current problem gets completely designed away, because you don’t have to worry about complex sanitization rules at all, and can just lay your content out as a heterogeneous list. Your colored box things can respond to events, have tooltips, twirl around in circles, or whatever you desire.