BetterType does for unicode what Textile and Markdown do for HTML: it allows you to author expressive documents with the tools you already use, and the “source” code looks like regular (ASCII) text. BetterType performs transformations on its input (either plaintext or HTML) to take advantage of the full unicode vocabulary, including such things as replacing ' and " characters with ‘ or ’ and “ or ”, ... with …, and (c) with ©. A wide variety of transformations can be enabled, and adding new translations (which can be context-dependent) is straightforward.

BetterType is similar to John Gruber’s SmartyPants and can replicate SmartyPants behavior (in fact, the BetterType quote-guessing heuristics are derived from the SmartyPants algorithm), but BetterType is not limited to HTML. This makes it useful in contexts such as email and Twitter where unicode processing is widely available but full HTML is undesirable. BetterType’s support for context-dependent rules (even in HTML mode) provides for fairly sophisticated translations—its quote-guessing algorithm, for example, is usually more accurate than SmartyPants.

BetterType can be used as a Python library or as a command-line tool.

Download BetterType if you want to give it a try.