Announcing curl v2.0

curl is a tool for automatically generating the links between the HTML pages comprising a World Wide Web (WWW) document.

curl examines a contents file containing the file names of the individual pages, and modifies each file to include the necessary links to its neighbours, parent, initial page, and to pages listing the figures, tables, keywords and new pages in the document. These figures, tables, keywords, and new additions pages are generated automatically by curl. curl can also produce two kinds of contents lists, which can be automatically inserted into pages.

A medium sized document (consisting of over 350 pages) built using curl can be found at

The curl technical report outlines the problems which curl addresses, and gives an overview of the current features, and possible extensions. The abstract has some more details.

Summary of curl's Main Features

  1. Automatic link generation.
  2. Support for incremental link change.
  3. Hierarchical structuring.
  4. Recording of keywords, figures and tables.
  5. Link style files.
  6. A search engine.
  7. A new additions page.
  8. Easy removal of curl-generated links.
  9. Tools for analysing word occurrences.
  10. Tools for manipulating links outside the document hierarchy.

Obtaining curl

Download the winzipped file (840K).

Unzip it, e.g. on a UNIX machine:

This will create a directory called curl_release which contains the file README and five subdirectories called src, utils, docs, Defaults and example.

curl_release takes up 3.7MB, but the majority of that is for the Postscript version of the user guide (3.3MB). There is a text-only version of the user guide included, which is only 100K in size.


curl is implemented using standard ANSI C, but makes use of some slightly unusual C headers (sys/types.h, sys/stat.h, fcntl.h, fwh.h and dirent.h). Two of the utilities assume the presence of the UNIX tools touch and fgrep.

All the programs can be compiled using gcc (or equivalent).

Andrew Davison