Markup Language

  The term "markup" automatically assumes text. Markup is written, and
writing is readable. Markup isn't binary, isn't computerish, and isn't
icky.

  I like HTML. Originally I thought HTML was the way computers
understood things to show on screen.

  I like things to be better than they are. SGML gave birth to HTML, and
I want to produce an even more simple (and therefore useful) kind of
markup.

  It has no name. It is "markup language"--nothing more, nothing less.

  There are only two types of markup: single and combined.

  Single is an element defined in itself. A division, for instance, has
no relationship to either its precessor or successor.

  A combined element is something defined only in terms of its
application. A paragraph, for instance, is meaningless without its
contents.

  There are only two types of attributes: individual and familial.

  Individual attributes are not shared.

  Familial attributes are shared among brothers and sisters.

  All combined elements of the same name are siblings, unless divided by
a singular element.

  All elements are generated by the sequence <name>, where "name" is an
element name known according to the document type, and may contain only
[_0-9A-Za-z] (note: it is up to the document type definition to exclude
names beginning with the digits 0-9).

  Attributes are set through the sequence name, "value", where name is
defined as an individual or familiar attribute in the document type, and
value does not contain "-marks or <> signs (note: ' is not used).

  Instructions are generated by the sequence <$>, where $ is a token.

  </> is used to terminate an element.
  <-> is used to generate a sibling of the previous element.

  A combined element is also ended upon a further occurrence of that
same element.

Document Type Definitions

  Each element is defined by name and type (1 for single, 2 for
combined). For example:

elements
a 1
div 1
em 1
img 2
p 2   # no nested paragraphs :-)

  Attributes must be one of the two types (1 for individual, 2 for
familial).

attributes
href 1
id 1
style 2

  Character entities (and strings) are defined by name and a %-escaped
string.

& lt <
& gt >
& amp %26

  The end.
