Mango 0.4 released
This is a big deal. Mango has come a long way since the previous release. Changes have been made in many areas, most visible of which is the addition of a default theme (if you're reading this at mango.io you're looking at it).

- Navigation (top), and part of a post

- Simple search form

- Data URIs ensure that the style sheet requires no images

- Contact form
Mango themes are just style sheets – they're not coupled with templates the way they are in WordPress.
Changes since 0.3
-
It's now possible to enable subscriptions via the
SUBSCRIPTIONSsetting. With subscriptions enabled, commenters have the option of subscribing to e-mail notifications sent each time a new (non-spam) comment is posted on the thread.Since subscriptions require a database, this setting is disabled by default.
-
Mango now utilizes Akismet to filter spam comments. Enable this feature by adding
AKISMET_API_KEYto your custom settings file.This has reduced the number of spam comments that reach my inbox for moderation from dozens per day to just a few per week.
-
The default base template now comes equipped with asynchronous Google Analytics code. Activating Google Analytics is now as easy as adding
GOOGLE_ANALYTICS_IDto your custom settings file. -
Mango is now BSD licenced, like Django.
-
It's now possible to import content from Blogger or WordPress via a couple of handy scripts. Having access to these a couple of months ago would have saved me a great deal of time!
-
The cache can now be flushed by visiting
/flushcache/. This makes it possible to publish new content and have it appear immediately, rather than waiting for the index cache to expire. While this approach seems like a hack, there's no way for Mango to "know" when the cache should be flushed.You may worry that flushing the cache will incur significant overhead. It does not. Mango's caching is two-tiered: each individual document is cached, and the index containing all the cached documents is also cached. Flushing the cache in this way only deletes the index cache, so only new documents and documents which have been modified will be read, converted to
Documentobjects, and cached. -
Mango has search functionality at last. It's rudimentary, but doesn't suck as much as most. Search queries are broken into words and each document containing all the words is returned. Phrases are supported via "double quotes", à la Google.
Searches are performed against a document's Markdown, so metadata is inspected as well as the document's title and body.
-
Internally, Mango now resolves URLs in a much more sensible (and less error-prone) manner. Each
Documentcontains a list of URLs at which it can be retrieved, along with the canonical URL to which its aliases should redirect. Since documents are cached, resolving URLs no longer requires accessing the filesystem, making this process very fast. -
New error handling means that certain common gotchas now result in helpful error messages rather than unhelpful server error pages. This should make getting Mango running for the first time a bit easier.
-
The 404 template now has access to Mango's default context variables, which means that it is now styled like any other page on the site. The 500 template is still ugly, but I haven't yet worked out how to pass context variables to the 500 template (if you know the trick please fill me in).
-
Mango's cache keys have been changed to ensure that multiple Mango sites can happily share a memcached socket. All of Mango's cache keys are now
mango:-prefixed, so Mango should even play nicely with other apps. -
New
sanitizefilter strips potentially nefarious markup from comments.