The new blog engine is well on its way and almost ready for its beta test. We’ve added extra features that weren’t on our original feature list. The features include:
- Pingback and trackback support - Almost done
- Pings services like Technorati, Ping-O-Matic etc. - Done
- In-site search engine - Done
- OpenSearch support in both HTML and RSS - Done
- Editable standalone pages - Done
- XHTML 1.0 Strict compliant - Done
- Section 508 compliant - Done
The name
The only thing missing is to find a great name for the blog engine. The name should reflect some of the key features such as:
- Lightweight
- Full featured
- Developer friendly
- Plug ‘n play
- Extendable
- ASP.NET 2.0
If you have any idea for a name, please drop a line in the comments.
Teaser
Before the end of the week, I’ll upload the beta project for anybody to take a look. It will be full featured, but not tested for stability and performance issues. As a teaser I can tell that the solution consists of two Visual Studio projects - the website itself and a business logic layer. The theming works by editing directly in a master page and a user control. That means that it has full Intellisense support and can be extended 100%. Each theme resides in its own folder as we know from other blog engines.
Gravatar icons can be used on all websites that lets users write comments. It could be in a forum or on a blog. The image is retrieved from the Gravatar website and is based on the e-mail address of the person that makes the comment.
It is very easy to set up because it is just a normal image where the src attribute point to the Gravatar website. Here is a method that writes out such an image. It takes an e-mail address and a size. The default size used by Gravatar is 80 (80x80 pixels), but you can specify a smaller size if you’d like.
protected string Gravatar(string email, int size)
{
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(Encoding.ASCII.GetBytes(email));
System.Text.StringBuilder hash = new System.Text.StringBuilder();
for (int i = 0; i < result.Length; i++)
hash.Append(result[i].ToString("x2"));
System.Text.StringBuilder image = new System.Text.StringBuilder();
image.Append("<img src=\"");
image.Append("http://www.gravatar.com/avatar.php?");
image.Append("gravatar_id=" + hash.ToString());
image.Append("&rating=G");
image.Append("&size=" + size);
image.Append("&default=");
image.Append(Server.UrlEncode("http://example.com/noavatar.gif"));
image.Append("\" alt=\"\" />");
return image.ToString();
}
On the webpage you could then write out the Gravatar image like so:
<%=Gravatar("post@example.com", 60)%>