OK, I've had a think about this overnight, which is often a good way of clarifying an issue in ones head. Upon consideration, I think the best solution is as follows.

What is the nature of a comment? What makes a piece of text not just a piece of text, but a comment? I think the answer is that a comment is a (usually short) reply to something. (The length of a reply can easily be determined by a byte count if required, so I will ignore this feature of comments.) So what we need is a method for indicating that one hentry is a reply to another hentry.

I propose (or put my vote behind earlier proposals for) two methods and suggest that *both* be allowed.

1. Within the parent hentry, a class="hfeed replies" is used to group all direct replies to it. The entire replies hfeed must be within the parent *hentry* (not just within the parent hfeed). This solution suits a threaded layout, with each level of hfeed perhaps left inset by a few ems - similar to slashdot. No explicit visible links are required between an hentry and its parent, as the layout makes the relationships clear.

2. An hentry can link to its parent hentry using rel="in-reply- to" (or perhaps class="in-reply-to"). This is Sarven's proposal. This allows for comments to be placed in a sorted (e.g. chronological) order, where the link between a comment and its parent is not necessarily clear from layout, necessitating a visible link. In this case, the parent hentry needs a rel="bookmark" permalink or an id attribute on its root element, so that the child hentry knows where to link to. This solution also allows for an hentry to be in reply to multiple parent hentries, perhaps even hentries on different pages. When "in-reply-to" is found, this wins over "replies".

In the spirit of reusing term rather than inventing new ones, both ("replies" and "in-reply-to") are taken from RFC 4685 - Atom Threading Extensions.

Example in threaded style, showing only entry titles, contents and replies (i.e. omitting authorship for conciseness):

        <div class="hentry" id="article-101">
          <h1 class="entry-title">An Article</h1>
          <p class="entry-content">Some text.</p>
          <div class="hfeed replies">
            <h2 class="feed-title">Comments</h2>
            <div class="hentry" id="comment-7501">
              <p class="entry-content">A reply.</p>
              <div class="hfeed replies">
                <div class="hentry" id="comment-7509">
                  <p class="entry-content">Reply to reply.</p>
                </div>
              </div>
            </div>
            <div class="hentry" id="comment-7504">
              <p class="entry-content">Another reply.</p>
            </div>
          </div>
        </div>

Might be used with the following stylesheet:

        .replies
        {
                margin-left: 3em;
                padding-left: 0.5em;
                border-left: 2px solid silver;
        }
        .replies .replies
        {
                font-size: 90%;
        }

The same comment structure, shown semi-linearly:

        <div class="hentry" id="article-101">
          <h1 class="entry-title">An Article</h1>
          <p class="entry-content">Some text.</p>
          <div class="hfeed replies">
            <h2 class="feed-title">Comments</h2>
            <div class="hentry" id="comment-7501">
              <p class="entry-content">A reply.</p>
            </div>
            <div class="hentry" id="comment-7504">
              <p class="entry-content">Another reply.</p>
            </div>
            <div class="hentry" id="comment-7509">
              <p class="entry-content">Reply to reply.</p>
              <p>
                In reply to:
                <a rel="in-reply-to" href="#comment-7501">Fred</a>.
              </p>
            </div>
          </div>
        </div>

The same comment structure, completely linear:

        <body class="hfeed">
          <div class="hentry" id="article-101">
            <h1 class="entry-title">An Article</h1>
            <p class="entry-content">Some text.</p>
          </div>
          <h2>Comments</h2>
          <div class="hentry" id="comment-7501">
            <p class="entry-content">A reply.</p>
            <p>
              In reply to:
              <a rel="in-reply-to" href="#article-101">article</a>.
            </p>
          </div>
          <div class="hentry" id="comment-7504">
            <p class="entry-content">Another reply.</p>
            <p>
              In reply to:
              <a rel="in-reply-to" href="#article-101">article</a>.
            </p>
          </div>
          <div class="hentry" id="comment-7509">
            <p class="entry-content">Reply to reply.</p>
            <p>
              In reply to:
              <a rel="in-reply-to" href="#comment-7501">Fred</a>.
            </p>
          </div>
        </body>

Thoughts?

--
Toby A Inkster
<mailto:[EMAIL PROTECTED]>
<http://tobyinkster.co.uk>



_______________________________________________
microformats-new mailing list
[email protected]
http://microformats.org/mailman/listinfo/microformats-new

Reply via email to