Returns a list of widgets representing texts parts, each with its own style.
Text enclosed by start and end markers, gets the given wordStyle.
Text not enclosed by markers, gets the given textStyle.
Revises the given rawMarkers, merges overlapping or embedded words
to one big "block" and returns a list of WordMarkers which represents
such "clean" word blocks.
Sorts the given rawMarkers by their index from lowest to highest.
Adds tags to the given text to mark words/blocks
enclosed by the given markers.
The tags must be exactly 2 characters - one opening and one closing tag.
Used to sorts WordMarkers by their index, ascending.
If indexes are identical and marker types are different,
the start marker comes first and the end marker comes second,
making the resp. blocks intersect/overlap at that position.