User:Demi/SuperTextPopupHistoryAnnotate

It shouldn't need saying but this page doesn't mean squat on Wikipedia. Its only use it clarify my current opinions (and, in some cases, half-drunk, feverish ravings) about the subject at hand.

Anti-vandal measures based on strengthening the perimeter around Wikipedia are doomed to be disappointing. Vandals always hop a fence. The fix is to give everyone, but everyone a sponge. This blue-sky, impractical proposal addresses this by making vandalism so simple to revert it's almost hard not to.

It consists of several nonexistent mediawiki features working together to make it very easy to identify the edit (or stream or group of edits) "responsible" for a particular piece of vandalistic content, and therefore revert it.

AnnotationEdit

This is a clone of the cvs annotate command, but a bit smarter. It would group the current text of the article into chunks; each chunk would be associated with the oldest version in which it appears. Possibly these chunks could be identified using line-oriented diffs: it might be better if there were some smarter way of doing it, but it may not be possible to address this without arbitrary chunking.

Chunk RenderingEdit

At some layer (perhaps no-op markup) the rendered page is marked up according to the annotation. This associates the rendered item with the markup that rendered it. For example, with the right CSS class, everything could be given a hover attribute that shows the version number it's associated with.

For example, if [[Image:DonkeyBalls.jpg]] was added with version 1101 (and has remained unchanged), then it could be so tagged, and you could get a little yellow tooltip when you hover over the image saying "Version 1101" or something.

InterfaceEdit

From there it's an easy step to providing a little navigation link on hovering that sends you to the diff associated with the change. You could hover over a paragraph like this one get a little popup that navigates you to the diff associated with the change.

What diff to show? I think the tool would start with the "last" diff associated with the version in which the chunk first appeared that way. If the previous edit is by the same editor and the chunk changes, it would include it, and so on until this is not true.

What would be even niftier that just navigating to the appropriate diff page would be to actually show the diff right there in the popup, compte with undo link.

Imagine being able to remove penises, just by hovering over them and then clicking!