layout/doc/obsolete/nav4-html.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/layout/doc/obsolete/nav4-html.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,902 @@
     1.4 +<!-- This Source Code Form is subject to the terms of the Mozilla Public
     1.5 +   - License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 +   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
     1.7 +
     1.8 +<HTML>
     1.9 +<HEAD>
    1.10 +   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    1.11 +   <META NAME="Author" CONTENT="Kipp E.B. HIckman">
    1.12 +   <META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (WinNT; I) [Netscape]">
    1.13 +   <TITLE>HTML</TITLE>
    1.14 +   <BASE HREF="file:///s|/ns/xena/htmlpars/testhtml/">
    1.15 +</HEAD>
    1.16 +<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#800080" ALINK="#0000FF">
    1.17 +
    1.18 +<H2>
    1.19 +HTML</H2>
    1.20 +This documents describes the complete handling of HTML in magellan. The
    1.21 +document covers the parsing process - how HTML is lexically analysized
    1.22 +and then interprted. After the parsing process is discussed we give a detailed
    1.23 +analysis of each HTML tag and the attributes that are supported, the values
    1.24 +for the attributes and how the tag is treated by magellan.
    1.25 +<H2>
    1.26 +Parsing</H2>
    1.27 +HTML is tokenized by an HTML scanner. The scanner is fed unicode data to
    1.28 +parse. Stream converters are used to translate from various encodings to
    1.29 +unicode. The scanner separates the input stream into tokens which consist
    1.30 +of:
    1.31 +<UL>
    1.32 +<LI>
    1.33 +text</LI>
    1.34 +
    1.35 +<LI>
    1.36 +tags</LI>
    1.37 +
    1.38 +<LI>
    1.39 +entities</LI>
    1.40 +
    1.41 +<LI>
    1.42 +script-entities</LI>
    1.43 +
    1.44 +<LI>
    1.45 +comments</LI>
    1.46 +
    1.47 +<LI>
    1.48 +conditional comments</LI>
    1.49 +</UL>
    1.50 +The HTML parsing engine uses the HTML scanner for lexical anlaysis. The
    1.51 +parsing engine operates by attacking the input stream in a set of well
    1.52 +defined steps:
    1.53 +<UL>
    1.54 +<LI>
    1.55 +The parser processes the head portion of the document first, without emitting
    1.56 +any output. This is done to discover a few special features of html:</LI>
    1.57 +
    1.58 +<UL>
    1.59 +<LI>
    1.60 +The parser processes META tags looking for META TARGET</LI>
    1.61 +
    1.62 +<LI>
    1.63 +The parser processes META tags looking for META tags which affect the character
    1.64 +set. Nav4 handles the very first character set defining meta tag (all others
    1.65 +are ignored) by reloading the document with the proper character conversion
    1.66 +module inserted into the stream pipeline.</LI>
    1.67 +</UL>
    1.68 +
    1.69 +<LI>
    1.70 +After the head portion is processed the parser then proceeds to process
    1.71 +the body of the document</LI>
    1.72 +</UL>
    1.73 +
    1.74 +<H3>
    1.75 +Tag Processing</H3>
    1.76 +Tags are processed by the parser by locating a <B>"tag handler"</B> for
    1.77 +the tag. The HTML parser serves as the tag handler for all of the builtin
    1.78 +tags documented below. Tag attribute handling is done during translation
    1.79 +of tags into content. This mapping translates the tag attributes into content
    1.80 +data and into style data. The translation to style data is documented below
    1.81 +by indicating the mapping from tag attributes to their CSS1 (plus extensions)
    1.82 +equivalents.
    1.83 +<H3>
    1.84 +Special Hacks</H3>
    1.85 +The following list describes hacks added to the magellan parsing engine
    1.86 +to deal with navigator compatibility. These are just the parser hacks,
    1.87 +not the layout or presentation hacks. Most hacks are intriduced for HTML
    1.88 +syntax error recovering. HTML doesn't specify much how to handle those
    1.89 +error conditions. Netscape has made big effort to render pages with non-prefect
    1.90 +HTML. For many reasons, new browsers need to keep compatible in thsi area.
    1.91 +<UL>
    1.92 +<LI>
    1.93 +Entities can be used as escape in quoted string. For value string in name-value
    1.94 +pair,&nbsp; see <A HREF="../testhtml/quote001.html">compatibility test
    1.95 +quote001.html</A>. Test line 70 shows that an entity quote at the begining
    1.96 +means the value is NOT quoted. Test line 90 shows that if the value is
    1.97 +started with a quote, then an entity quote does NOT terminate the value
    1.98 +string.</LI>
    1.99 +
   1.100 +<LI>
   1.101 +Wrapping tags are special tags such as title, textarea, server, script,
   1.102 +style, and etc.. The comment in ns\lib\libparse\pa_parse.c says:</LI>
   1.103 +
   1.104 +<BR>&nbsp; /*
   1.105 +<BR>&nbsp;&nbsp; * These tags are special in that, after opening one of
   1.106 +them, all other tags are ignored until the matching
   1.107 +<BR>&nbsp;&nbsp; * closing tag.
   1.108 +<BR>&nbsp;&nbsp; */
   1.109 +<BR>During the searching of an end tag, comments and quoted strings are
   1.110 +observed. see <A HREF="../testhtml/title01.html">compatibility test title01.html</A>.
   1.111 +6.0 handles comments now, need to add quoted string.
   1.112 +<LI>
   1.113 +If a &lt;tr> or &lt;td> tag is seen outside any &lt;table> scope, it is
   1.114 +ignored. see <A HREF="../testhtml/table110.htm">compatibility test table110.htm</A>.</LI>
   1.115 +
   1.116 +<LI>
   1.117 +<FONT COLOR="#000000">In case of table in table but not in cell, table
   1.118 +tags before the last table tag are ignored. We found this problem in some
   1.119 +Netscape public pages, see bug #85118. For example, &lt;table> &lt;table
   1.120 +border> .....,or &lt;table> &lt;tr> &lt;table border>...,&nbsp; the table
   1.121 +will be displayed with border.&nbsp;</FONT> <A HREF="../testhtml/table201.html">compatibility
   1.122 +test table201.html</A>. There table and tr tags are buffered for this recovery.
   1.123 +When a TD or CAPTION tag is open, the buffer is flushed out, because we
   1.124 +cannot buffer contents of TD or CAPTION for performance and memory constrains.
   1.125 +They are subdoc's and can be very big. If we see a &lt;table> outside cell
   1.126 +after previous table is flushed out, the new &lt;table> tag is ignored.
   1.127 +Nav4.0 can discard previous table in such case. <A HREF="../testhtml/tableall.html">tableall.html
   1.128 +</A>is the index for table test cases.</LI>
   1.129 +
   1.130 +<LI>
   1.131 +Caption is not a commonly used feature. In Nav4.0, captions can be anywhere.
   1.132 +For Captions outside cells, the first one takes effect. For captions inside
   1.133 +cells, the last one takes effect, and they also close TD and TR. In 6.0,
   1.134 +caption is limited to the standard position: after &lt;table>. Captions
   1.135 +in other places are ignored, their contents are treated as text. See test
   1.136 +case table05a.html to table05o.html.</LI>
   1.137 +
   1.138 +<LI>
   1.139 +<FONT COLOR="#000000">For &lt;table> &lt;tr> &lt;tr>, the first &lt;tr>
   1.140 +takes effect.</FONT></LI>
   1.141 +
   1.142 +<LI>
   1.143 +The nav4 parser notices when it hits EOF and it's in the middle of scanning
   1.144 +in a comment. When this happens, the parser goes back and looks for an
   1.145 +improperly closed comment (e.g. a simple > instead of a -->). If it finds
   1.146 +one, it reparses the input after closing out the comment.</LI>
   1.147 +
   1.148 +<LI>
   1.149 +<FONT COLOR="#FF0000">XXX Brendan also pointed out that there is something
   1.150 +similar done for tags, but I don't recall what it is right now.</FONT></LI>
   1.151 +
   1.152 +<LI>
   1.153 +<FONT COLOR="#000000">When Nav4.0 sees the '&lt;' sign, it searchs for
   1.154 +'>', observing quoted values. If it cannot find one till EOF, the '&lt;'
   1.155 +sign is treated as text. In Xena 6.0, a limit is set for how far the '>'
   1.156 +is searched. the default limit is 4096 char, and there is a API HTMLScanner.setMaxTagLength()
   1.157 +to changed it. setting -1 means no limit, which is same as Nav4.0.</FONT></LI>
   1.158 +</UL>
   1.159 +<FONT COLOR="#FF0000">TODO:</FONT>
   1.160 +<UL><FONT COLOR="#FF0000">Document the mapping of tag attributes into CSS1
   1.161 +style, including any new "css1" attributes</FONT>
   1.162 +<BR>&nbsp;</UL>
   1.163 +<B>List of 6.0 features incompatible with 4.0</B>
   1.164 +<UL>
   1.165 +<LI>
   1.166 +Navigator 4.0 value string is truncated at 82 characters. XENA60 limit
   1.167 +is MAX_STRING_LENGTH = 2000.</LI>
   1.168 +
   1.169 +<BR>&nbsp;</UL>
   1.170 +
   1.171 +<HR WIDTH="100%">
   1.172 +<H2>
   1.173 +Tags (Categorically sorted)</H2>
   1.174 +All line breaks are conditional. If the x coordinate is at the current
   1.175 +left margin then a soft line break does nothing. Hard line breaks are ignored
   1.176 +if the last tag did a hard line break.
   1.177 +
   1.178 +<P><B>divalign</B> = left | right | center | justify
   1.179 +<BR><B>alignparam</B> = abscenter | left | right | texttop | absbottom
   1.180 +| baseline | center | bottom | top | middle | absmiddle
   1.181 +<BR><B>colorspec</B> = named-color | #xyz | #xxyyzz | #xxxyyyzzz | #xxxxyyyyzzzz
   1.182 +<BR><B>clip</B> = [auto | value-or-pct-xy](1..4) (pct of width for even
   1.183 +coordinates; pct of height for odd coordinates)
   1.184 +<BR><B>value-or-pct = </B>an integer with an optional %; ifthe percent
   1.185 +is present any following characters are ignored!
   1.186 +<BR><B>coord-list</B> = <FONT COLOR="#DD0000">XXX</FONT>
   1.187 +<BR><FONT COLOR="#000000"><B>whitespace-strip</B> = remove leading and
   1.188 +trailing and any embedded whitespace that is not an actual space (e.g.
   1.189 +newlines)</FONT>
   1.190 +<H1>
   1.191 +Head objects:</H1>
   1.192 +<B>TITLE</B>
   1.193 +<UL>The TITLE tag is a container tag whose contents are not HTML. The contents
   1.194 +are pure text and are processed by the parser until the closing tag is
   1.195 +found. There are no attributes on the tag and any whitespace present in
   1.196 +the tag is compressed down with leading and trailing whitespace eliminated.
   1.197 +The first TITLE tag found by the parser is used as the document's title
   1.198 +(subsequent tags are ignored).</UL>
   1.199 +<B>BASE</B>
   1.200 +<UL>Sets the base element in the head portion of the document. Defines
   1.201 +the base URL for <FONT COLOR="#DD0000">all</FONT>? links in the document.
   1.202 +<BR>Attributes:
   1.203 +<UL><B>HREF</B>=url [This is an absolute URL]
   1.204 +<BR><B>TARGET</B>=string [must start with XP_ALPHA|XP_DIGIT|underscore
   1.205 +otherwise nav4 ignores it]</UL>
   1.206 +</UL>
   1.207 +<B>META</B>
   1.208 +<UL>Can define several header fields (content-encoding, author, etc.)
   1.209 +<BR>Attributes:
   1.210 +<UL><B>REL</B>=SMALL_BOOKMARK_ICON|LARGE_BOOKMARK_ICON
   1.211 +<UL><B>SRC</B>=string</UL>
   1.212 +<B>HTTP-EQUIV</B>="header: value"
   1.213 +<UL><B>CONTENT</B>=string</UL>
   1.214 +</UL>
   1.215 +HTTP-EQUIV values (from libnet/mkutils.c NET_ParseMimeHeader):
   1.216 +<UL>ACCEPT-RANGES
   1.217 +<BR>CONTENT-DISPOSITION
   1.218 +<BR>CONTENT-ENCODING
   1.219 +<BR>CONTENT-RANGE
   1.220 +<BR>CONTENT-TYPE [ defines character set only ]
   1.221 +<BR>CONNECTION
   1.222 +<BR>DATE
   1.223 +<BR>EXPIRES
   1.224 +<BR>EXT-CACHE
   1.225 +<BR>LOCATION
   1.226 +<BR>LAST-MODIFIED
   1.227 +<BR>LINK
   1.228 +<BR>PROXY-AUTHENTICATE
   1.229 +<BR>PROXY-CONNECTION
   1.230 +<BR>PRAGMA
   1.231 +<BR>RANGE
   1.232 +<BR>REFRESH
   1.233 +<BR>SET-COOKIE
   1.234 +<BR>SERVER
   1.235 +<BR>WWW-AUTHENTICATE
   1.236 +<BR>WWW-PROTECTION-TEMPLATE
   1.237 +<BR>WINDOW-TARGET</UL>
   1.238 +Style sheets and HTML w3c spec adds this:
   1.239 +<UL>CONTENT-STYLE-TYPE [ last one wins; overrides header from server if
   1.240 +any ]</UL>
   1.241 +</UL>
   1.242 +<B>LINK</B>
   1.243 +<UL>List related resources. Used by extensions mechanism to find tag handlers.
   1.244 +<FONT COLOR="#0000FF">/LINK == LINK!</FONT>
   1.245 +<BR>Attributes:
   1.246 +<UL><B>REL</B>=FONTDEF
   1.247 +<UL><B>SRC</B>=url</UL>
   1.248 +<B>REL</B>=STYLESHEET [ If MEDIA param is defined it must ==nc screen ]
   1.249 +<UL><B>LANGUAGE</B>=LiveScript|Mocha|JavaScript1.1|JavaScript1.2
   1.250 +<BR><B>TYPE</B>="text/javascript" | "text/css"
   1.251 +<BR><B>HREF</B>=url
   1.252 +<BR><B>ARCHIVE</B>=url
   1.253 +<BR><B>CODEBASE</B>=url
   1.254 +<BR><B>ID</B>=string
   1.255 +<BR><B>SRC</B>=url</UL>
   1.256 +</UL>
   1.257 +Note: HREF takes precedence over SRC in nav4.</UL>
   1.258 +<B>HEAD</B>
   1.259 +<UL>/HEAD clears the "in_head" flag (but leaves the "in_body" flag alone.
   1.260 +<BR>Text in head clears in_head, and set in_body true, just as if the author
   1.261 +forgot the /HEAD tag.
   1.262 +<BR>Attributes: none</UL>
   1.263 +<B>HTML</B>
   1.264 +<UL>Ignored.
   1.265 +<BR>Attributes: none</UL>
   1.266 +<B>STYLE</B>
   1.267 +<UL>Allowed anywhere in the document. Note that entities are not parsed
   1.268 +in the style tag's content.
   1.269 +<BR>Attributes:
   1.270 +<UL><B>LANGUAGE</B>=LiveScript|Mocha|JavaScript1.1|JavaScript1.2
   1.271 +<BR><B>TYPE</B>="text/javascript" | "text/css"
   1.272 +<BR><B>HREF</B>=url
   1.273 +<BR><B>ARCHIVE</B>=url
   1.274 +<BR><B>CODEBASE</B>=url
   1.275 +<BR><B>ID</B>=string
   1.276 +<BR><B>SRC</B>=url</UL>
   1.277 +</UL>
   1.278 +<B>FRAMESET</B>
   1.279 +<UL>Frameset with rows=1 and cols=1 is ignored.
   1.280 +<BR>Attributes:
   1.281 +<UL><B>FRAMEBORDER</B>= no | 0 (zero) [default is no_edges=false]
   1.282 +<BR><B>BORDER</B>= int [clamped: >= 0 &amp;&amp; &lt;= 100]
   1.283 +<BR><B>BORDERCOLOR</B>= color
   1.284 +<BR><B>ROWS</B>= pct-list
   1.285 +<BR><B>COLS</B>= pct-list</UL>
   1.286 +</UL>
   1.287 +<B>FRAME</B>
   1.288 +<UL>Border width of zero disables edges.
   1.289 +<BR>Attributes:
   1.290 +<UL><B>FRAMEBORDER</B>= no | 0 (zero) [default is framesets value]
   1.291 +<BR><B>BORDER</B>= int [clamped; >= 0 &amp;&amp; &lt;= 100]
   1.292 +<BR><B>BORDERCOLOR</B>= color
   1.293 +<BR><B>NORESIZE</B>= true [default is false]
   1.294 +<BR><B>SCROLLING</B>= yes | scroll | on | no | noscroll | off
   1.295 +<BR><B>SRC</B>= url [clamped: prevent recursion by eliminating any anscestor
   1.296 +references]
   1.297 +<BR><B>NAME</B>= string
   1.298 +<BR><B>MARGINWIDTH</B>= int (clamped: >= 1)
   1.299 +<BR><B>MARGINHEIGHT</B>= int (clamped: >= 1)</UL>
   1.300 +</UL>
   1.301 +<B>NOFRAMES</B>
   1.302 +<UL>Used when frames are disabled or for backrev browsers. Has no stylistic
   1.303 +consequences.</UL>
   1.304 +
   1.305 +<H1>
   1.306 +
   1.307 +<HR WIDTH="100%">Body objects:</H1>
   1.308 +&nbsp;<B>BODY</B>
   1.309 +<UL>The tag is only processed on open tags and it is always processed.
   1.310 +See ns\lib\layout\laytags.c, searching for "case P_BODY". During tag processing
   1.311 +the in_head flag is set to false and the in_body flag is set to true. An
   1.312 +attribute is ignored if the document already has that attribute set. Attributes
   1.313 +can be set by style sheets, or by previous BODY tags. see <A HREF="../testhtml/head02.html">test
   1.314 +head02.html</A>.
   1.315 +<BR>Attributes:
   1.316 +<UL><B>MARGINWIDTH</B>=int [clamped: >= 0 &amp;&amp; &lt; (windowWidth/2
   1.317 +- 1)]
   1.318 +<BR><B>MARGINHEIGHT</B>=int [clamped: >= 0 &amp;&amp; &lt; (windowHeight/2
   1.319 +- 1)]
   1.320 +<BR><B>BACKGROUND</B>=url
   1.321 +<BR><B>BGCOLOR</B>=colorspec
   1.322 +<BR><B>TEXT</B>=colorspec
   1.323 +<BR><B>LINK</B>=colorspec
   1.324 +<BR><B>VLINK</B>=colorspec
   1.325 +<BR><B>ALINK</B>=colorspec
   1.326 +<BR><B>ONLOAD, ONUNLOAD, UNFOCUS, ONBLUR, ONHELP</B>=script
   1.327 +<BR><B>ID</B>=string</UL>
   1.328 +</UL>
   1.329 +<B>LAYER, ILAYER</B>
   1.330 +<UL>Open layer/ilayer tag automaticly close out an open form if one is
   1.331 +open. It does something to the soft linebreak state too.
   1.332 +<BR>Attributes:
   1.333 +<UL><B>LEFT</B>=value-or-pct (pct of <TT>right-left</TT> margin)
   1.334 +<BR><B>PAGEX</B>=x (if no LEFT)
   1.335 +<BR><B>TOP</B>=value-or-pct
   1.336 +<BR><B>PAGEY</B>=y (if no TOP)
   1.337 +<BR><B>CLIP</B>=clip
   1.338 +<BR><B>WIDTH</B>=value-or-pct (pct of <TT>right-left</TT> margin)
   1.339 +<BR><B>HEIGHT</B>=value-or-pct
   1.340 +<BR><B>OVERFLOW</B>=string
   1.341 +<BR><B>NAME</B>=string
   1.342 +<BR><B>ID</B>=string
   1.343 +<BR><B>ABOVE</B>=string
   1.344 +<BR><B>BELOW</B>=string
   1.345 +<BR><B>ZINDEX</B>=int [any value]
   1.346 +<BR><B>VISIBILITY</B>=string
   1.347 +<BR><B>BGCOLOR</B>=colorspec
   1.348 +<BR><B>BACKGROUND</B>=url</UL>
   1.349 +</UL>
   1.350 +<B>NOLAYER</B>
   1.351 +<UL>Container for content which is used when layers are disabled or unsupported.
   1.352 +The content has no style consequences (though it could if somebody stuck
   1.353 +in some CSS1 style rules for it).</UL>
   1.354 +<B>P</B>
   1.355 +<UL>Closes the paragraph. If the attribute is present then an alignment
   1.356 +gets pushed on the alignment stack. All values are supported by nav4.
   1.357 +<BR>Attributes:
   1.358 +<UL><B>ALIGN</B>=divalign</UL>
   1.359 +</UL>
   1.360 +<B>ADDRESS</B>
   1.361 +<UL>There are no attributes. ADDRESS closes out the open paragraph. The
   1.362 +open tag does a conditional soft line break and then pushes a merge of
   1.363 +the current style with italics enabled onto the style stack. The close
   1.364 +always pop the style stack and also does a conditional soft line break.</UL>
   1.365 +<B>PLAINTEXT, XMP</B>
   1.366 +<UL>PLAINTEXT causes the remaining content to no longer be parsed. XMP
   1.367 +causes the content to not parse entities or other tags. The XMP can be
   1.368 +closed by it's own tag (on any boundary); PLAINTEXT is not closed (html3.2
   1.369 +allows it to be closed). Both tags change the style to a fixed font of
   1.370 +a</UL>
   1.371 +<B>LISTING</B>
   1.372 +<UL>Closes the paragraph. Does a hard line break on open and close. Open
   1.373 +pushes a fixed width font style of a particular font size on the style
   1.374 +stack. The close tag pops the top of the style stack.
   1.375 +<BR>Attributes: none</UL>
   1.376 +<B>PRE</B>
   1.377 +<UL>Closes the paragraph. The open tag does a hard line break. A fixed
   1.378 +font style (unless VARIABLE is present) is pushed on the style stack. The
   1.379 +close tag pops the top of the style stack. It also does a hard line break.
   1.380 +<BR>Attributes:
   1.381 +<UL><B>WRAP</B>
   1.382 +<BR><B>COLS</B>=int [clamped: >= 0]
   1.383 +<BR><B>TABSTOP</B>=int [clamped: >= 0; clamped value is replaced with default
   1.384 +value]
   1.385 +<BR><B>VARIABLE</B></UL>
   1.386 +</UL>
   1.387 +<B>NOBR</B>
   1.388 +<UL>This tag doesn't nest. Instead it just sets or clears a flag in the
   1.389 +state machine. It has no effect on any other state.</UL>
   1.390 +<B>CENTER</B>
   1.391 +<UL>Closes the paragraph. Always does a conditional soft line break. The
   1.392 +open tag pushes an alignment on the aligment stack. The close tag pops
   1.393 +the top alignment off.
   1.394 +<BR>Attributes: none</UL>
   1.395 +<B>DIV</B>
   1.396 +<UL>Closes the paragraph. Always does a conditional soft line break. COLS
   1.397 +defines the number of columns to layout in (like MULTICOL). The open tag
   1.398 +pushes an alignment on the alignment stack (if COLS > 1 then it pretends
   1.399 +to be a MULTICOL tag). The close tag pops an aligment from the alignment
   1.400 +stack.
   1.401 +<BR>Attributes:
   1.402 +<UL><B>ALIGN</B>=divalign
   1.403 +<BR><B>COLS</B>=int [if cols > 1 then DIV acts like a MULTICOL tag else
   1.404 +DIV is just a container]
   1.405 +<UL><B>GUTTER</B>= int (clamped: >= 1)
   1.406 +<BR><B>WIDTH</B>= value-or-pct [pct of right-left margin; clamped >= 1/0
   1.407 +(strange code)]</UL>
   1.408 +</UL>
   1.409 +</UL>
   1.410 +<B>H1-H6</B>
   1.411 +<UL>Closes the paragraph. The open tag does a hard line break and pushes
   1.412 +a style item which enables bold and disables fixed and italic. The close
   1.413 +tag always pops the top item from the style stack. It also does a hard
   1.414 +line break. If the <B>ALIGN</B> attribute is present then the open tag
   1.415 +pushes an alignment on the alignment stack. The close tag will look at
   1.416 +the top of the alignment stack and if its a header of any kind (H1 through
   1.417 +H6) then the alignment is popped. In either case the close tag also does
   1.418 +a conditional soft line break (this happens before the hard line break).
   1.419 +<BR>Attributes:
   1.420 +<UL><B>ALIGN</B>=divalign</UL>
   1.421 +</UL>
   1.422 +A note regarding closing paragraphs: Any time a close paragraph is done
   1.423 +(for any tag) if the top of the alignment stack has a tag named "P" then
   1.424 +a conditional soft line break is done and the alignment is popped.
   1.425 +<H3>
   1.426 +
   1.427 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.428 +<B>TABLE</B>
   1.429 +<UL>Close the paragraph.
   1.430 +<BR>Attributes:
   1.431 +<UL><B>ALIGN=</B>left|right|center|abscenter
   1.432 +<BR><B>BORDER</B>=int [clamped: if null then -1, if &lt; 1 then 1 ]
   1.433 +<BR><B>BORDERCOLOR</B>=string [if not supplied then set to the text color
   1.434 +]
   1.435 +<BR><B>VSPACE</B>=int [ clamped: >= 0 ]
   1.436 +<BR><B>HSPACE</B>=int [ clamped: >= 0 ]
   1.437 +<BR><B>BGCOLOR</B>=color
   1.438 +<BR><B>BACKGROUND</B>=url
   1.439 +<BR><B>WIDTH</B>=value-or-pct [ % of win.width minus margins; clamped:
   1.440 +>= 0 ]
   1.441 +<BR><B>HEIGHT</B>=value-or-pct [ % of win.height minus margins; clamped:
   1.442 +>= 0 ]
   1.443 +<BR><B>CELLPADDING</B>=int [clamped: >= 0; separate pads take precedence
   1.444 +]
   1.445 +<BR><B>TOPPADDING</B>= int [clamped: >= 0 ]
   1.446 +<BR><B>BOTTOMPADDING</B>= int [clamped: >= 0 ]
   1.447 +<BR><B>LEFTPADDING</B>= int [clamped: >= 0 ]
   1.448 +<BR><B>RIGHTPADDING</B>= int [clamped: >= 0 ]
   1.449 +<BR><B>CELLSPACING</B>= int [clamped: >= 0 ]
   1.450 +<BR><B>COLS</B>=int [clamped: >= 0]</UL>
   1.451 +The code supports more attributes in the Table attribute handler than it
   1.452 +does in the code that gets the attributes from the tag! They are border_top,
   1.453 +border_left, border_right, border_bottom, border_style (defaults to outset;
   1.454 +allows for outset/dotted/none/dashed/solid/double/groove/ridge/inset).</UL>
   1.455 +<B>TR</B>
   1.456 +<UL>Open TR automatically closes an open table row (and an open table cell
   1.457 +if one is open). It also automatically closes a CAPTION tag.
   1.458 +<BR>Attributes:
   1.459 +<UL><B>BGCOLOR</B>=color
   1.460 +<BR><B>BACKGROUND</B>=url
   1.461 +<BR><B>VALIGN</B>=top|bottom|middle|center(==middle)|baseline; default
   1.462 +is top
   1.463 +<BR><B>ALIGN</B>=left|right|middle|center(==middle); default is left</UL>
   1.464 +</UL>
   1.465 +<B>TH, TD</B>
   1.466 +<UL>If no table then the tag is ignored (open or close). If no row is currently
   1.467 +opened or the current row is current done (because of a &lt;/TR> tag) then
   1.468 +a new row is begun. Oddly enough the tag parameters for the row come from
   1.469 +the TH/TD tag in this case. An open of either of these tags will automatically
   1.470 +close the previous cell.
   1.471 +<BR>Attributes:
   1.472 +<UL><B>COLSPAN</B>=int [clamped: >= 1 &amp;&amp; &lt;= 1000 ]
   1.473 +<BR><B>ROWSPAN</B>=int [clamped: >= 1 &amp;&amp; &lt;= 10000 ]
   1.474 +<BR><B>NOWRAP</B> [boolean: disables wrapping ]
   1.475 +<BR><B>BGCOLOR</B>=color [default: inherit from the row; if not row then
   1.476 +table; if not table then inherit from an outer table cell; this works because
   1.477 +the style is flattened so the outer table cell will have a color]
   1.478 +<BR><B>BACKGROUND</B>=url [same rules as bgcolor for inheritance; tile
   1.479 +mode is inherited too and not settable by TH/TD attributes (have to use
   1.480 +style sheets for that)]
   1.481 +<BR><B>VALIGN</B>=top|bottom|middle|center(==middle)|baseline; default
   1.482 +is top
   1.483 +<BR><B>ALIGN</B>=left|right|middle|center(==middle); default is left
   1.484 +<BR><B>WIDTH</B>=value-or-pct [ clamped: >= 0 ]
   1.485 +<BR><B>HEIGHT</B>=value-or-pct [ clamped: >= 0 ]</UL>
   1.486 +</UL>
   1.487 +<B>CAPTION</B>
   1.488 +<UL>An open caption tag will automatically close an open table row (and
   1.489 +an open cell).
   1.490 +<BR>Attributes:
   1.491 +<UL><B>ALIGN</B>=bottom</UL>
   1.492 +The code sets the vertical alignment to top w/o providing a mechanism for
   1.493 +the user to set it (there is no VALIGN attribute).</UL>
   1.494 +<B>MULTICOL</B>
   1.495 +<UL>The open tag does a hard line break. The close tag checks to see if
   1.496 +the state machine has an open multicol and if it does then it does a conditional
   1.497 +soft line break and then continues to break until both margins are cleared
   1.498 +of floating elements. It recomputes the margins based on the list indenting
   1.499 +level (?). After the synthetic table is output the close tag does a hard
   1.500 +line break.
   1.501 +
   1.502 +<P>This tag will treat the input as source for a table with one row and
   1.503 +COLS columns. The data is laid out using the width divided by the number
   1.504 +of columns. After the total height is known, the content is partitioned
   1.505 +as evenly as possible between the columns in the table.
   1.506 +<BR>Attributes:
   1.507 +<UL><B>COLS</B>=int [clamped: values less than 2 cause the tag to be ignored]
   1.508 +<BR><B>GUTTER</B>=int [clamped: >= 1]
   1.509 +<BR><B>WIDTH</B>=value-or-pct [pct of right-left margin; clamped: >= 1/0
   1.510 +(strange code)]</UL>
   1.511 +</UL>
   1.512 +
   1.513 +<H3>
   1.514 +
   1.515 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.516 +<B>BLOCKQUOTE</B>
   1.517 +<UL>Closes the paragraph. The open tag does a hard line break. A list with
   1.518 +the empty-bullet style is pushed on the list stack (unless TYPE=cite/jwz
   1.519 +then a styled list is pushed). The close tag pops any list and does a hard
   1.520 +line break.
   1.521 +<BR>Attributes:
   1.522 +<UL><B>TYPE</B>=cite | jwz</UL>
   1.523 +</UL>
   1.524 +<B>UL, OL, MENU, DIR</B>
   1.525 +<UL>For top-level lists (lists not in lists) a hard break is done on the
   1.526 +open tag, otherwise a conditional-soft-break is done. Tag always does a
   1.527 +close paragrah. The close tag does a conditional soft line break when nested;
   1.528 +when not nested the close tag does a hard line break (even if no list is
   1.529 +open). The open tag pushes the list on the list stack. The close tag pops
   1.530 +any list off the list stack.
   1.531 +<BR>Attributes:
   1.532 +<UL><B>TYPE</B>= none | disc | circle | round | square | decimal | lower-roman
   1.533 +| upper-roman | lower-alpha | upper-alpha | A | a | I | i [clamped: if
   1.534 +none of the above is picked and OL then the bullet type is "number" otherwise
   1.535 +the bullet type is "basic"]
   1.536 +<BR><B>START</B>=int [clamped: >= 1]
   1.537 +<BR><B>COMPACT</B></UL>
   1.538 +</UL>
   1.539 +<B>DL</B>
   1.540 +<UL>Closes the paragraph. For the open tag, if the list is nested then
   1.541 +a conditional soft line break is done otherwise a hard line break is done.
   1.542 +The open tag pushes a list on the list stack. The close tag pops any list
   1.543 +from the list stack. Closing the list acts like other lists closes.
   1.544 +<BR>Attributes:
   1.545 +<UL><B>COMPACT</B></UL>
   1.546 +</UL>
   1.547 +<B>LI</B>
   1.548 +<UL>Closes the paragraph. The open tag does a conditional soft line break.
   1.549 +Close tags are ignored (except for closing the paragraph).
   1.550 +<BR>Attributes:
   1.551 +<UL><B>TYPE</B>= A | a | I | i (if the containing list is an <B>OL</B>)
   1.552 +<BR><B>TYPE</B>= round | circle | square (if the containing list is not
   1.553 +<B>OL</B> and not <B>DL</B>)
   1.554 +<BR><B>VALUE</B>=int [clamped: >= 1]</UL>
   1.555 +The magellan html parser allows the full set of list item styles from the
   1.556 +OL/DL tag instead of just the limited set that nav4 allows.</UL>
   1.557 +<B>DD</B>
   1.558 +<UL>Closes the paragraph. Close tags are ignored (except for closing the
   1.559 +paragraph). DD outside a DL just advances the X coordinate of layout by
   1.560 +a small constant. DD inside a DL does a conditional soft line break and
   1.561 +other margin crud.
   1.562 +<BR>Attributes: none.</UL>
   1.563 +<B>DT</B>
   1.564 +<UL>Closes the paragraph (open or close). Close tags are otherwise ignored.
   1.565 +Does a conditional soft line break. Moves the X layout coordinate to the
   1.566 +left margin.
   1.567 +<BR>Attributes: none</UL>
   1.568 +
   1.569 +<H3>
   1.570 +
   1.571 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.572 +<B>A</B>
   1.573 +<UL>Open anchors push a style on the style stack if the anchor has an <B>HREF</B>.
   1.574 +Close anchors pop as many styles off the top of the style stack that are
   1.575 +anchor tags (anchor tags don't nest in other words). In addition, any styles
   1.576 +on the stack that have the ANCHOR bit set have it cleared and fiddle with
   1.577 +the foreground and background colors.
   1.578 +<BR>Attributes:
   1.579 +<UL><B>NAME</B>=string
   1.580 +<BR><B>HREF</B>=url
   1.581 +<UL><B>TARGET</B>=target
   1.582 +<BR><B>SUPPRESS</B>=true</UL>
   1.583 +</UL>
   1.584 +</UL>
   1.585 +<B>STRIKE, S, TT, CODE, SAMPLE, KBD, B, STRONG, I, EM, VAR, CITE, BLINK,
   1.586 +BIG, SMALL, U, INLINEINPUT, SPELL</B>
   1.587 +<UL>The open tag pushes onto the style stack. The close tag always pops
   1.588 +the top item from the style stack.
   1.589 +<BR>Attributes: none</UL>
   1.590 +<B>SUP, SUB</B>
   1.591 +<UL>The open tag pushes a font size descrease on the style stack. The close
   1.592 +tag always pops the top of the style stack. The open and close tag impacts
   1.593 +the baselineThe only difference between SUP and SUB is how they impact
   1.594 +the baseline. Note that the baseline information is forgotten after a line
   1.595 +break; therefore a close SUP/SUB on the next line will do strange things.
   1.596 +<BR>Attributes: none</UL>
   1.597 +<B>SPAN</B>
   1.598 +<UL>Ignored by the navigator.
   1.599 +<BR>Attributes: none</UL>
   1.600 +<B>FONT</B>
   1.601 +<UL>The open font tag with no attributes resets the font size to the base
   1.602 +font size. The open tag always pushes a style stack entry. The close tag
   1.603 +always pops the top item off the style stack.
   1.604 +<BR>Attributes:
   1.605 +<UL><B>SIZE</B>=[+ int | - int | int ]&nbsp; [clamped: >=1 &amp;&amp; &lt;=
   1.606 +7]
   1.607 +<BR><B>POINT-SIZE=</B>[+ int | - int | int ] [clamped: >= 1 &amp;&amp;
   1.608 +&lt;= 1600]
   1.609 +<BR><B>FONT-WEIGHT</B>=[+ int | - int | int ] [clamped: >= 100 &amp;&amp;
   1.610 +&lt;= 900]
   1.611 +<BR><B>COLOR</B>=colorspec
   1.612 +<BR><B>FACE</B>=string</UL>
   1.613 +</UL>
   1.614 +A note regarding the style stack: The pop of the stack checks to see if
   1.615 +the top of the stack is an ANCHOR tag. If it is not an anchor then the
   1.616 +top item is unconditionally popped. If the top of the style stack is an
   1.617 +anchor tag then the code searches for either the bottom of the stack or
   1.618 +the first style stack entry not created by an anchor tag. If the entry
   1.619 +is followed by another entry then the entry is removed from the stack (an
   1.620 +out-of-order pop in other words). In this case the anchor style stack entry
   1.621 +is left untouched.
   1.622 +<H3>
   1.623 +
   1.624 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.625 +<B>text, entities</B>
   1.626 +<UL>These are basic content objects that get fed directly to the output.
   1.627 +In navigator the text is processed by doing line-breaking (entities have
   1.628 +been converted to text already by the parser). The line-breaking is controlled
   1.629 +by the margin settings and the list depth, the floating elements, the style
   1.630 +attributes (font size, etc.), the preformatted flag, the no-break flag
   1.631 +and so on.</UL>
   1.632 +<B>IMG, IMAGE</B>
   1.633 +<UL>Close tag is ignored.
   1.634 +<BR>Attributes:
   1.635 +<UL><B>ISMAP</B>
   1.636 +<BR><B>USEMAP</B>=url
   1.637 +<BR><B>ALIGN</B>=alignparam
   1.638 +<BR><B>SRC</B>=url [ whitespace is stripped ]
   1.639 +<BR><B>LOWSRC</B>=url
   1.640 +<BR><B>ALT</B>=string
   1.641 +<BR><B>WIDTH</B>=value-or-pct (pct of <TT>right-left</TT> width)
   1.642 +<BR><B>HEIGHT</B>=value-or-pct (pct of window height)
   1.643 +<BR><B>BORDER</B>=int [clamped: >= 0]
   1.644 +<BR><B>VSPACE</B>=int [clamped: >= 0]
   1.645 +<BR><B>HSPACE</B>=int [clamped: >= 0]
   1.646 +<BR><B>SUPPRESS</B>=true | false (only in blocked image layout???)</UL>
   1.647 +</UL>
   1.648 +<B>HR</B>
   1.649 +<UL>Closes the paragraph. If an open tag then does a conditional soft line
   1.650 +break. The rule inherits alignment from the parent container unless there
   1.651 +is no container (then it's centered) or if the tag defines it's own alignment.
   1.652 +After the object is inserted into the layout stream a soft line break is
   1.653 +inserted as well.
   1.654 +<BR>Attributes:
   1.655 +<UL><B>ALIGN</B>=divalign (sort of; in laytags.c it's divalign; in layhrule.c
   1.656 +it's left or right only)
   1.657 +<BR><B>SIZE</B>=int (1 to 100 inclusive)
   1.658 +<BR><B>WIDTH</B>=val-or-pct (pct of <TT>right-left</TT> width)
   1.659 +<BR><B>NOSHADE</B></UL>
   1.660 +</UL>
   1.661 +<B>BR</B>
   1.662 +<UL>Does an unconditional soft break. If clear is set then it will also
   1.663 +soft break until either the left or right or both margins are clear of
   1.664 +floating elements. Note that<FONT COLOR="#0000FF"> /BR == BR!</FONT>
   1.665 +<BR>Attributes:
   1.666 +<UL><B>CLEAR</B>=left | right | all | both</UL>
   1.667 +</UL>
   1.668 +<B>WBR</B>
   1.669 +<UL>Soft word break.
   1.670 +<BR>Attributes: none</UL>
   1.671 +<B>EMBED</B>
   1.672 +<UL>Close tag does nothing. Embed's operate inline just like images (they
   1.673 +don't close the paragraph).
   1.674 +<BR>Attributes:
   1.675 +<UL><B>HIDDEN</B>=no | false | off
   1.676 +<BR><B>ALIGN</B>=alignparam
   1.677 +<BR><B>SRC</B>=url
   1.678 +<BR><B>WIDTH</B>=val-or-pct (pct of <TT>right-left</TT> width)
   1.679 +<BR><B>HEIGHT</B>=val-of-pct; if val is &lt; 1 (sometimes) the element
   1.680 +gets HIDDEN automatically
   1.681 +<BR><B>BORDER</B>=int (unsupported by navigator)
   1.682 +<BR><B>VSPACE</B>=int [clamped: >= 0]
   1.683 +<BR><B>HSPACE</B>=int [clamped: >= 0]</UL>
   1.684 +</UL>
   1.685 +<B>NOEBMED</B>
   1.686 +<UL>Used when EMBED's are disabled. It is a container for regular content
   1.687 +that has no stylistic consequences (no line breaking, no style stack effect,
   1.688 +etc.).</UL>
   1.689 +<B>APPLET</B>
   1.690 +<UL>Applet tags don't nest (there is a notion of current_applet). The open
   1.691 +tag automatically closes an open applet tag.
   1.692 +<BR>Attributes:
   1.693 +<UL><B>ALIGN</B>=alignparam
   1.694 +<BR><B>CODE</B>=string
   1.695 +<BR><B>CODEBASE</B>=string
   1.696 +<BR><B>ARCHIVE</B>=string
   1.697 +<BR><B>MAYSCRIPT</B>
   1.698 +<BR><B>NAME</B>=string [clamped: white space is stripped out]
   1.699 +<BR><B>WIDTH</B>=value-or-pct [pct of right-left width; clamped: >= 1]
   1.700 +<BR><B>HEIGHT</B>=value-or-pct [pct of window height; clamped >= 1]
   1.701 +<BR><B>BORDER</B>=int [clamped: >= 0]
   1.702 +<BR><B>HSPACE</B>=int [clamped: >= 0]
   1.703 +<BR><B>VSPACE</B>=int [clamped: >= 0]</UL>
   1.704 +If no width is provided:
   1.705 +<UL>if a height was provided, use the height. Otherwise, use 90% of the
   1.706 +window width if percentage widths are allowed, otherwise use a value of
   1.707 +600.
   1.708 +<BR>&nbsp;</UL>
   1.709 +If no height is provided:
   1.710 +<UL>if a width was provided, use the width. Otherwise, use 50% of the window
   1.711 +height if percentage widths are allowed, otherwise use a value of 400.</UL>
   1.712 +If the applet is hidden, then the widht/height get forced to zero.</UL>
   1.713 +<B>PARAM</B>
   1.714 +<UL>The param tag is supported when contained by the APPLET tag or the
   1.715 +OBJECT tag. It has no stylistic consequences. The attribute values from
   1.716 +the tag are passed to the containing APPLET or OBJECT. Note that <FONT COLOR="#0000FF">/PARAM
   1.717 +== PARAM</FONT>.
   1.718 +<BR>Attributes:
   1.719 +<UL><B>NAME</B>=string [clamped: white space is stripped out]
   1.720 +<BR><B>VALUE</B>=string [clamped: white space is stripped out]</UL>
   1.721 +White space being stripped is done as follows: leading and trailing whitespace
   1.722 +is removed. Any embedded whitespace is left alone except if it's a non-space
   1.723 +whitespace in which case it is removed.</UL>
   1.724 +<B>OBJECT</B>
   1.725 +<UL>The open tag pushes an object onto the object stack. The close tag
   1.726 +pops from the object stack. I don't understand how the data stuff works.
   1.727 +<BR>Attributes:
   1.728 +<UL><B>CLASSID</B>=string (clsid:, java:, javaprogram:, javabean: are the
   1.729 +supported prefixes; maybe it's a url if no prefix shown?)
   1.730 +<BR><B>TYPE</B>=string (a mime type)
   1.731 +<BR><B>DATA</B>=string (data: prefix mentions a url)</UL>
   1.732 +There are more attributes that depend on the type of object being embedded
   1.733 +in the page. If the object is a java bean (?) then the applet parameters
   1.734 +are supported:
   1.735 +<UL>CLASSID
   1.736 +<BR>HIDDEN
   1.737 +<BR>ALIGN
   1.738 +<BR>CLASSID (instead of CODE)
   1.739 +<BR>CODEBASE
   1.740 +<BR>ARCHIVE
   1.741 +<BR>MAYSCRIPT
   1.742 +<BR>ID (applets use NAME)
   1.743 +<BR>WIDTH
   1.744 +<BR>HEIGHT
   1.745 +<BR>BORDER
   1.746 +<BR>HSPACE
   1.747 +<BR>VSPACE</UL>
   1.748 +</UL>
   1.749 +<B>MAP</B>
   1.750 +<UL>The open tag automatically closes an open map (maps don't nest). There
   1.751 +is no stylistic consequence of the map nor does it provide any visible
   1.752 +presentation in the normal layout case (an editor would do something different).
   1.753 +The map can be declared anywhere in the document.
   1.754 +<BR>Attributes:
   1.755 +<UL><B>NAME</B>=string [clamped: white space is stripped out]</UL>
   1.756 +</UL>
   1.757 +<B>AREA</B>
   1.758 +<UL>Does nothing if there is no current map or the tag is a close tag.
   1.759 +<BR>Attributes:
   1.760 +<UL><B>SHAPE</B>=default | rect | circle | poly | polygon
   1.761 +<BR><B>ALT</B>=string [clamped: newlines are stripped]
   1.762 +<BR><B>COORDS</B>=coord-list
   1.763 +<BR><B>HREF=</B>url
   1.764 +<UL><B>TARGET</B>=target (only if HREF is specified)</UL>
   1.765 +<B>SUPPRESS</B></UL>
   1.766 +</UL>
   1.767 +<B>SERVER</B>
   1.768 +<UL>A container for server-side javascript. Not evaluated by the client
   1.769 +(parsed and ignored). Note: The navigator parser doesn't expand entities
   1.770 +in a <B>SERVER </B>tag.</UL>
   1.771 +<B>SPACER</B>
   1.772 +<UL>Close tag is ignored. Open tag provides whitespace during layout: <B>TYPE</B>=line/vert/vertical
   1.773 +causes a conditional soft line break and then adds <B>SIZE </B>to the Y
   1.774 +layout coordinate. <B>TYPE</B>=word causes a conditional soft word break
   1.775 +and then adds <B>SIZE </B>to the X layout coordinate. <B>TYPE</B>=block
   1.776 +causes <FONT COLOR="#DD0000">blockish </FONT>layout stuff to happen.
   1.777 +<BR>Attributes:
   1.778 +<UL><B>TYPE</B>=line | vert | vertical | block (default: word)
   1.779 +<UL><B>ALIGN</B>=alignparam (these 3 params are only for <B>TYPE</B>=block)
   1.780 +<BR><B>WIDTH</B>=value-or-pct
   1.781 +<BR><B>HEIGHT</B>=value-or-pct</UL>
   1.782 +<B>SIZE</B>=int [clampled: >= 0]</UL>
   1.783 +</UL>
   1.784 +
   1.785 +<H3>
   1.786 +
   1.787 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.788 +<B>SCRIPT</B>
   1.789 +<UL>Note: The navigator parser doesn't expand entities in a SCRIPT tag.
   1.790 +<BR>Attributes:
   1.791 +<UL><B>LANGUAGE</B>=LiveScript | Mocha | JavaScript1.1 | JavaScript1.2
   1.792 +<BR><B>TYPE</B>="text/javascript" | "text/css"
   1.793 +<BR><B>HREF</B>=url
   1.794 +<BR><B>ARCHIVE</B>=url
   1.795 +<BR><B>CODEBASE</B>=url
   1.796 +<BR><B>ID</B>=string
   1.797 +<BR><B>SRC</B>=url</UL>
   1.798 +</UL>
   1.799 +<B>NOSCRIPT</B>
   1.800 +<UL>Used when scripting is off or by backrev browsers. It is a container
   1.801 +that has no stylistic consequences.</UL>
   1.802 +
   1.803 +<H3>
   1.804 +
   1.805 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.806 +<B>FORM&nbsp;</B>
   1.807 +<UL>Attributes:
   1.808 +<UL><B>ACTION</B>=href
   1.809 +<BR><B>ENCODING</B>=string
   1.810 +<BR><B>TARGET</B>=string
   1.811 +<BR><B>METHOD</B>=get | post</UL>
   1.812 +</UL>
   1.813 +<B>ISINDEX&nbsp;</B>
   1.814 +<UL>This tag is a shortcut for creating a form element with a submit button
   1.815 +and a single text field. If the PROMPT attribute is not present in the
   1.816 +tag then the value used is <B>"This is a searchable index. Enter search
   1.817 +keywords:"</B>.
   1.818 +
   1.819 +<P>Attributes:
   1.820 +<UL><B>PROMPT</B>=string
   1.821 +<BR><B>ACTION</B>=href
   1.822 +<BR><B>ENCODING</B>=string
   1.823 +<BR><B>TARGET</B>=string
   1.824 +<BR><B>METHOD</B>=get | post</UL>
   1.825 +</UL>
   1.826 +<B>INPUT&nbsp;</B>
   1.827 +<UL>Attributes vary according to type:
   1.828 +<UL><B>TYPE</B>= text | radio | checkbox | hidden | submit | reset | password
   1.829 +| button | image | file | jot | readonly | object
   1.830 +<BR><B>NAME</B>= string
   1.831 +<BR>&nbsp;</UL>
   1.832 +<B>TYPE</B>=image
   1.833 +<UL>attributes are from the IMG tag (!)</UL>
   1.834 +<B>TYPE</B>= text | password | file
   1.835 +<UL>font style is forced to fixed
   1.836 +<BR><B>VALUE</B>= string
   1.837 +<BR><B>SIZE</B>= int (clamped; >= 1)
   1.838 +<BR><B>MAXLENGTH</B>= int (not clamped!)</UL>
   1.839 +<B>TYPE</B>= submit | reset | button | hidden | readonly
   1.840 +<UL><B>VALUE</B>=string; default if no value to the attribute varies according
   1.841 +to the type:
   1.842 +<UL><B>submit</B> -> "Submit Query"
   1.843 +<BR><B>reset</B> -> "Reset"
   1.844 +<BR>others -> "&nbsp; " (2 spaces)
   1.845 +<BR>Note also that the value has newlines stripped from it</UL>
   1.846 +<B>WIDTH</B>=int (clamped >=0 &amp;&amp; &lt;= 1000) (only for submit,
   1.847 +reset or button)
   1.848 +<BR><B>HEIGHT</B>=int (clamped >=0 &amp;&amp; &lt;= 1000) (only for submit,
   1.849 +reset or button)</UL>
   1.850 +<B>TYPE</B>=radio | checkbox
   1.851 +<UL><B>CHECKED</B> (flag - if present then set to true)
   1.852 +<BR><B>VALUE</B>= string (the default value is "on")</UL>
   1.853 +</UL>
   1.854 +<B>SELECT&nbsp;</B>
   1.855 +<UL>Attributes:
   1.856 +<UL><B>MULTIPLE</B> (boolean)
   1.857 +<BR><B>SIZE</B>= int (clamped >= 1)
   1.858 +<BR><B>NAME=</B> string
   1.859 +<BR><B>WIDTH</B>= int (clampled >= 0 &amp;&amp; &lt;= 1000)
   1.860 +<BR><B>HEIGHT</B>= int (clamped >= 0 &amp;&amp; &lt;= 1000; only examined
   1.861 +for single entry lists (!multiple || size==1))</UL>
   1.862 +</UL>
   1.863 +<B>OPTION&nbsp;</B>
   1.864 +<UL>Lives inside the SELECT tag (ignored otherwise).
   1.865 +<BR>Attributes:
   1.866 +<UL><B>VALUE</B>=string
   1.867 +<BR><B>SELECTED</B> boolean</UL>
   1.868 +</UL>
   1.869 +<B>TEXTAREA&nbsp;</B>
   1.870 +<UL>Attributes:
   1.871 +<UL><B>NAME</B>=string
   1.872 +<BR><B>ROWS</B>=int (clamped; >= 1)
   1.873 +<BR><B>COLS</B>=int (clamped; >= 1)
   1.874 +<BR><B>WRAP</B>= off | hard | soft (default is off; any value which is
   1.875 +not known turns into soft)</UL>
   1.876 +</UL>
   1.877 +<B>KEYGEN&nbsp;</B>
   1.878 +<UL>Attributes:
   1.879 +<UL><B>NAME</B>=string
   1.880 +<BR><B>CHALLENGE</B>=string
   1.881 +<BR><B>PQG</B>=string
   1.882 +<BR><B>KEYTYPE</B>=string</UL>
   1.883 +</UL>
   1.884 +
   1.885 +<H3>
   1.886 +
   1.887 +<HR ALIGN=LEFT WIDTH="50%"></H3>
   1.888 +<B>BASEFONT&nbsp;</B>
   1.889 +<UL>Sets the base font value which +/- size values in FONT tags are relative
   1.890 +to.
   1.891 +<BR>Attributes:
   1.892 +<UL>SIZE=+ int | - int | int (just like FONT)</UL>
   1.893 +</UL>
   1.894 +
   1.895 +<H2>
   1.896 +
   1.897 +<HR WIDTH="100%">Unsupported</H2>
   1.898 +<B>NSCP_CLOSE, NSCP_OPEN, NSCP_REBLOCK, MQUOTE, CELL, SUBDOC, CERTIFICATE,
   1.899 +INLINEINPUTTHICK, INLINEINPUTDOTTED, COLORMAP, HYPE, SPELL, NSDT</B>
   1.900 +<UL>These tags are unsupported because they are used internally by netscape
   1.901 +and are never seen in real content. If somebody does use them between 4.0
   1.902 +and magellan, tough beans. We never documented them so they lose.</UL>
   1.903 +
   1.904 +</BODY>
   1.905 +</HTML>

mercurial