Saturday, December 9, 2006

Better Beta Comments

I've been setting up a new personal blog and getting re-aquainted with CSS (its been awhile) and the new Blogger Beta. There are not that many templates available yet, and most of them utilize 'widgets' exactly the same.

The 'x comments' link not only displays the comments without your template, with the 'Blogger' look and feel, but also includes the form, whether or not you want to leave a comment. I much prefer the option to expand comments at the bottom of the original post. This is done by default when you view a post on it's own page. Also, even though the comment widget seems to be able to detect whether or not singular (1 comment) or plural (x comments) nouns are called for, some implementations spit out plural, regardless.

Here's my fix. On the 'Edit HTML' screen, click 'expand widget templates'. Now replace the entire 'post-comment-link' span in your template with the following code:


<!--Jeffapotimus' comment hack-->
<span class='post-comment-link'><b:if cond='data:blog.pageType != "item"'>
<b:if cond='data:post.allowComments'>
<b:if cond='data:post.numComments == 0'>
<span class='comment-link'>0 comments</span>
<else/>
<a class='comment-link' expr:href='data:post.url + "#comment-anchor"'>
<b:if cond='data:post.numComments == 1'>1 comment
<b:else/><data:post.numComments/> <data:top.commentLabelPlural/>
</b:if>
</a>
</b:if>
<a class='comment-link' expr:href='data:post.addCommentUrl'
expr:onclick='data:post.addCommentOnclick'>Add comment</a>

</b:if>
</b:if>
</span>


And then find the 'comments-block' in your template and insert an anchor:

<a name='comment-anchor'/>

Now when a post has no comments '0 comments' is not linked. '1 comment' or 'x comments' links to the original post with the page scrolled to the expanded comments. The 'Add comment' link goes to blogger's existing comment form.

This may not be the most elegant or extensible solution, but I've been out of the game for awhile. If anyone knows of a simpler way to do this, please let me know.

Second Test Post - or just how long a headline can we slap on this bad boy?

Vivamus tempus, mi at vulputate ornare, eros turpis sollicitudin felis, eget ultrices metus velit eu orci. Ut vitae lacus. In pharetra scelerisque ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus fringilla, nibh ac convallis egestas, felis quam imperdiet diam, vel vehicula leo felis vitae augue. Cras tincidunt porttitor leo. Sed purus leo, porta in, dictum nec, ornare sed, magna. Ut viverra nulla non pede. Praesent dignissim sem non mauris. Curabitur ultricies, tellus sit amet eleifend ultrices, turpis neque tempus nisl, nec faucibus ante mauris in velit. Pellentesque id pede ac odio ornare aliquam. Phasellus accumsan, dui at tincidunt scelerisque, justo neque eleifend orci, vel mattis sapien ante a mauris. Etiam odio ligula, ultricies volutpat, tincidunt sit amet, volutpat ac, odio. Etiam libero est, scelerisque accumsan, iaculis a, gravida quis, pede. Nunc at est vel purus elementum iaculis. Sed id enim ac dui rhoncus convallis. Donec nunc. Etiam laoreet interdum sapien. Nulla ipsum ipsum, facilisis vel, congue ac, aliquam ac, massa. Cras aliquet massa in dui.

In eu ipsum. Aliquam diam. Fusce ipsum. Nullam ultrices sodales purus. Praesent leo nisl, ultricies vitae, blandit sit amet, cursus a, diam. Suspendisse faucibus diam sit amet sem. Pellentesque quis nisi. Cras molestie ullamcorper diam. In vel erat dictum nisi faucibus aliquam. Morbi viverra metus eget nisl. Morbi aliquam justo id ante. Mauris ut diam. Quisque fringilla, lacus at egestas congue, nibh felis convallis enim, vitae semper turpis sem vitae neque. Curabitur interdum tellus vel tortor. Morbi vel tortor. Vivamus nulla. Donec ultrices, orci et rutrum blandit, lacus mi vehicula est, sed accumsan mi enim tincidunt tortor. Praesent placerat eros sed nibh.

