Display Individual Post, with tags and comments

Blog posts are displayed in full when the "read more" link or the title is clicked in the main Blog page. Blog posts use their own template, in which the relevant parts read:

Blog Post Template

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>[(site_name)] | [*pagetitle*]</title>
    <link rel="stylesheet" href="[(base_url)]assets/templates/basic.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="[(base_url)]assets/templates/forms.css" type="text/css" media="screen" />
       <base href="[(site_url)]" />
</head>
<body>
<div id="page">

<div id="header">
      <h1><a href="[~[(site_start)]~]" title="[(site_name)]">[(site_name)]</a></h1>
</div>

<div id="content">
<h3 id="headline">[*longtitle*]</h3>
[!PostTags?postDate=`[*pkDate*]` &dateFormat=`%d %b %Y` &tags=`[*pwTags*]` &tagShow=`2`!]

[*content*]

<hr  class="clearer"/>

[[Jot? &subscribe=`0` &pagination=`10` &sortby=`createdon:a` &numdir=`0` &placeholders=`1` &output=`0` &canmoderate=`bloggers` &captcha=`1` &validate=`name:Name is required,content:You have not entered any comment!`]]

<div id="blogComment">
<h4 id="blogCommentTop">Comments ([[Jot?&action=`count-comments`]])</h4>
[+jot.html.comments+]
[+jot.html.form+]
</div>

</div>
    <!-- close #content -->

    <div id="sidebar">
....etc.....
    </div>
    <!-- close #sidebar -->

<div class="clear">&nbsp;</div>

<div id="footer">
......etc.
</div>
<!-- close #footer -->
</div>
<!-- close #page -->
</body>
</html>


A little snippet called PostTags generates the date display and tag links:

PostTags snippet

<?php
//PostTags: create links from post's tags to tag-roundup page
// Updated 3 Sep 09
//
// parameters:
// &tagShow: ID of tag summary page (MANDATORY)
// - must be a page with a Ditto call with tagging extender
// &tags: TV containing list of tags
// &delimiter: tag separator; default to comma
// &postDate: unixtime date; default to createdon
// &dateFormat: strftime date format for output; default to %c

if (!isset($tagShow)) return "tagShow parameter must be set";

$delimiter  = (isset($delimiter)) ?  $delimiter  : ',';
$dateFormat = (isset($dateFormat)) ? $dateFormat : '%c';

$output  = '<div id="postDate"><h5>';

$postDate = (isset($postDate)) ? $postDate : $modx->documentObject['createdon'];

$output .= strftime($dateFormat,$postDate);

if (!empty($tags)) {
    $tagList  = explode($delimiter, $tags);
    $tagLinks = ' <span id="tagLinks">';

    foreach ($tagList as $tag) {
      $tagLinks .= '<a href="[~' . $tagShow . '~]?tags=' . trim($tag).'">' . $tag . '</a>, ';
    }
// remove trailing comma and space
    $tagLinks  = substr($tagLinks,0,-2) . '</span>';
}

$output .= $tagLinks . '</h5></div>' . "\n";

return $output;
?>