Beest Variations on HTML

HTML is a nice document format. It has most of what conventional word processor document formats have except perhaps a header and footer, and the concept of a finite page. There is much about HTML that is good.

However for displaying data, it has long lacked a few essential features the absense of which merely demonstrates how things are ruined by the involvement of large corporations and powerless standards organizations.

So I went ahead and added several features which I wanted, not only for the future word processor variant of Beest, but also for the web browser and especially for the I/O library (beestlib). Here I shall try to list them all for you.

Drawn Images

Two-dimensional images can now be drawn using the DRAW tag. These images are limited to a size of 4096 by 4096 eight-bit pixels. When the SVGA driver is in 4-bit 640 by 480 VGA mode, pixels become limited to 4 bits obviously.

There are several subtags which deal with drawing. They are: PIXEL, LINE, HLINE, VLINE, LINEREL, RECT, FILLEDRECT, and TEXT. Two additional tags are not implemented: OVAL and FILLEDOVAL. Each of these takes a foreground color parameter (COLOR) and a list of vectors (VECTORS), which in the case of PIXEL supplies only one vector. TEXT takes several parameters but will eventually accept an inline style instead.

Compression is fully supported, in that firstly all tags except DRAW and the unimplemented oval-drawing tags have shortened equivalents; secondly, so do parameter names; and thirdly the vectors list can be compressed using a scheme that I developed which yields 30 to 50 percent compression by using 6 bits of each ASCII character to carry coordinate information.

For more information I refer you to the comments in group.c.

Three-Dimensional Models

The MODEL tag allows 3-D models to be displayed. At present they are static and their rotation occurs only once for each axis. As with 2-D drawn images, their data can be in compressed format. Unlike 2-D images, the set of sub-tags is smaller and consists only of points and lines. I shall add polygons and a z-buffer later. See the sample files cone.htm and model.htm for an idea on how to use the MODEL tag.

Ordered Lists

The ordered list tag has been updated to support the HTML 4.0 parameters TYPE and START. In addition, it includes OFFSET. This permits increments other than 1. Negative numbers are permitted for both START and OFFSET parameters.

To review 4.0 usage, the TYPE parameter allows you specify the kind of counting system to be used. A value of "1" indicates arabic counting, an "a" means lower-case letters, an "A" means upper-case letters, an "i" means lower-case Roman numerals, and an "I" means upper-case Roman numerals.

Each type except arabic is limited to a specific range of START values as follows: letters are 1..26, Roman is 1..25 (it quickly becomes too wide is the reason). If your START value falls outside, it is brought in. In future I shall add three more types: 2, 8, and x meaning binary, octal and hexadecimal.

The LI tag in 4.0 supports a TYPE value which can be any of "1", "a", "A", "i", "I", "DISC", "CIRCLE", or "SQUARE". All of these are supported, but the last three are all drawn as a small square since I haven't got a routine yet to draw a circle.

OVER tag

The overbar feature of CSS is new to HTML, and since I am not yet supporting CSS or inline styles, I have hadded the OVER tag to handle that. It looks like this.
Copyright (C) 2000 by Zachary Thayer Smith. This document is covered by the GNU Public License (GPL). For information about copying please see the provided description of the GPL in the file COPYING.