+void blogpost_render(struct blogpost *bp, int with_comments)
+{
+ const StrBuf *Mime;
+ int i;
+
+ WC->bptlid = bp->top_level_id; /* This is used in templates; do not remove it */
+
+ /* Always show the top level post, unless we somehow ended up with an empty list */
+ if (bp->num_msgs > 0) {
+ read_message(WC->WBuf, HKEY("view_blog_post"), bp->msgs[0], NULL, &Mime);
+ }
+
+ if (with_comments) {
+ /* Show any existing comments, then offer the comment box */
+ wc_printf("<a name=\"comments\"></a>\n");
+ wc_printf(_("%d comments"), bp->num_msgs - 1);
+ wc_printf(" | <a href=\"");
+ tmplput_blog_permalink(NULL, NULL);
+ wc_printf("\">%s</a>", _("permalink"));
+ wc_printf("<br>\n");
+ for (i=1; i<bp->num_msgs; ++i) {
+ read_message(WC->WBuf, HKEY("view_blog_comment"), bp->msgs[i], NULL, &Mime);
+ }
+ do_template("view_blog_comment_box");
+ }
+
+ else {
+ /* Show only the number of comments */
+ wc_printf("<a href=\"readfwd?p=%d?go=", bp->top_level_id);
+ urlescputs(ChrPtr(WC->CurRoom.name));
+ wc_printf("#comments\">");
+ wc_printf(_("%d comments"), bp->num_msgs - 1);
+ wc_printf("</a> | <a href=\"");
+ tmplput_blog_permalink(NULL, NULL);
+ wc_printf("\">%s</a>", _("permalink"));
+ wc_printf("<br><br><br>\n");
+ }
+}