We're proud to announce the official 0.7 Noh-Varr release. We've worked hard on this release squashing bugs, enhancing the experience, and adding features that will make your life easier. We've cleaned up our converters, made it easier to manage comments and spam, enhanced our templating system with new tags, made it easier to apply a new look and feel to your site with our new theme manager, and many other things. Mephisto was already the best publishing system ever, and now we've upped the ante, but I think we're gonna stick with the tag line.

Note: A quick hotfix was just deployed. the_mug in #mephisto finally figured out the odd issue where rake db:bootstrap wasn't finding the tzinfo library when it was frozen in /vendor. If you're having an issue with tzinfo, either make the small change, copy over the new lib/tasks/bootstrap.rake file, update from subversion, or re-download the 0.7.2 archive.

Create and share your themes

Looking good has never been easier. Inspired by Star Trek's transporter, you can now beam up and down new themes just like Scotty. Mephisto's new theme manager lets you import, export, and apply new themes in just a few clicks. If you've created a new theme and want to release it into the wild, you can export it from the admin and it will be packaged as a zip file that you can distribute to your mates. When your mate wants to partake in your swanky new theme, he can select "Import new Theme" in the administration and be on his way to looking good. Simple and easy, just like we intended it to be.

Stop spam and manage your comments all before breakfast

Spam is a huge problem on any site that allows user input, especially blogs with comment functionality. We've decided to use Akismet for spam control. Akismet was in 0.6, but it was broken slightly (whoops!). We've fixed our Akismet implementation and I can confirm that it works really well. Also, approving and unapproving of comments will report back to Akismet in order to help improve their system.

When a comment is flagged as spam, it will not be published to your site. Instead, the article title in which the comment was posted will appear in your Overview screen side bar, and a new button will be available labeled "Moderate Comments". If you want to manage your spam comments on a per-article basis, you can click these article titles and go to a screen which you can moderate the comments for it. If thats not fast enough, you can click the "Moderate Comments" button and see all unapproved comments. You can delete and approve these comments one by one or you can delete or approve these comments with one click, making it quick and easy to deal with comments.

Never lose those old urls

One of the biggest pains while migrating from another publishing system is the fear of losing your urls. We recognized that fact and Rick implemented a really smart and intuitive dynamic routing system (or a way to make most urls work for the technically challenged).

If your old articles are under /cool/taculo/us/2006/10/10/i-am-cool or just blog/i-am-cool, it's not a problem.

No more .htaccess

Mephisto now has its own syntax for specifying site redirections. You could always do this with your web server of choice (Apache, Lighttpd, Nginx), but the configuration settings vary wildly and can get quite complex. Here are some common recipes:

  • Getting trackback traffic from an old weblog engine on your domain?
Mephisto::Routing.deny 'articles/trackback/*'
  • Need to redirect invalid permalink URLs to a new format?
Mephisto::Routing.redirect 'article/?/?/?' => 'new/$2/$1/$3'

More examples of redirections are listed in the default environment configuration file.

Preview articles using your design

Another big issue we've had with systems in the past was that you couldn't preview your content using your own themes. You'd end up publishing an article only to find out that you had images running wild into your side bar, or your headers weren't clearing properly. Ouch! In 0.7, When you save an article for the first time, a "preview" button is made available to you so you can tweak your content 'til you're blue in the face.

Edit and keep editing

In 0.6 it was pretty cumbersome to write a little and save, write a little more, and then save. Each time you saved the article, you were taken back to the Articles overview screen. What a pain! We're a little older and a little wiser now though. In 0.7 Noh-Varr we default saving and updating to Create/Update and keep editing so you never have to break from your writing cycle.

Significantly upgraded templates

Inspired by Barry Bonds and his ability to do what ever it takes to hit a home run, we've put our template system on steroids...well, maybe we didn't go that far, but we beefed up Liquid with new tags and filters. Here are a few notable ones:

  • include: Include partials in your templates. This really helps to dry up templates that use the same structure throughout the site. For instance, in the new default theme Simpla by Phu Ly, I make heavy use of the include tag by having a _shared.rhtml template that I include in most of the other ones.
 {% include 'shared' %}
  • linked_section_list, linked_tag_list: Pass in an article, and get back all the sections or tags linked up and ready to go.
 {{ article | linked_section_list }}
{{ article | linked_tag_list: ' and ' }}
  • child_sections, descendant_sections: Sometimes you need more cow bell in the form of nested sections. This is a snap to do in the admin by modifying the permalink of a section. For instance, maybe you have a projects section and you want to have development and design sections included under projects. You'd just modify the permalink of development to be projects/development and your good to go (rinse and repeat for design).

Thats all fine and dandy, but you'll also need to access these sections in your templates, here goes:

  {{ 'projects' | child_sections }} # => any sections with a path matching projects/foo, but not projects/foo/bar
  {{ 'projects' | descendant_sections }} # => any sections starting with /projects/*
  • site.lastest_articles, site.latest_comments: Pretty self explanatory, but it gets you the latest articles or comments.
{{ site.latest_articles: 5 }} #=> Get the 5 latest articles
  • assign_to, assign_to_global: Assign variables from within your templates. assign_to is scoped within blocks, where as assign_to_global is scoped to the template.

  {{ 5 | assign_to: 'age' }} sets age = 5
  {{ site.tags | assign_to 'tags' }} sets tags = site.tags

And check out this beauty:


  {{ 'about' | section | latest_article | assign_to: 'bio' }}

Let me explain that last one! about gets passed through section, whose results get past to latest_article, whose results get assigned to the variable bio. Might sound a bit complex, but it's really simple. Here's what it might look like using Rails' Active Record:

bio = Section.find_by_path("about").articles.first

Check the CHANGELOG for full details on 0.7

1.0 is next

We're comfortable enough with Mephisto 0.7 to say that 1.0 is next. We'll be working on a number of things for 1.0, but our main focus will be enhancements to existing features. There are some things we want to clean up in the UI and we also want to look into what we can do to enhance our plugin system.

In addition to that we've been talking about an initial setup screen for converting from other blogging systems and general config replacing the current boostrap command among other things.

Finally, we'll look into implementing the multi-site interface removing the command line ninjistics from the process. We'll reveal more details once we figure them out ourselves. Until then, enjoy 0.7 and be sure to join the Google Group.

Might we make a request

We'd love it if members from the community would step up in their spare time to help us out in these areas:

  • Creating new themes or porting existing ones. There are all types of themes available for other systems that most theme authors would be happy to have ported over to Mephisto. We'd also love some unique themes for Mephisto.
  • Documenting new tags and general tricks. If you've used a tag that isn't documented on the wiki, please document it! In addition to that, if you do something cool with your templates, or figure out how to do something that was giving you grief, please document it!

You People Rock

A huge thanks goes out to Cloves for stepping up to run the online Mephisto demo. It can get a little chaotic sometimes, but it should provide a quick way to take Mephisto for a test spin.

We've gotten a lot of great feedback on Mephisto (and one not-so-great). Thanks to everybody who has helped out on the mailing list and in #mephisto, and to those who've posted their thoughts on Mephisto all over the web (we're stalking all of you). You've been a big help in getting people interested in the project and providing a great community for Mephisto users. Now that you've finished not reading this entire post, we hope you have fun with Mephisto!