It should parse markup and insert the text / annotations to the canvas text object.
It's a stricter XML-like variant as described in the original proposal, with the only allowed tags at the moment being: <span> <item>, <a>, <ps> and <br>. For compatibility this should also allow </> as a generic tag closer.
It should just use the public cursor and attribute APIs, though should be sufficient.
It's essentially mostly a copy-paste from textblock.c and just passes the format strings directly to textblock to process, it doesn't actually need to validate the properties themselves.
I'm not sure if it's any good, but there's eina_xml that could help with parsing.
It should be strict, as I said, so should no longer allow <font=12> it should be a span if that is what's wanted.
Also make sure to take the new annotation ephemeral property into account. Those with this set to true should not be serialized as they are just temporary decorations and not part of the content.