Ut venenatis convallis dui. Mauris quis pede. Vivamus quis odio. Morbi tristique. Cras nulla urna, adipiscing suscipit, placerat id, dapibus eget, velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Curabitur sodales eros. Aliquam erat volutpat. Etiam aliquam libero vitae diam. Integer metus velit, nonummy nec, convallis at, consequat ut, tortor.

Test Post

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In eu neque. Ut tempus scelerisque nulla. Donec tempus, magna eget ultricies tristique, ligula risus iaculis tortor, porttitor tempor turpis ligula id nulla. Ut et ligula at eros nonummy luctus. Ut varius pharetra dolor. Maecenas euismod. Suspendisse turpis metus, aliquet sit amet, egestas nec, tempus vitae, dui. Aliquam nisi enim, venenatis id, aliquet nec, molestie non, velit. Ut vitae dolor. Ut euismod molestie ligula. Cras lectus ipsum, eleifend id, dignissim ac, venenatis in, neque. Nullam lobortis congue turpis. Phasellus erat. Ut massa felis, accumsan sit amet, tincidunt non, imperdiet vel, enim. Nam suscipit lectus quis lorem. Morbi laoreet facilisis augue. Aliquam bibendum, nunc ut aliquet imperdiet, lorem elit bibendum enim, accumsan varius mauris urna vel purus.

Donec massa nunc, porta vitae, posuere a, molestie ac, est. Proin mattis orci quis sem. Nunc venenatis, nisl ornare sagittis facilisis, enim metus elementum erat, ut volutpat nisi neque sed nibh. Donec eget erat. In eros mi, tempus eget, mattis id, mollis nec, neque. Mauris cursus nonummy nisl. In eleifend metus et leo. Suspendisse ipsum. Donec ultrices dolor non neque. Praesent risus. Vivamus vel ipsum.
Vivamus tempus, mi at vulputate ornare, eros turpis sollicitudin felis, eget ultrices metus velit eu orci. Ut vitae lacus. In pharetra scelerisque ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Vivamus fringilla, nibh ac convallis egestas, felis quam imperdiet diam, vel vehicula leo felis vitae augue. Cras tincidunt porttitor leo. Sed purus leo, porta in, dictum nec, ornare sed, magna. Ut viverra nulla non pede. Praesent dignissim sem non mauris. Curabitur ultricies, tellus sit amet eleifend ultrices, turpis neque tempus nisl, nec faucibus ante mauris in velit. Pellentesque id pede ac odio ornare aliquam. Phasellus accumsan, dui at tincidunt scelerisque, justo neque eleifend orci, vel mattis sapien ante a mauris. Etiam odio ligula, ultricies volutpat, tincidunt sit amet, volutpat ac, odio. Etiam libero est, scelerisque accumsan, iaculis a, gravida quis, pede. Nunc at est vel purus elementum iaculis. Sed id enim ac dui rhoncus convallis. Donec nunc. Etiam laoreet interdum sapien. Nulla ipsum ipsum, facilisis vel, congue ac, aliquam ac, massa. Cras aliquet massa in dui.

In eu ipsum. Aliquam diam. Fusce ipsum. Nullam ultrices sodales purus. Praesent leo nisl, ultricies vitae, blandit sit amet, cursus a, diam. Suspendisse faucibus diam sit amet sem. Pellentesque quis nisi. Cras molestie ullamcorper diam. In vel erat dictum nisi faucibus aliquam. Morbi viverra metus eget nisl. Morbi aliquam justo id ante. Mauris ut diam. Quisque fringilla, lacus at egestas congue, nibh felis convallis enim, vitae semper turpis sem vitae neque. Curabitur interdum tellus vel tortor. Morbi vel tortor. Vivamus nulla. Donec ultrices, orci et rutrum blandit, lacus mi vehicula est, sed accumsan mi enim tincidunt tortor. Praesent placerat eros sed nibh.

Ut venenatis convallis dui. Mauris quis pede. Vivamus quis odio. Morbi tristique. Cras nulla urna, adipiscing suscipit, placerat id, dapibus eget, velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Curabitur sodales eros. Aliquam erat volutpat. Etiam aliquam libero vitae diam. Integer metus velit, nonummy nec, convallis at, consequat ut, tortor.