HACKER Q&A
📣 chrisecker

Is there prior art for this rich text data model?


I've built a rich text data model for a desktop word processor in Python, based on a persistent balanced n-ary tree with cached weights for O(log n) index translation. The document model uses only four element types: Text, Container, Single, and Group — where Group is purely structural (for balancing) and has no semantic meaning in the document. Individual elements are immutable; insert and takeout return new trees rather than mutating the old one. This guarantees that old indices remain valid as long as the old tree exists. I'm aware of Ropes, Finger Trees, and ProseMirror's flat index model. Is there prior art I should know about — specifically for rich text document models with these properties?


  👤 PaulHoule Accepted Answer ✓
So my first take is that there is something off about all WYSIWYG editors going back to Microsoft Word. Like you try to select some text to cut-and-paste and you can select the whole text except the first letter but if you try to get the whole text it suddenly jumps to select the whole document. Or hitting the "B" button sometimes bolds the paragraph above where you are, etc. It's like there is something wrong with the conceptual model behind all of these things.

So when I read "Group is purely structural (for balancing) and has no semantic meaning" my blood runs cold. Here's a mysterious something hidden in the document which bizzare misbehavors will be centered around. Like maybe when I try to select something and I got something else, it is one of those groups.