As Tom Munnecke says, PurpleNumbers are a (simple-minded) adaptation of Douglas Engelbart’s Open Hyperdocument System. Doug is also inventor of the computer mouse, the GUI, and co-inventor of hypertext (he and Ted Nelson; I think they still both like to argue about who should get credit.).

The idea is to create granular addressability at the sub-document level by assigning link targets to each significant component of a document, with a small link to each component visible onscreen near/next to the component. A person can click on the link to gain the URL to address that component. So, for example, if you and I want to talk about Tom’s remarks about Electronic Voting, it’s now possible: I stole the link from the purple number next to the text itself. For more perspective on this, you can also check out Doug’s Bootstrap Institute website. – MurrayAltheim

See PurpleNumber.

Purple Numbers for Wikis

Since wikis are dynamic documents, the meaning of a particular paragraph identified by paragraph-number can easily change. Therefore Purple Numbers either have to take document revisions into account, or provide some other addressing scheme.

Compare this with PermanentAnchors. The problem with Permanent Anchors is that these don’t spring into existence automatically; you have to place and name them explicitly.


QueerNumbers is a very experimental proposal for PurpleNumbers and non-static pages.

PermanentAnchors is a proposal for non-static sites – as the named anchors are moved from page to page, they still resolve. There is currently no proposal for automatically adding permanent anchors to all paragraphs. Adding something along the lines of Queer Numbers to Permanent Anchors seems promising.


Purple Numbers on Dynamic Websites

Trying to find a way to make Purple Numbers work for an XmlRpcFilteringPipe. (Similar to the Purple Numbers for Wikis thing.) I’m thinking a perhaps a hash in the page. Make it recognized on re-filtering: “This paragraph has already been taken.” Sort of like how the discussion timestamps here in CommunityWiki are recognized, and not over-written.

We should be able to link to a timestamped comment, shouldn’t we? Can we make some sort of simple hash out of the timestamp? There might be collision cases (making two marks at once,) but that’s pretty rare, I think.

Well, we could use [new:LionKimbro:2005-01-18 09:05 UTC:546929453] – use a totally random number as the fourth element, make the image link automatically into href=#546929453 and name=546929453 – so clicking on the image will take you to the “permalink” of the post…

Alex, the current purple number implementation makes little sense, because numbers are reassigned after edits and are therefore unstable for linking into the page.

Indeed, they work best for stable pages. Then again, most of the several hundred pages on this wiki are stable. Part of the motivation for starting with a suboptimal implementation was that we need to actually use it before we can improve it. At least that’s how I work. I cannot work on code nobody users for weeks and months without feedback, ideas, discussion. So early exposure of a suboptimal solution is part of the plan.

Talking to Eugene about PurpleNumbers I mentioned that most wiki pages don’t change. I decided to look at the numbers for CommunityWiki.

Days #Pages
1000: 102
 900: 128
 800: 210
 700: 189
 600: 80
 500: 251
 400: 359
 300: 264
 200: 259
 100: 466
   0: 229

Usability and Bugs

One observation is that cut and paste works strangely now. While blocks of code aren’t interspersed with ’#’ characters, ordinary paragraphs are.

Any ideas of how to solve it?

It would be nice if each Change in RecentChanges didn’t have a #

That should be solved, now.

Huh, seems to me that the “#“s are still there.

Each change in RecentChanges comes with a #? Not for me. I get a # for each paragraph and list items within ordinary page content, but not for each change on RecentChanges. Perhaps your browser is not loading the latest plinks.js? That would be surprising, though.

Eventual Removal

I wrote an Oddmuse:Purple Numbers Extension. Is this something we should try on this wiki? Note that I haven’t solved the problem of moving paragraphs around. It basically works for static pages. ;)

Starting to use it might provide some incentive to improve it, though.

I love the idea of trying it out. Maybe we’ll find it doens’t work. Maybe we can improve it. Maybe we’ll like it as is. Bring it on!


Notice how following such a link will highlight the target paragraph, too: PurpleNumbers#0. And this very link is also an example of how to link to anchors: Just write them as free links using double square brackets.

I also noticed that the various “new” links get an anchor, too (the light grey name below the portraits on the left). I wonder whether that’s good or bad.

One thing that’s mildly annoying is that the purple #s seem to be very slightly taller than ordinary text, which means that their appearance will make some text move. Apparently, this is because links are slightly taller (select some text to see), so if the last line has links the tailing # (a link itself) won’t change the height. So, it would be nice if the #s were maybe in a slightly smaller font or something. (This problem may depend of the browser and screen :P)

Of course, we’d still have a problem when the extra length of the # creates a new line, but at least we wouldn’t always have text jumping around.

Like some of the other experiments we’ve tried on CommunityWiki (eg. PageClusters), I think nobody ever uses this feature and the flashing purple anchors are mildly annoying. I therefore propose that we remove this feature.

Page clusters were removed from CommunityWiki. See 2006-08-17 Feature Karma for more info.

EditNearLinks: PageClusters PurpleNumber PermanentAnchor