Blog article

Goal: I just want to see the gravatars not only for comments but in the article’s title also.

I have no prior knowledge of Mephisto (this is my second day with it) nor Liquid. So, here is how i did it … may be far from perfect but it seems to pull it off:

Comments, easy:

There is already a method gravatar that receives a hash with the comment properties and does the trick. So, placing the following line in the right spot of the appropriate liquid file (for me that’s the _article.liquid file) should be enough:

{{ comment | gravatar:50,'avatar'' }}

Articles are a little more tricky

Since there is no support in for gravatars for article’s author i’ve coded a simple initializer to add a new method for this purpose and keep the original code as clean as possible. This initializer adds the method gravatar_for_article to the UrlFilters module.

module UrlFilters
  def gravatar_for_article(article, size=80, default=nil)
    article = Article.find article["id"]
    gravatar({'author_email' => article.user.email,
                    'author' => article.user.login},size,default)
  end
end

The code above creates a new hash from some of the article’s properties to mock the comment structure and passes it to the original gravatar method. Now, place the following line inside the article’s header and voilá.

{{ article | gravatar_for_article :60,'avatar' }}

Style it and you’re done.