Mango 0.2 released
Commit 198 has been tagged "0.2". This release adds flexibility in a number of areas, and tweaks existing behaviour in several ways. Creating templates has been made simpler thanks to additions to Mango's common context variables.
Changes since 0.1
-
Improved caching. (Further improvements are planned in this area.)
-
Support for custom post types. Mango provides templates for posts and pages, but things such as podcasts and slideshows are likely to require special treatment. To have a Markdown file rendered by a custom template simply add
type: ...to the file's metadata. To specifypodcast.dhtml, for example, addtype: podcastto the meta section. -
Updated to version 1.1 of the Disqus API. Note that Mango now requires the updated python-disqus-client.
-
Comment notification e-mail now contains a "respond" link, and the "mark as spam" link has been replaced by a "mark as spam and delete" link.

-
Each comment now includes its author's IP address, which is useful as Disqus provides the ability to blacklist/whitelist commenters by IP address.
-
The posts directory (or any directory below it) may now contain a file named "foo.text" and a subdirectory named "foo". Previously, the presence of the directory would result in /foo/ rendering the category template rather than the converted contents of foo.text.
Now, files take precedence which allows the following structure:
docs/ templates/ archives.text category.text ... templates.text docs.textThis will be familiar to those who've dealt with static sites in the past.
docs/ index.html templates/ index.html archives.html category.html ...Note that in the structure above there are two files with the meaningless name "index.html". Mango ensures that all files can be named descriptively.
-
The functionality of a Mango site can now be extended more neatly. Previously, the recommended method for adding a new view, say, was to add a new line to the project-level
urls.pypointing to the view (saved in a custom views file).Django applications should touch the containing project in as few places as possible. With this in mind, Mango now pulls in
urlpatternsfromsettings/custom.py, if this file exists. This allows patterns to be added to match custom views. -
views.context_defaultsnow returns a dictionary with two additional entries:archivesandposts.archivescontains the[(year, month, [posts]), (year, month, [posts]), ...]list named "posts" in 0.1.postscontains a simple ordered list of posts.Having access to a flat list is useful as several views had been calling
utils.postsand unpacking the tuples to generate such a list.Additionally, since both
archivesandpostshave been added to Mango's common context variables, every template has access to this data. This has been used here at mango.io to provide a list of recent posts in the sidebar. -
New category and tag templates, to allow these pages to be presented differently from the home page.
-
PATH_TO_POSTSandPATH_TO_STATICmay now contain "~" (representing the user's home directory).