The Hypertext Usenet Reader & Linker
HURL provides a searchable Web interface to Usenet news or
mailing list archives. For a sample archive system built with
HURL, see the HTML
Writers Guild mailing list archives or the fogo mailing list archives.
I almost never make time to work on this project. If you really want
the code, please send me a short message
but don't expect much; most of it was written over a decade ago
(it would probably run just fine with a perl 4 interpreter...)
See also: rough design notes.
- 8 Apr 2010
- improved message pages a bit, as progress towards making archives
look more blog-like:
- include replies inline below each parent
- changed from ugly preformatted text to proportional fonts
- display each message surrounded by a custom color for each user
- decode quoted-printable text (unless in a separate mime part)
- 7 May 2009
- added a Replies: field to each message listing the messages that
refer to it, if any. (ETA for real threading support: some time in
- changed the shortnames used in References: and Replies: fields to be
based on sender email addresses instead of msgids.
- 18 Feb 2001
- added support for searching against arbitrary headers
(the list of headers is defined in the config file for each
- added a max-age to each generated page, to make the pages
- 12 Jan 2001
I made some good progress today:
- added support for mbox
format archives; until now it could only deal with MH-format
archives, i.e. one message per file
- improved the date parsing a bit: no longer relies on my
particular archive storage format, now it gets dates from
envelope sender headers
- added support for multiple archives in one installation,
so it's easy to maintain dozens/hundreds of archives on a single
Most of the other material on this page (and linked from it)
dates back to 1994 and hasn't been updated. The text above
this paragraph is the only part that is up to date.
(last updated $Date: 2010-04-09 02:02:55 $.)
Query page (sample)
- Header searches:
Text matching against any header element (as defined by the
- Searching with errors:
Text matching with anywhere from 0 to 8 errors can be specified,
thanks to agrep.
- Case selection:
Searches can be case sensitive, or case-insensitive.
- Exact / regexp matching:
Searches can match the text exactly as entered, or using perl
Message list browser (sample)
- Allows for browsing of any number of messages in a list.
Article pages (sample)
- Browsing icons:
- Icons with links to the next or previous article by date, author,
or in the currently selected list of articles.
- Icons with links to the home page, query page, message list,
article filters, and help.
- Unavailable icons are ``dimmed'' and not linked, to prevent
- Intelligent header formatting:
- If the article was crossposted, the ``Newsgroups'' line is shown,
with links to the newsgroups themselves.
- The ``Subject'' line gets a link to a query for that subject
- The ``From'' line gets a link to an ``author page'' for that author.
- Each article in the ``References'' line gets a link, only
if the article is present in the archive.
- If the ``Followup-To'' line is different than the ``Newsgroups''
line, it is shown with links to the newsgroups themselves.
- Links within articles:
- Article references and e-mail addresses are linked if the article
or author exists in the archive.
- URLs are automatically recognized and linked.
- Article filters:
- Any article can be reloaded with each word linked to various
dictionary gateways elsewhere on the Web.
- Each author with an article in the archive has an ``author page''
with statistics about their posting history, links to a list of
their articles, to send them mail, or to finger them.
- Full-text searching
(thanks to glimpse).
- Search caching (easy to do, and a big performance win).
- Better docs, both for the interface and the installation.
- Support for mailing lists. (done)
- Better support for text-mode users. (done)
- Much more; see the exhaustive feature list.
If you're a spammer, you're probably more interested in this infinite list
of e-mail addresses.
Last modified: $Date: 2010-04-09 02:02:55 $
Gerald Oskoboiny, <email@example.com>