Looking at the abovementioned implementation, I can't make heads or tails of whether it follows any logically defined standard when making up unique block IDs. Are they chronological? Or by post number? When should it use letters and when numbers should be used, and why? I can't seem to find anything clear on this on the Purple site itself either.
Otherwise it seems to be relatively easy to do:
1. Parse the post for tags with preg_match for /<.+>/ pattern.
For each of these:
2.1. If it's a known block open tag, generate id, stick an anchor after the tag, push the id and the tag on the stack.
2.2. If it's a block close tag, pop the id and tag off the stack. If the tags don't match, whine, otherwise make a purple link before the tag.
3. If we're done and there's anything left on the stack, whine. Otherwise reassemble the whole thing and return it.
There'll be debug problems because there's quite a few ways to make this kind of code behave unexpectedly, but this is just a debug time issue - feed it an average sized blog and keep kicking it until it's consistent enough.
The question is, how to generate IDs. If I had a concise description of how it should be done, I could probably do it, though since I don't have any use for such a module, my enthusiasm would be kinda slim.