I am currently working on the design of a blogging system (ala
WordPress, Movable Type) as an exercise of my independent study. As
part of the design, I would like to design and implement an
application-wide cascading undo model such as the one described by
Jan Vratislav (http://bit.ly/UYerR) In this model, undos are based on
a "cascade" of hierarchal actions in the history, whereby a user can
selectively undo an action (which also undos every subsequent action
in that action's hierarchy). At first look, it seems that it would
be fairly easy to model the action hierarchy at a higher level (e.g.
CRUD operations on articles, comments, pages, etc.), but it appears
things will get complicated at the content level for the content of a
particular article or page. My first thought would be to look at the
internal HTML representation of an article's content and base the
action hierarchy off of changes to individual DOM nodes/attributes.
Any further guidance on this issue would be greatly appreciated!