8 Configuring the Citation Engine

At the heart of Supercite is a regular expression interpreting engine called Regi. Regi operates by interpreting a data structure called a Regi-frame (or just frame), which is a list of Regi-entries (or just entry). Each entry contains a predicate, typically a regular expression, which is matched against a line of text in the current buffer. If the predicate matches true, an associated expression is evaluated. In this way, an entire region of text can be transformed in an awk-like manner. Regi is used throughout Supercite, from mail header information extraction, to header nuking, to citing text.

While the details of Regi are discussed below (see Using Regi), only those who wish to customize certain aspects of Supercite need concern themselves with it. It is important to understand though, that any conceivable citation style that can be described by a regular expression can be recognized by Supercite. This leads to some interesting applications. For example, if you regularly receive email from a co-worker that uses an uncommon citation style (say one that employs a ‘|’ or ‘}’ character at the front of the line), it is possible for Supercite to recognize this and coerce the citation to your preferred style, for consistency. In theory, it is possible for Supercite to recognize such things as uuencoded messages or C code and cite or fill those differently from normal text. None of this is currently part of Supercite, but contributions are welcome!