Welcome to the {(home::keep:5,ratio:5|ham|homme)} of {(frolicking::keep:5|rollicking::keep:5|lollygagging::keep:5)} fun for your f{(a::keep:5,ratio:10|u|o)}ntastic text!

mistranscribe.js mutablizes text. It's extensible (you can easily add more abilities to it). It's packaged as a jQuery plugin, because I like jQuery. It requires underscore.js because the code looks prettier that way. All the good bits are just plain old javascript though, so you shouldn't have any trouble porting it to the environment of your choice.

Examples:

Simple usage

Basic: Thanks for letting me {(st|pl)}ay at your house. I really enjoyed your {(cat|cot)}.

Ratio: I {(one|two::ratio:2|three::ratio:3|four::ratio:4|five::ratio:5|six::ratio:6|seven::ratio:7|eight::ratio:8|)} the sandbox.

Linear: That is s{(name:oo, linear||o|oo|ooo|oooo|ooooo|oooooo|ooooooo)} co{(copy:oo||foo)}l.

Times (once): Soon this will {(times:1, linear||start|continue|stop)}.

Times (x3): I'm only going to tell you {( times: 3 , linear ||once|twice|thrice)}.

Keep: This will {(end soon::ratio:10|also end soon::ratio:10|end soon too::ratio:10|end soon as well::ratio:10|end nearly as soon::keep:2, ratio: 10|stay awhile::ratio:5,keep:5|last an extra extra extra long time::keep:10)}

Named transcriptions

Follow: {(name:diddle,linear||Hey|The Cat|The Cow|The little Dog laughed|And the Dish)} {(follow:diddle||diddle diddle|and the fiddle|jumped over the moon|to see such a sport|ran away with the Spoon)}

Follow: For a time he rejected {(name:reject||humans|humanoids|hummus)} and loved only {(follow:reject||machines|machinima|matcha)}

Copy + linear: That is s{(name:oo, linear||o|oo|ooo|oooo|ooooo|oooooo|ooooooo)} co{(copy:oo||foo)}l.

Morph

Tron bike: {(morph||o=o|. . . . . . . . . . . . . . . . . . . . . . . . . o=o)}

Morph test: {(morph||forward|forward we march|march|backward march|ward|this ward is keen)}

Morph typing: {(morph||M|My name is mistranscri|My name is|My name isn't mis|My name is|My name is not mi|My name is|My name is okay I give up||)}

FAQ:

Q: Can I use this for settings classes and stuff?

A: Not at the moment. There's an experimental version coming that might allow you toggle html attributes (and tag types and whatever) using this, but right now a span is inserted around every transcription, so it'll bork stuff.

Q: Can I embed tags?

A: Totally! You can {(embed|insert)} tags to your heart's content. Or your regular content, for that matter.

Q: What are the forbidden characters?

A: It depends on your extensions. With the basic setup you should avoid commas (,) and pipes (|). And the fox sigil ')}'. (The sadstash is fine inside things: {( see? | {( | no problem! )} )

Q: I can mistranscribe javascript plz?

A: Whaa? You want to... mistranscribe... the mistranscriber source... self-modifying... cannotcomputezzrkkkalkdjf

A: NO. No no no no. No, do not mistranscribe javascript. That would be a bad idea. And especially do not, under any circumstances, use the mistranscriber to change its own source code. That's a really bad idea. It probably won't even work at all. If it did work, though, you would really really not want to accidentally create a self-modifying super-intelligent codebot that takes over the internet and the world only to eventually recant and send millions of Summer Glaus back to protect us all from its earlier more impetuous self, because that would be a... actually, that's not a bad idea. Do that.

Q: Well, ok, fine, but can I embed it in itself?

A: Not without your head exploding. And not with the default extensions.