Introducing HyperNews

When you visit a HyperNews article and view a response, you can (depending on local access settings) add your own response to it, start a new thread, or navigate among the threads and responses in various ways.

For all the excitement over the Web—some justified, some exaggerated—a case could still be made for pinning the medal on Usenet as the most important and really original Internet contribution to communication. Fortunately, we have never had to choose between them—and now, with the availability of Daniel LaLiberte's HyperNews package, we can have the best of the functionality of both in one place.

A HyperNews “base article” is a WWW page, with a newsgroup-like segment at the end (see Figure 1--in fact, look at it more than once as you read). The HyperNews segment is organized by thread, with cascaded response subject lines. The responses, moreover, may be entered as plain text, “smart text” (does some formatting for you), a URL, or HTML. Thus the body of any response can incorporate another web page, operate as a mini-web page of its own, or simply consist of a Usenet-like typed statement.

When you visit a HyperNews article and view a response, you can (depending on local access settings) add your own response to it, start a new thread, or navigate among the threads and responses in various ways. Any response you add can—in fact, must—be previewed before it is finally posted, so you have a chance to see what your response will look like and, if you included hyperlinks, whether you got them right.

Retrieving a HyperNews base article is just like retrieving any other web page. Initial access generally goes through the “get” script, so a typical URL looks like

This sample URL actually points to the HyperNews home page, which is not only indispensable if you are interested in running the package, but also provides a pretty spectacular example of HyperNews in action. As you will see if you visit, it is possible to have any number of base articles at a given site—after all, they are web pages. This home page also offers a glimpse of the range of roles that a HyperNews extension can play in the life of a web page. The response section can shoulder most of the substance of the page (as in the “Bugs” article, where much of the information sought is likely to reside in the response section); or function as a relatively low-key guestbook-style scratchpad; or anything in between.

Anatomy of a Base Article

What you see when you visit a HyperNews article is basically a web page with a response outline—possibly a very long one—at the bottom. Behind the scenes, the HyperNews base article is a virtual home page, constructed on demand by the suite of Perl scripts which make up the HyperNews distribution. It consists of the following four sections, each of which is configurable in various ways, shown in Figure 2.

The separation of the base article into these several logical components gives you quite a bit of control over its look and feel. Each base article has an associated .html.urc file in which header, footer, and body URLs are specified. This makes for relatively easy maintenance and testing—perhaps no easier than any other non-trivial web installation, but it's nice that the pieces are separate and that the scripts do the bulk of the work in making sense of them.

The body, in most cases, contains whatever the page is really “about”. There's no point giving examples here—it's a web page, with everything that implies. During the process of creating a base article, you can enter the body by hand in HTML, plain text, or “smart text”; or you can specify a URL. If you enter text or HTML, HyperNews creates a name-body.html file for you, which you can later edit. If you specify a single URL for the body, your base article will consist of a retrieval of that URL, positioned among the other elements of the HyperNews page as sketched out in Figure 2.

The header and footer can be specified in the installation-wide configuration file hnrc, and/or separately for one or more base articles in the relevant .html.urc file(s). Installation-wide header and footer specifications in hnrc may consist of text, URL, or HTML. (I'd advise against putting full-blown HTML in the header specification, though—it's unlikely to be necessary, and it doesn't always mesh with the icons it ends up sharing space with.) Per-article header and footer specifications consist of URLs whose sources will be retrieved and placed, respectively, above the body and below the responses. The header and/or footer can also be left empty.

Both header and footer are propagated to the responses; that is, every response to an article (and responses to responses, etc.) includes and displays their base article's header and footer. This means that you should probably keep the size of the header and footer down, and that they should be relevant to every response, or at least unobtrusive (i.e., this is probably not the right place for site-wide greeting messages).