layout/doc/obsolete/nav4-html.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 <!-- This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 - License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
michael@0 4
michael@0 5 <HTML>
michael@0 6 <HEAD>
michael@0 7 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
michael@0 8 <META NAME="Author" CONTENT="Kipp E.B. HIckman">
michael@0 9 <META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (WinNT; I) [Netscape]">
michael@0 10 <TITLE>HTML</TITLE>
michael@0 11 <BASE HREF="file:///s|/ns/xena/htmlpars/testhtml/">
michael@0 12 </HEAD>
michael@0 13 <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#800080" ALINK="#0000FF">
michael@0 14
michael@0 15 <H2>
michael@0 16 HTML</H2>
michael@0 17 This documents describes the complete handling of HTML in magellan. The
michael@0 18 document covers the parsing process - how HTML is lexically analysized
michael@0 19 and then interprted. After the parsing process is discussed we give a detailed
michael@0 20 analysis of each HTML tag and the attributes that are supported, the values
michael@0 21 for the attributes and how the tag is treated by magellan.
michael@0 22 <H2>
michael@0 23 Parsing</H2>
michael@0 24 HTML is tokenized by an HTML scanner. The scanner is fed unicode data to
michael@0 25 parse. Stream converters are used to translate from various encodings to
michael@0 26 unicode. The scanner separates the input stream into tokens which consist
michael@0 27 of:
michael@0 28 <UL>
michael@0 29 <LI>
michael@0 30 text</LI>
michael@0 31
michael@0 32 <LI>
michael@0 33 tags</LI>
michael@0 34
michael@0 35 <LI>
michael@0 36 entities</LI>
michael@0 37
michael@0 38 <LI>
michael@0 39 script-entities</LI>
michael@0 40
michael@0 41 <LI>
michael@0 42 comments</LI>
michael@0 43
michael@0 44 <LI>
michael@0 45 conditional comments</LI>
michael@0 46 </UL>
michael@0 47 The HTML parsing engine uses the HTML scanner for lexical anlaysis. The
michael@0 48 parsing engine operates by attacking the input stream in a set of well
michael@0 49 defined steps:
michael@0 50 <UL>
michael@0 51 <LI>
michael@0 52 The parser processes the head portion of the document first, without emitting
michael@0 53 any output. This is done to discover a few special features of html:</LI>
michael@0 54
michael@0 55 <UL>
michael@0 56 <LI>
michael@0 57 The parser processes META tags looking for META TARGET</LI>
michael@0 58
michael@0 59 <LI>
michael@0 60 The parser processes META tags looking for META tags which affect the character
michael@0 61 set. Nav4 handles the very first character set defining meta tag (all others
michael@0 62 are ignored) by reloading the document with the proper character conversion
michael@0 63 module inserted into the stream pipeline.</LI>
michael@0 64 </UL>
michael@0 65
michael@0 66 <LI>
michael@0 67 After the head portion is processed the parser then proceeds to process
michael@0 68 the body of the document</LI>
michael@0 69 </UL>
michael@0 70
michael@0 71 <H3>
michael@0 72 Tag Processing</H3>
michael@0 73 Tags are processed by the parser by locating a <B>"tag handler"</B> for
michael@0 74 the tag. The HTML parser serves as the tag handler for all of the builtin
michael@0 75 tags documented below. Tag attribute handling is done during translation
michael@0 76 of tags into content. This mapping translates the tag attributes into content
michael@0 77 data and into style data. The translation to style data is documented below
michael@0 78 by indicating the mapping from tag attributes to their CSS1 (plus extensions)
michael@0 79 equivalents.
michael@0 80 <H3>
michael@0 81 Special Hacks</H3>
michael@0 82 The following list describes hacks added to the magellan parsing engine
michael@0 83 to deal with navigator compatibility. These are just the parser hacks,
michael@0 84 not the layout or presentation hacks. Most hacks are intriduced for HTML
michael@0 85 syntax error recovering. HTML doesn't specify much how to handle those
michael@0 86 error conditions. Netscape has made big effort to render pages with non-prefect
michael@0 87 HTML. For many reasons, new browsers need to keep compatible in thsi area.
michael@0 88 <UL>
michael@0 89 <LI>
michael@0 90 Entities can be used as escape in quoted string. For value string in name-value
michael@0 91 pair,&nbsp; see <A HREF="../testhtml/quote001.html">compatibility test
michael@0 92 quote001.html</A>. Test line 70 shows that an entity quote at the begining
michael@0 93 means the value is NOT quoted. Test line 90 shows that if the value is
michael@0 94 started with a quote, then an entity quote does NOT terminate the value
michael@0 95 string.</LI>
michael@0 96
michael@0 97 <LI>
michael@0 98 Wrapping tags are special tags such as title, textarea, server, script,
michael@0 99 style, and etc.. The comment in ns\lib\libparse\pa_parse.c says:</LI>
michael@0 100
michael@0 101 <BR>&nbsp; /*
michael@0 102 <BR>&nbsp;&nbsp; * These tags are special in that, after opening one of
michael@0 103 them, all other tags are ignored until the matching
michael@0 104 <BR>&nbsp;&nbsp; * closing tag.
michael@0 105 <BR>&nbsp;&nbsp; */
michael@0 106 <BR>During the searching of an end tag, comments and quoted strings are
michael@0 107 observed. see <A HREF="../testhtml/title01.html">compatibility test title01.html</A>.
michael@0 108 6.0 handles comments now, need to add quoted string.
michael@0 109 <LI>
michael@0 110 If a &lt;tr> or &lt;td> tag is seen outside any &lt;table> scope, it is
michael@0 111 ignored. see <A HREF="../testhtml/table110.htm">compatibility test table110.htm</A>.</LI>
michael@0 112
michael@0 113 <LI>
michael@0 114 <FONT COLOR="#000000">In case of table in table but not in cell, table
michael@0 115 tags before the last table tag are ignored. We found this problem in some
michael@0 116 Netscape public pages, see bug #85118. For example, &lt;table> &lt;table
michael@0 117 border> .....,or &lt;table> &lt;tr> &lt;table border>...,&nbsp; the table
michael@0 118 will be displayed with border.&nbsp;</FONT> <A HREF="../testhtml/table201.html">compatibility
michael@0 119 test table201.html</A>. There table and tr tags are buffered for this recovery.
michael@0 120 When a TD or CAPTION tag is open, the buffer is flushed out, because we
michael@0 121 cannot buffer contents of TD or CAPTION for performance and memory constrains.
michael@0 122 They are subdoc's and can be very big. If we see a &lt;table> outside cell
michael@0 123 after previous table is flushed out, the new &lt;table> tag is ignored.
michael@0 124 Nav4.0 can discard previous table in such case. <A HREF="../testhtml/tableall.html">tableall.html
michael@0 125 </A>is the index for table test cases.</LI>
michael@0 126
michael@0 127 <LI>
michael@0 128 Caption is not a commonly used feature. In Nav4.0, captions can be anywhere.
michael@0 129 For Captions outside cells, the first one takes effect. For captions inside
michael@0 130 cells, the last one takes effect, and they also close TD and TR. In 6.0,
michael@0 131 caption is limited to the standard position: after &lt;table>. Captions
michael@0 132 in other places are ignored, their contents are treated as text. See test
michael@0 133 case table05a.html to table05o.html.</LI>
michael@0 134
michael@0 135 <LI>
michael@0 136 <FONT COLOR="#000000">For &lt;table> &lt;tr> &lt;tr>, the first &lt;tr>
michael@0 137 takes effect.</FONT></LI>
michael@0 138
michael@0 139 <LI>
michael@0 140 The nav4 parser notices when it hits EOF and it's in the middle of scanning
michael@0 141 in a comment. When this happens, the parser goes back and looks for an
michael@0 142 improperly closed comment (e.g. a simple > instead of a -->). If it finds
michael@0 143 one, it reparses the input after closing out the comment.</LI>
michael@0 144
michael@0 145 <LI>
michael@0 146 <FONT COLOR="#FF0000">XXX Brendan also pointed out that there is something
michael@0 147 similar done for tags, but I don't recall what it is right now.</FONT></LI>
michael@0 148
michael@0 149 <LI>
michael@0 150 <FONT COLOR="#000000">When Nav4.0 sees the '&lt;' sign, it searchs for
michael@0 151 '>', observing quoted values. If it cannot find one till EOF, the '&lt;'
michael@0 152 sign is treated as text. In Xena 6.0, a limit is set for how far the '>'
michael@0 153 is searched. the default limit is 4096 char, and there is a API HTMLScanner.setMaxTagLength()
michael@0 154 to changed it. setting -1 means no limit, which is same as Nav4.0.</FONT></LI>
michael@0 155 </UL>
michael@0 156 <FONT COLOR="#FF0000">TODO:</FONT>
michael@0 157 <UL><FONT COLOR="#FF0000">Document the mapping of tag attributes into CSS1
michael@0 158 style, including any new "css1" attributes</FONT>
michael@0 159 <BR>&nbsp;</UL>
michael@0 160 <B>List of 6.0 features incompatible with 4.0</B>
michael@0 161 <UL>
michael@0 162 <LI>
michael@0 163 Navigator 4.0 value string is truncated at 82 characters. XENA60 limit
michael@0 164 is MAX_STRING_LENGTH = 2000.</LI>
michael@0 165
michael@0 166 <BR>&nbsp;</UL>
michael@0 167
michael@0 168 <HR WIDTH="100%">
michael@0 169 <H2>
michael@0 170 Tags (Categorically sorted)</H2>
michael@0 171 All line breaks are conditional. If the x coordinate is at the current
michael@0 172 left margin then a soft line break does nothing. Hard line breaks are ignored
michael@0 173 if the last tag did a hard line break.
michael@0 174
michael@0 175 <P><B>divalign</B> = left | right | center | justify
michael@0 176 <BR><B>alignparam</B> = abscenter | left | right | texttop | absbottom
michael@0 177 | baseline | center | bottom | top | middle | absmiddle
michael@0 178 <BR><B>colorspec</B> = named-color | #xyz | #xxyyzz | #xxxyyyzzz | #xxxxyyyyzzzz
michael@0 179 <BR><B>clip</B> = [auto | value-or-pct-xy](1..4) (pct of width for even
michael@0 180 coordinates; pct of height for odd coordinates)
michael@0 181 <BR><B>value-or-pct = </B>an integer with an optional %; ifthe percent
michael@0 182 is present any following characters are ignored!
michael@0 183 <BR><B>coord-list</B> = <FONT COLOR="#DD0000">XXX</FONT>
michael@0 184 <BR><FONT COLOR="#000000"><B>whitespace-strip</B> = remove leading and
michael@0 185 trailing and any embedded whitespace that is not an actual space (e.g.
michael@0 186 newlines)</FONT>
michael@0 187 <H1>
michael@0 188 Head objects:</H1>
michael@0 189 <B>TITLE</B>
michael@0 190 <UL>The TITLE tag is a container tag whose contents are not HTML. The contents
michael@0 191 are pure text and are processed by the parser until the closing tag is
michael@0 192 found. There are no attributes on the tag and any whitespace present in
michael@0 193 the tag is compressed down with leading and trailing whitespace eliminated.
michael@0 194 The first TITLE tag found by the parser is used as the document's title
michael@0 195 (subsequent tags are ignored).</UL>
michael@0 196 <B>BASE</B>
michael@0 197 <UL>Sets the base element in the head portion of the document. Defines
michael@0 198 the base URL for <FONT COLOR="#DD0000">all</FONT>? links in the document.
michael@0 199 <BR>Attributes:
michael@0 200 <UL><B>HREF</B>=url [This is an absolute URL]
michael@0 201 <BR><B>TARGET</B>=string [must start with XP_ALPHA|XP_DIGIT|underscore
michael@0 202 otherwise nav4 ignores it]</UL>
michael@0 203 </UL>
michael@0 204 <B>META</B>
michael@0 205 <UL>Can define several header fields (content-encoding, author, etc.)
michael@0 206 <BR>Attributes:
michael@0 207 <UL><B>REL</B>=SMALL_BOOKMARK_ICON|LARGE_BOOKMARK_ICON
michael@0 208 <UL><B>SRC</B>=string</UL>
michael@0 209 <B>HTTP-EQUIV</B>="header: value"
michael@0 210 <UL><B>CONTENT</B>=string</UL>
michael@0 211 </UL>
michael@0 212 HTTP-EQUIV values (from libnet/mkutils.c NET_ParseMimeHeader):
michael@0 213 <UL>ACCEPT-RANGES
michael@0 214 <BR>CONTENT-DISPOSITION
michael@0 215 <BR>CONTENT-ENCODING
michael@0 216 <BR>CONTENT-RANGE
michael@0 217 <BR>CONTENT-TYPE [ defines character set only ]
michael@0 218 <BR>CONNECTION
michael@0 219 <BR>DATE
michael@0 220 <BR>EXPIRES
michael@0 221 <BR>EXT-CACHE
michael@0 222 <BR>LOCATION
michael@0 223 <BR>LAST-MODIFIED
michael@0 224 <BR>LINK
michael@0 225 <BR>PROXY-AUTHENTICATE
michael@0 226 <BR>PROXY-CONNECTION
michael@0 227 <BR>PRAGMA
michael@0 228 <BR>RANGE
michael@0 229 <BR>REFRESH
michael@0 230 <BR>SET-COOKIE
michael@0 231 <BR>SERVER
michael@0 232 <BR>WWW-AUTHENTICATE
michael@0 233 <BR>WWW-PROTECTION-TEMPLATE
michael@0 234 <BR>WINDOW-TARGET</UL>
michael@0 235 Style sheets and HTML w3c spec adds this:
michael@0 236 <UL>CONTENT-STYLE-TYPE [ last one wins; overrides header from server if
michael@0 237 any ]</UL>
michael@0 238 </UL>
michael@0 239 <B>LINK</B>
michael@0 240 <UL>List related resources. Used by extensions mechanism to find tag handlers.
michael@0 241 <FONT COLOR="#0000FF">/LINK == LINK!</FONT>
michael@0 242 <BR>Attributes:
michael@0 243 <UL><B>REL</B>=FONTDEF
michael@0 244 <UL><B>SRC</B>=url</UL>
michael@0 245 <B>REL</B>=STYLESHEET [ If MEDIA param is defined it must ==nc screen ]
michael@0 246 <UL><B>LANGUAGE</B>=LiveScript|Mocha|JavaScript1.1|JavaScript1.2
michael@0 247 <BR><B>TYPE</B>="text/javascript" | "text/css"
michael@0 248 <BR><B>HREF</B>=url
michael@0 249 <BR><B>ARCHIVE</B>=url
michael@0 250 <BR><B>CODEBASE</B>=url
michael@0 251 <BR><B>ID</B>=string
michael@0 252 <BR><B>SRC</B>=url</UL>
michael@0 253 </UL>
michael@0 254 Note: HREF takes precedence over SRC in nav4.</UL>
michael@0 255 <B>HEAD</B>
michael@0 256 <UL>/HEAD clears the "in_head" flag (but leaves the "in_body" flag alone.
michael@0 257 <BR>Text in head clears in_head, and set in_body true, just as if the author
michael@0 258 forgot the /HEAD tag.
michael@0 259 <BR>Attributes: none</UL>
michael@0 260 <B>HTML</B>
michael@0 261 <UL>Ignored.
michael@0 262 <BR>Attributes: none</UL>
michael@0 263 <B>STYLE</B>
michael@0 264 <UL>Allowed anywhere in the document. Note that entities are not parsed
michael@0 265 in the style tag's content.
michael@0 266 <BR>Attributes:
michael@0 267 <UL><B>LANGUAGE</B>=LiveScript|Mocha|JavaScript1.1|JavaScript1.2
michael@0 268 <BR><B>TYPE</B>="text/javascript" | "text/css"
michael@0 269 <BR><B>HREF</B>=url
michael@0 270 <BR><B>ARCHIVE</B>=url
michael@0 271 <BR><B>CODEBASE</B>=url
michael@0 272 <BR><B>ID</B>=string
michael@0 273 <BR><B>SRC</B>=url</UL>
michael@0 274 </UL>
michael@0 275 <B>FRAMESET</B>
michael@0 276 <UL>Frameset with rows=1 and cols=1 is ignored.
michael@0 277 <BR>Attributes:
michael@0 278 <UL><B>FRAMEBORDER</B>= no | 0 (zero) [default is no_edges=false]
michael@0 279 <BR><B>BORDER</B>= int [clamped: >= 0 &amp;&amp; &lt;= 100]
michael@0 280 <BR><B>BORDERCOLOR</B>= color
michael@0 281 <BR><B>ROWS</B>= pct-list
michael@0 282 <BR><B>COLS</B>= pct-list</UL>
michael@0 283 </UL>
michael@0 284 <B>FRAME</B>
michael@0 285 <UL>Border width of zero disables edges.
michael@0 286 <BR>Attributes:
michael@0 287 <UL><B>FRAMEBORDER</B>= no | 0 (zero) [default is framesets value]
michael@0 288 <BR><B>BORDER</B>= int [clamped; >= 0 &amp;&amp; &lt;= 100]
michael@0 289 <BR><B>BORDERCOLOR</B>= color
michael@0 290 <BR><B>NORESIZE</B>= true [default is false]
michael@0 291 <BR><B>SCROLLING</B>= yes | scroll | on | no | noscroll | off
michael@0 292 <BR><B>SRC</B>= url [clamped: prevent recursion by eliminating any anscestor
michael@0 293 references]
michael@0 294 <BR><B>NAME</B>= string
michael@0 295 <BR><B>MARGINWIDTH</B>= int (clamped: >= 1)
michael@0 296 <BR><B>MARGINHEIGHT</B>= int (clamped: >= 1)</UL>
michael@0 297 </UL>
michael@0 298 <B>NOFRAMES</B>
michael@0 299 <UL>Used when frames are disabled or for backrev browsers. Has no stylistic
michael@0 300 consequences.</UL>
michael@0 301
michael@0 302 <H1>
michael@0 303
michael@0 304 <HR WIDTH="100%">Body objects:</H1>
michael@0 305 &nbsp;<B>BODY</B>
michael@0 306 <UL>The tag is only processed on open tags and it is always processed.
michael@0 307 See ns\lib\layout\laytags.c, searching for "case P_BODY". During tag processing
michael@0 308 the in_head flag is set to false and the in_body flag is set to true. An
michael@0 309 attribute is ignored if the document already has that attribute set. Attributes
michael@0 310 can be set by style sheets, or by previous BODY tags. see <A HREF="../testhtml/head02.html">test
michael@0 311 head02.html</A>.
michael@0 312 <BR>Attributes:
michael@0 313 <UL><B>MARGINWIDTH</B>=int [clamped: >= 0 &amp;&amp; &lt; (windowWidth/2
michael@0 314 - 1)]
michael@0 315 <BR><B>MARGINHEIGHT</B>=int [clamped: >= 0 &amp;&amp; &lt; (windowHeight/2
michael@0 316 - 1)]
michael@0 317 <BR><B>BACKGROUND</B>=url
michael@0 318 <BR><B>BGCOLOR</B>=colorspec
michael@0 319 <BR><B>TEXT</B>=colorspec
michael@0 320 <BR><B>LINK</B>=colorspec
michael@0 321 <BR><B>VLINK</B>=colorspec
michael@0 322 <BR><B>ALINK</B>=colorspec
michael@0 323 <BR><B>ONLOAD, ONUNLOAD, UNFOCUS, ONBLUR, ONHELP</B>=script
michael@0 324 <BR><B>ID</B>=string</UL>
michael@0 325 </UL>
michael@0 326 <B>LAYER, ILAYER</B>
michael@0 327 <UL>Open layer/ilayer tag automaticly close out an open form if one is
michael@0 328 open. It does something to the soft linebreak state too.
michael@0 329 <BR>Attributes:
michael@0 330 <UL><B>LEFT</B>=value-or-pct (pct of <TT>right-left</TT> margin)
michael@0 331 <BR><B>PAGEX</B>=x (if no LEFT)
michael@0 332 <BR><B>TOP</B>=value-or-pct
michael@0 333 <BR><B>PAGEY</B>=y (if no TOP)
michael@0 334 <BR><B>CLIP</B>=clip
michael@0 335 <BR><B>WIDTH</B>=value-or-pct (pct of <TT>right-left</TT> margin)
michael@0 336 <BR><B>HEIGHT</B>=value-or-pct
michael@0 337 <BR><B>OVERFLOW</B>=string
michael@0 338 <BR><B>NAME</B>=string
michael@0 339 <BR><B>ID</B>=string
michael@0 340 <BR><B>ABOVE</B>=string
michael@0 341 <BR><B>BELOW</B>=string
michael@0 342 <BR><B>ZINDEX</B>=int [any value]
michael@0 343 <BR><B>VISIBILITY</B>=string
michael@0 344 <BR><B>BGCOLOR</B>=colorspec
michael@0 345 <BR><B>BACKGROUND</B>=url</UL>
michael@0 346 </UL>
michael@0 347 <B>NOLAYER</B>
michael@0 348 <UL>Container for content which is used when layers are disabled or unsupported.
michael@0 349 The content has no style consequences (though it could if somebody stuck
michael@0 350 in some CSS1 style rules for it).</UL>
michael@0 351 <B>P</B>
michael@0 352 <UL>Closes the paragraph. If the attribute is present then an alignment
michael@0 353 gets pushed on the alignment stack. All values are supported by nav4.
michael@0 354 <BR>Attributes:
michael@0 355 <UL><B>ALIGN</B>=divalign</UL>
michael@0 356 </UL>
michael@0 357 <B>ADDRESS</B>
michael@0 358 <UL>There are no attributes. ADDRESS closes out the open paragraph. The
michael@0 359 open tag does a conditional soft line break and then pushes a merge of
michael@0 360 the current style with italics enabled onto the style stack. The close
michael@0 361 always pop the style stack and also does a conditional soft line break.</UL>
michael@0 362 <B>PLAINTEXT, XMP</B>
michael@0 363 <UL>PLAINTEXT causes the remaining content to no longer be parsed. XMP
michael@0 364 causes the content to not parse entities or other tags. The XMP can be
michael@0 365 closed by it's own tag (on any boundary); PLAINTEXT is not closed (html3.2
michael@0 366 allows it to be closed). Both tags change the style to a fixed font of
michael@0 367 a</UL>
michael@0 368 <B>LISTING</B>
michael@0 369 <UL>Closes the paragraph. Does a hard line break on open and close. Open
michael@0 370 pushes a fixed width font style of a particular font size on the style
michael@0 371 stack. The close tag pops the top of the style stack.
michael@0 372 <BR>Attributes: none</UL>
michael@0 373 <B>PRE</B>
michael@0 374 <UL>Closes the paragraph. The open tag does a hard line break. A fixed
michael@0 375 font style (unless VARIABLE is present) is pushed on the style stack. The
michael@0 376 close tag pops the top of the style stack. It also does a hard line break.
michael@0 377 <BR>Attributes:
michael@0 378 <UL><B>WRAP</B>
michael@0 379 <BR><B>COLS</B>=int [clamped: >= 0]
michael@0 380 <BR><B>TABSTOP</B>=int [clamped: >= 0; clamped value is replaced with default
michael@0 381 value]
michael@0 382 <BR><B>VARIABLE</B></UL>
michael@0 383 </UL>
michael@0 384 <B>NOBR</B>
michael@0 385 <UL>This tag doesn't nest. Instead it just sets or clears a flag in the
michael@0 386 state machine. It has no effect on any other state.</UL>
michael@0 387 <B>CENTER</B>
michael@0 388 <UL>Closes the paragraph. Always does a conditional soft line break. The
michael@0 389 open tag pushes an alignment on the aligment stack. The close tag pops
michael@0 390 the top alignment off.
michael@0 391 <BR>Attributes: none</UL>
michael@0 392 <B>DIV</B>
michael@0 393 <UL>Closes the paragraph. Always does a conditional soft line break. COLS
michael@0 394 defines the number of columns to layout in (like MULTICOL). The open tag
michael@0 395 pushes an alignment on the alignment stack (if COLS > 1 then it pretends
michael@0 396 to be a MULTICOL tag). The close tag pops an aligment from the alignment
michael@0 397 stack.
michael@0 398 <BR>Attributes:
michael@0 399 <UL><B>ALIGN</B>=divalign
michael@0 400 <BR><B>COLS</B>=int [if cols > 1 then DIV acts like a MULTICOL tag else
michael@0 401 DIV is just a container]
michael@0 402 <UL><B>GUTTER</B>= int (clamped: >= 1)
michael@0 403 <BR><B>WIDTH</B>= value-or-pct [pct of right-left margin; clamped >= 1/0
michael@0 404 (strange code)]</UL>
michael@0 405 </UL>
michael@0 406 </UL>
michael@0 407 <B>H1-H6</B>
michael@0 408 <UL>Closes the paragraph. The open tag does a hard line break and pushes
michael@0 409 a style item which enables bold and disables fixed and italic. The close
michael@0 410 tag always pops the top item from the style stack. It also does a hard
michael@0 411 line break. If the <B>ALIGN</B> attribute is present then the open tag
michael@0 412 pushes an alignment on the alignment stack. The close tag will look at
michael@0 413 the top of the alignment stack and if its a header of any kind (H1 through
michael@0 414 H6) then the alignment is popped. In either case the close tag also does
michael@0 415 a conditional soft line break (this happens before the hard line break).
michael@0 416 <BR>Attributes:
michael@0 417 <UL><B>ALIGN</B>=divalign</UL>
michael@0 418 </UL>
michael@0 419 A note regarding closing paragraphs: Any time a close paragraph is done
michael@0 420 (for any tag) if the top of the alignment stack has a tag named "P" then
michael@0 421 a conditional soft line break is done and the alignment is popped.
michael@0 422 <H3>
michael@0 423
michael@0 424 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 425 <B>TABLE</B>
michael@0 426 <UL>Close the paragraph.
michael@0 427 <BR>Attributes:
michael@0 428 <UL><B>ALIGN=</B>left|right|center|abscenter
michael@0 429 <BR><B>BORDER</B>=int [clamped: if null then -1, if &lt; 1 then 1 ]
michael@0 430 <BR><B>BORDERCOLOR</B>=string [if not supplied then set to the text color
michael@0 431 ]
michael@0 432 <BR><B>VSPACE</B>=int [ clamped: >= 0 ]
michael@0 433 <BR><B>HSPACE</B>=int [ clamped: >= 0 ]
michael@0 434 <BR><B>BGCOLOR</B>=color
michael@0 435 <BR><B>BACKGROUND</B>=url
michael@0 436 <BR><B>WIDTH</B>=value-or-pct [ % of win.width minus margins; clamped:
michael@0 437 >= 0 ]
michael@0 438 <BR><B>HEIGHT</B>=value-or-pct [ % of win.height minus margins; clamped:
michael@0 439 >= 0 ]
michael@0 440 <BR><B>CELLPADDING</B>=int [clamped: >= 0; separate pads take precedence
michael@0 441 ]
michael@0 442 <BR><B>TOPPADDING</B>= int [clamped: >= 0 ]
michael@0 443 <BR><B>BOTTOMPADDING</B>= int [clamped: >= 0 ]
michael@0 444 <BR><B>LEFTPADDING</B>= int [clamped: >= 0 ]
michael@0 445 <BR><B>RIGHTPADDING</B>= int [clamped: >= 0 ]
michael@0 446 <BR><B>CELLSPACING</B>= int [clamped: >= 0 ]
michael@0 447 <BR><B>COLS</B>=int [clamped: >= 0]</UL>
michael@0 448 The code supports more attributes in the Table attribute handler than it
michael@0 449 does in the code that gets the attributes from the tag! They are border_top,
michael@0 450 border_left, border_right, border_bottom, border_style (defaults to outset;
michael@0 451 allows for outset/dotted/none/dashed/solid/double/groove/ridge/inset).</UL>
michael@0 452 <B>TR</B>
michael@0 453 <UL>Open TR automatically closes an open table row (and an open table cell
michael@0 454 if one is open). It also automatically closes a CAPTION tag.
michael@0 455 <BR>Attributes:
michael@0 456 <UL><B>BGCOLOR</B>=color
michael@0 457 <BR><B>BACKGROUND</B>=url
michael@0 458 <BR><B>VALIGN</B>=top|bottom|middle|center(==middle)|baseline; default
michael@0 459 is top
michael@0 460 <BR><B>ALIGN</B>=left|right|middle|center(==middle); default is left</UL>
michael@0 461 </UL>
michael@0 462 <B>TH, TD</B>
michael@0 463 <UL>If no table then the tag is ignored (open or close). If no row is currently
michael@0 464 opened or the current row is current done (because of a &lt;/TR> tag) then
michael@0 465 a new row is begun. Oddly enough the tag parameters for the row come from
michael@0 466 the TH/TD tag in this case. An open of either of these tags will automatically
michael@0 467 close the previous cell.
michael@0 468 <BR>Attributes:
michael@0 469 <UL><B>COLSPAN</B>=int [clamped: >= 1 &amp;&amp; &lt;= 1000 ]
michael@0 470 <BR><B>ROWSPAN</B>=int [clamped: >= 1 &amp;&amp; &lt;= 10000 ]
michael@0 471 <BR><B>NOWRAP</B> [boolean: disables wrapping ]
michael@0 472 <BR><B>BGCOLOR</B>=color [default: inherit from the row; if not row then
michael@0 473 table; if not table then inherit from an outer table cell; this works because
michael@0 474 the style is flattened so the outer table cell will have a color]
michael@0 475 <BR><B>BACKGROUND</B>=url [same rules as bgcolor for inheritance; tile
michael@0 476 mode is inherited too and not settable by TH/TD attributes (have to use
michael@0 477 style sheets for that)]
michael@0 478 <BR><B>VALIGN</B>=top|bottom|middle|center(==middle)|baseline; default
michael@0 479 is top
michael@0 480 <BR><B>ALIGN</B>=left|right|middle|center(==middle); default is left
michael@0 481 <BR><B>WIDTH</B>=value-or-pct [ clamped: >= 0 ]
michael@0 482 <BR><B>HEIGHT</B>=value-or-pct [ clamped: >= 0 ]</UL>
michael@0 483 </UL>
michael@0 484 <B>CAPTION</B>
michael@0 485 <UL>An open caption tag will automatically close an open table row (and
michael@0 486 an open cell).
michael@0 487 <BR>Attributes:
michael@0 488 <UL><B>ALIGN</B>=bottom</UL>
michael@0 489 The code sets the vertical alignment to top w/o providing a mechanism for
michael@0 490 the user to set it (there is no VALIGN attribute).</UL>
michael@0 491 <B>MULTICOL</B>
michael@0 492 <UL>The open tag does a hard line break. The close tag checks to see if
michael@0 493 the state machine has an open multicol and if it does then it does a conditional
michael@0 494 soft line break and then continues to break until both margins are cleared
michael@0 495 of floating elements. It recomputes the margins based on the list indenting
michael@0 496 level (?). After the synthetic table is output the close tag does a hard
michael@0 497 line break.
michael@0 498
michael@0 499 <P>This tag will treat the input as source for a table with one row and
michael@0 500 COLS columns. The data is laid out using the width divided by the number
michael@0 501 of columns. After the total height is known, the content is partitioned
michael@0 502 as evenly as possible between the columns in the table.
michael@0 503 <BR>Attributes:
michael@0 504 <UL><B>COLS</B>=int [clamped: values less than 2 cause the tag to be ignored]
michael@0 505 <BR><B>GUTTER</B>=int [clamped: >= 1]
michael@0 506 <BR><B>WIDTH</B>=value-or-pct [pct of right-left margin; clamped: >= 1/0
michael@0 507 (strange code)]</UL>
michael@0 508 </UL>
michael@0 509
michael@0 510 <H3>
michael@0 511
michael@0 512 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 513 <B>BLOCKQUOTE</B>
michael@0 514 <UL>Closes the paragraph. The open tag does a hard line break. A list with
michael@0 515 the empty-bullet style is pushed on the list stack (unless TYPE=cite/jwz
michael@0 516 then a styled list is pushed). The close tag pops any list and does a hard
michael@0 517 line break.
michael@0 518 <BR>Attributes:
michael@0 519 <UL><B>TYPE</B>=cite | jwz</UL>
michael@0 520 </UL>
michael@0 521 <B>UL, OL, MENU, DIR</B>
michael@0 522 <UL>For top-level lists (lists not in lists) a hard break is done on the
michael@0 523 open tag, otherwise a conditional-soft-break is done. Tag always does a
michael@0 524 close paragrah. The close tag does a conditional soft line break when nested;
michael@0 525 when not nested the close tag does a hard line break (even if no list is
michael@0 526 open). The open tag pushes the list on the list stack. The close tag pops
michael@0 527 any list off the list stack.
michael@0 528 <BR>Attributes:
michael@0 529 <UL><B>TYPE</B>= none | disc | circle | round | square | decimal | lower-roman
michael@0 530 | upper-roman | lower-alpha | upper-alpha | A | a | I | i [clamped: if
michael@0 531 none of the above is picked and OL then the bullet type is "number" otherwise
michael@0 532 the bullet type is "basic"]
michael@0 533 <BR><B>START</B>=int [clamped: >= 1]
michael@0 534 <BR><B>COMPACT</B></UL>
michael@0 535 </UL>
michael@0 536 <B>DL</B>
michael@0 537 <UL>Closes the paragraph. For the open tag, if the list is nested then
michael@0 538 a conditional soft line break is done otherwise a hard line break is done.
michael@0 539 The open tag pushes a list on the list stack. The close tag pops any list
michael@0 540 from the list stack. Closing the list acts like other lists closes.
michael@0 541 <BR>Attributes:
michael@0 542 <UL><B>COMPACT</B></UL>
michael@0 543 </UL>
michael@0 544 <B>LI</B>
michael@0 545 <UL>Closes the paragraph. The open tag does a conditional soft line break.
michael@0 546 Close tags are ignored (except for closing the paragraph).
michael@0 547 <BR>Attributes:
michael@0 548 <UL><B>TYPE</B>= A | a | I | i (if the containing list is an <B>OL</B>)
michael@0 549 <BR><B>TYPE</B>= round | circle | square (if the containing list is not
michael@0 550 <B>OL</B> and not <B>DL</B>)
michael@0 551 <BR><B>VALUE</B>=int [clamped: >= 1]</UL>
michael@0 552 The magellan html parser allows the full set of list item styles from the
michael@0 553 OL/DL tag instead of just the limited set that nav4 allows.</UL>
michael@0 554 <B>DD</B>
michael@0 555 <UL>Closes the paragraph. Close tags are ignored (except for closing the
michael@0 556 paragraph). DD outside a DL just advances the X coordinate of layout by
michael@0 557 a small constant. DD inside a DL does a conditional soft line break and
michael@0 558 other margin crud.
michael@0 559 <BR>Attributes: none.</UL>
michael@0 560 <B>DT</B>
michael@0 561 <UL>Closes the paragraph (open or close). Close tags are otherwise ignored.
michael@0 562 Does a conditional soft line break. Moves the X layout coordinate to the
michael@0 563 left margin.
michael@0 564 <BR>Attributes: none</UL>
michael@0 565
michael@0 566 <H3>
michael@0 567
michael@0 568 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 569 <B>A</B>
michael@0 570 <UL>Open anchors push a style on the style stack if the anchor has an <B>HREF</B>.
michael@0 571 Close anchors pop as many styles off the top of the style stack that are
michael@0 572 anchor tags (anchor tags don't nest in other words). In addition, any styles
michael@0 573 on the stack that have the ANCHOR bit set have it cleared and fiddle with
michael@0 574 the foreground and background colors.
michael@0 575 <BR>Attributes:
michael@0 576 <UL><B>NAME</B>=string
michael@0 577 <BR><B>HREF</B>=url
michael@0 578 <UL><B>TARGET</B>=target
michael@0 579 <BR><B>SUPPRESS</B>=true</UL>
michael@0 580 </UL>
michael@0 581 </UL>
michael@0 582 <B>STRIKE, S, TT, CODE, SAMPLE, KBD, B, STRONG, I, EM, VAR, CITE, BLINK,
michael@0 583 BIG, SMALL, U, INLINEINPUT, SPELL</B>
michael@0 584 <UL>The open tag pushes onto the style stack. The close tag always pops
michael@0 585 the top item from the style stack.
michael@0 586 <BR>Attributes: none</UL>
michael@0 587 <B>SUP, SUB</B>
michael@0 588 <UL>The open tag pushes a font size descrease on the style stack. The close
michael@0 589 tag always pops the top of the style stack. The open and close tag impacts
michael@0 590 the baselineThe only difference between SUP and SUB is how they impact
michael@0 591 the baseline. Note that the baseline information is forgotten after a line
michael@0 592 break; therefore a close SUP/SUB on the next line will do strange things.
michael@0 593 <BR>Attributes: none</UL>
michael@0 594 <B>SPAN</B>
michael@0 595 <UL>Ignored by the navigator.
michael@0 596 <BR>Attributes: none</UL>
michael@0 597 <B>FONT</B>
michael@0 598 <UL>The open font tag with no attributes resets the font size to the base
michael@0 599 font size. The open tag always pushes a style stack entry. The close tag
michael@0 600 always pops the top item off the style stack.
michael@0 601 <BR>Attributes:
michael@0 602 <UL><B>SIZE</B>=[+ int | - int | int ]&nbsp; [clamped: >=1 &amp;&amp; &lt;=
michael@0 603 7]
michael@0 604 <BR><B>POINT-SIZE=</B>[+ int | - int | int ] [clamped: >= 1 &amp;&amp;
michael@0 605 &lt;= 1600]
michael@0 606 <BR><B>FONT-WEIGHT</B>=[+ int | - int | int ] [clamped: >= 100 &amp;&amp;
michael@0 607 &lt;= 900]
michael@0 608 <BR><B>COLOR</B>=colorspec
michael@0 609 <BR><B>FACE</B>=string</UL>
michael@0 610 </UL>
michael@0 611 A note regarding the style stack: The pop of the stack checks to see if
michael@0 612 the top of the stack is an ANCHOR tag. If it is not an anchor then the
michael@0 613 top item is unconditionally popped. If the top of the style stack is an
michael@0 614 anchor tag then the code searches for either the bottom of the stack or
michael@0 615 the first style stack entry not created by an anchor tag. If the entry
michael@0 616 is followed by another entry then the entry is removed from the stack (an
michael@0 617 out-of-order pop in other words). In this case the anchor style stack entry
michael@0 618 is left untouched.
michael@0 619 <H3>
michael@0 620
michael@0 621 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 622 <B>text, entities</B>
michael@0 623 <UL>These are basic content objects that get fed directly to the output.
michael@0 624 In navigator the text is processed by doing line-breaking (entities have
michael@0 625 been converted to text already by the parser). The line-breaking is controlled
michael@0 626 by the margin settings and the list depth, the floating elements, the style
michael@0 627 attributes (font size, etc.), the preformatted flag, the no-break flag
michael@0 628 and so on.</UL>
michael@0 629 <B>IMG, IMAGE</B>
michael@0 630 <UL>Close tag is ignored.
michael@0 631 <BR>Attributes:
michael@0 632 <UL><B>ISMAP</B>
michael@0 633 <BR><B>USEMAP</B>=url
michael@0 634 <BR><B>ALIGN</B>=alignparam
michael@0 635 <BR><B>SRC</B>=url [ whitespace is stripped ]
michael@0 636 <BR><B>LOWSRC</B>=url
michael@0 637 <BR><B>ALT</B>=string
michael@0 638 <BR><B>WIDTH</B>=value-or-pct (pct of <TT>right-left</TT> width)
michael@0 639 <BR><B>HEIGHT</B>=value-or-pct (pct of window height)
michael@0 640 <BR><B>BORDER</B>=int [clamped: >= 0]
michael@0 641 <BR><B>VSPACE</B>=int [clamped: >= 0]
michael@0 642 <BR><B>HSPACE</B>=int [clamped: >= 0]
michael@0 643 <BR><B>SUPPRESS</B>=true | false (only in blocked image layout???)</UL>
michael@0 644 </UL>
michael@0 645 <B>HR</B>
michael@0 646 <UL>Closes the paragraph. If an open tag then does a conditional soft line
michael@0 647 break. The rule inherits alignment from the parent container unless there
michael@0 648 is no container (then it's centered) or if the tag defines it's own alignment.
michael@0 649 After the object is inserted into the layout stream a soft line break is
michael@0 650 inserted as well.
michael@0 651 <BR>Attributes:
michael@0 652 <UL><B>ALIGN</B>=divalign (sort of; in laytags.c it's divalign; in layhrule.c
michael@0 653 it's left or right only)
michael@0 654 <BR><B>SIZE</B>=int (1 to 100 inclusive)
michael@0 655 <BR><B>WIDTH</B>=val-or-pct (pct of <TT>right-left</TT> width)
michael@0 656 <BR><B>NOSHADE</B></UL>
michael@0 657 </UL>
michael@0 658 <B>BR</B>
michael@0 659 <UL>Does an unconditional soft break. If clear is set then it will also
michael@0 660 soft break until either the left or right or both margins are clear of
michael@0 661 floating elements. Note that<FONT COLOR="#0000FF"> /BR == BR!</FONT>
michael@0 662 <BR>Attributes:
michael@0 663 <UL><B>CLEAR</B>=left | right | all | both</UL>
michael@0 664 </UL>
michael@0 665 <B>WBR</B>
michael@0 666 <UL>Soft word break.
michael@0 667 <BR>Attributes: none</UL>
michael@0 668 <B>EMBED</B>
michael@0 669 <UL>Close tag does nothing. Embed's operate inline just like images (they
michael@0 670 don't close the paragraph).
michael@0 671 <BR>Attributes:
michael@0 672 <UL><B>HIDDEN</B>=no | false | off
michael@0 673 <BR><B>ALIGN</B>=alignparam
michael@0 674 <BR><B>SRC</B>=url
michael@0 675 <BR><B>WIDTH</B>=val-or-pct (pct of <TT>right-left</TT> width)
michael@0 676 <BR><B>HEIGHT</B>=val-of-pct; if val is &lt; 1 (sometimes) the element
michael@0 677 gets HIDDEN automatically
michael@0 678 <BR><B>BORDER</B>=int (unsupported by navigator)
michael@0 679 <BR><B>VSPACE</B>=int [clamped: >= 0]
michael@0 680 <BR><B>HSPACE</B>=int [clamped: >= 0]</UL>
michael@0 681 </UL>
michael@0 682 <B>NOEBMED</B>
michael@0 683 <UL>Used when EMBED's are disabled. It is a container for regular content
michael@0 684 that has no stylistic consequences (no line breaking, no style stack effect,
michael@0 685 etc.).</UL>
michael@0 686 <B>APPLET</B>
michael@0 687 <UL>Applet tags don't nest (there is a notion of current_applet). The open
michael@0 688 tag automatically closes an open applet tag.
michael@0 689 <BR>Attributes:
michael@0 690 <UL><B>ALIGN</B>=alignparam
michael@0 691 <BR><B>CODE</B>=string
michael@0 692 <BR><B>CODEBASE</B>=string
michael@0 693 <BR><B>ARCHIVE</B>=string
michael@0 694 <BR><B>MAYSCRIPT</B>
michael@0 695 <BR><B>NAME</B>=string [clamped: white space is stripped out]
michael@0 696 <BR><B>WIDTH</B>=value-or-pct [pct of right-left width; clamped: >= 1]
michael@0 697 <BR><B>HEIGHT</B>=value-or-pct [pct of window height; clamped >= 1]
michael@0 698 <BR><B>BORDER</B>=int [clamped: >= 0]
michael@0 699 <BR><B>HSPACE</B>=int [clamped: >= 0]
michael@0 700 <BR><B>VSPACE</B>=int [clamped: >= 0]</UL>
michael@0 701 If no width is provided:
michael@0 702 <UL>if a height was provided, use the height. Otherwise, use 90% of the
michael@0 703 window width if percentage widths are allowed, otherwise use a value of
michael@0 704 600.
michael@0 705 <BR>&nbsp;</UL>
michael@0 706 If no height is provided:
michael@0 707 <UL>if a width was provided, use the width. Otherwise, use 50% of the window
michael@0 708 height if percentage widths are allowed, otherwise use a value of 400.</UL>
michael@0 709 If the applet is hidden, then the widht/height get forced to zero.</UL>
michael@0 710 <B>PARAM</B>
michael@0 711 <UL>The param tag is supported when contained by the APPLET tag or the
michael@0 712 OBJECT tag. It has no stylistic consequences. The attribute values from
michael@0 713 the tag are passed to the containing APPLET or OBJECT. Note that <FONT COLOR="#0000FF">/PARAM
michael@0 714 == PARAM</FONT>.
michael@0 715 <BR>Attributes:
michael@0 716 <UL><B>NAME</B>=string [clamped: white space is stripped out]
michael@0 717 <BR><B>VALUE</B>=string [clamped: white space is stripped out]</UL>
michael@0 718 White space being stripped is done as follows: leading and trailing whitespace
michael@0 719 is removed. Any embedded whitespace is left alone except if it's a non-space
michael@0 720 whitespace in which case it is removed.</UL>
michael@0 721 <B>OBJECT</B>
michael@0 722 <UL>The open tag pushes an object onto the object stack. The close tag
michael@0 723 pops from the object stack. I don't understand how the data stuff works.
michael@0 724 <BR>Attributes:
michael@0 725 <UL><B>CLASSID</B>=string (clsid:, java:, javaprogram:, javabean: are the
michael@0 726 supported prefixes; maybe it's a url if no prefix shown?)
michael@0 727 <BR><B>TYPE</B>=string (a mime type)
michael@0 728 <BR><B>DATA</B>=string (data: prefix mentions a url)</UL>
michael@0 729 There are more attributes that depend on the type of object being embedded
michael@0 730 in the page. If the object is a java bean (?) then the applet parameters
michael@0 731 are supported:
michael@0 732 <UL>CLASSID
michael@0 733 <BR>HIDDEN
michael@0 734 <BR>ALIGN
michael@0 735 <BR>CLASSID (instead of CODE)
michael@0 736 <BR>CODEBASE
michael@0 737 <BR>ARCHIVE
michael@0 738 <BR>MAYSCRIPT
michael@0 739 <BR>ID (applets use NAME)
michael@0 740 <BR>WIDTH
michael@0 741 <BR>HEIGHT
michael@0 742 <BR>BORDER
michael@0 743 <BR>HSPACE
michael@0 744 <BR>VSPACE</UL>
michael@0 745 </UL>
michael@0 746 <B>MAP</B>
michael@0 747 <UL>The open tag automatically closes an open map (maps don't nest). There
michael@0 748 is no stylistic consequence of the map nor does it provide any visible
michael@0 749 presentation in the normal layout case (an editor would do something different).
michael@0 750 The map can be declared anywhere in the document.
michael@0 751 <BR>Attributes:
michael@0 752 <UL><B>NAME</B>=string [clamped: white space is stripped out]</UL>
michael@0 753 </UL>
michael@0 754 <B>AREA</B>
michael@0 755 <UL>Does nothing if there is no current map or the tag is a close tag.
michael@0 756 <BR>Attributes:
michael@0 757 <UL><B>SHAPE</B>=default | rect | circle | poly | polygon
michael@0 758 <BR><B>ALT</B>=string [clamped: newlines are stripped]
michael@0 759 <BR><B>COORDS</B>=coord-list
michael@0 760 <BR><B>HREF=</B>url
michael@0 761 <UL><B>TARGET</B>=target (only if HREF is specified)</UL>
michael@0 762 <B>SUPPRESS</B></UL>
michael@0 763 </UL>
michael@0 764 <B>SERVER</B>
michael@0 765 <UL>A container for server-side javascript. Not evaluated by the client
michael@0 766 (parsed and ignored). Note: The navigator parser doesn't expand entities
michael@0 767 in a <B>SERVER </B>tag.</UL>
michael@0 768 <B>SPACER</B>
michael@0 769 <UL>Close tag is ignored. Open tag provides whitespace during layout: <B>TYPE</B>=line/vert/vertical
michael@0 770 causes a conditional soft line break and then adds <B>SIZE </B>to the Y
michael@0 771 layout coordinate. <B>TYPE</B>=word causes a conditional soft word break
michael@0 772 and then adds <B>SIZE </B>to the X layout coordinate. <B>TYPE</B>=block
michael@0 773 causes <FONT COLOR="#DD0000">blockish </FONT>layout stuff to happen.
michael@0 774 <BR>Attributes:
michael@0 775 <UL><B>TYPE</B>=line | vert | vertical | block (default: word)
michael@0 776 <UL><B>ALIGN</B>=alignparam (these 3 params are only for <B>TYPE</B>=block)
michael@0 777 <BR><B>WIDTH</B>=value-or-pct
michael@0 778 <BR><B>HEIGHT</B>=value-or-pct</UL>
michael@0 779 <B>SIZE</B>=int [clampled: >= 0]</UL>
michael@0 780 </UL>
michael@0 781
michael@0 782 <H3>
michael@0 783
michael@0 784 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 785 <B>SCRIPT</B>
michael@0 786 <UL>Note: The navigator parser doesn't expand entities in a SCRIPT tag.
michael@0 787 <BR>Attributes:
michael@0 788 <UL><B>LANGUAGE</B>=LiveScript | Mocha | JavaScript1.1 | JavaScript1.2
michael@0 789 <BR><B>TYPE</B>="text/javascript" | "text/css"
michael@0 790 <BR><B>HREF</B>=url
michael@0 791 <BR><B>ARCHIVE</B>=url
michael@0 792 <BR><B>CODEBASE</B>=url
michael@0 793 <BR><B>ID</B>=string
michael@0 794 <BR><B>SRC</B>=url</UL>
michael@0 795 </UL>
michael@0 796 <B>NOSCRIPT</B>
michael@0 797 <UL>Used when scripting is off or by backrev browsers. It is a container
michael@0 798 that has no stylistic consequences.</UL>
michael@0 799
michael@0 800 <H3>
michael@0 801
michael@0 802 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 803 <B>FORM&nbsp;</B>
michael@0 804 <UL>Attributes:
michael@0 805 <UL><B>ACTION</B>=href
michael@0 806 <BR><B>ENCODING</B>=string
michael@0 807 <BR><B>TARGET</B>=string
michael@0 808 <BR><B>METHOD</B>=get | post</UL>
michael@0 809 </UL>
michael@0 810 <B>ISINDEX&nbsp;</B>
michael@0 811 <UL>This tag is a shortcut for creating a form element with a submit button
michael@0 812 and a single text field. If the PROMPT attribute is not present in the
michael@0 813 tag then the value used is <B>"This is a searchable index. Enter search
michael@0 814 keywords:"</B>.
michael@0 815
michael@0 816 <P>Attributes:
michael@0 817 <UL><B>PROMPT</B>=string
michael@0 818 <BR><B>ACTION</B>=href
michael@0 819 <BR><B>ENCODING</B>=string
michael@0 820 <BR><B>TARGET</B>=string
michael@0 821 <BR><B>METHOD</B>=get | post</UL>
michael@0 822 </UL>
michael@0 823 <B>INPUT&nbsp;</B>
michael@0 824 <UL>Attributes vary according to type:
michael@0 825 <UL><B>TYPE</B>= text | radio | checkbox | hidden | submit | reset | password
michael@0 826 | button | image | file | jot | readonly | object
michael@0 827 <BR><B>NAME</B>= string
michael@0 828 <BR>&nbsp;</UL>
michael@0 829 <B>TYPE</B>=image
michael@0 830 <UL>attributes are from the IMG tag (!)</UL>
michael@0 831 <B>TYPE</B>= text | password | file
michael@0 832 <UL>font style is forced to fixed
michael@0 833 <BR><B>VALUE</B>= string
michael@0 834 <BR><B>SIZE</B>= int (clamped; >= 1)
michael@0 835 <BR><B>MAXLENGTH</B>= int (not clamped!)</UL>
michael@0 836 <B>TYPE</B>= submit | reset | button | hidden | readonly
michael@0 837 <UL><B>VALUE</B>=string; default if no value to the attribute varies according
michael@0 838 to the type:
michael@0 839 <UL><B>submit</B> -> "Submit Query"
michael@0 840 <BR><B>reset</B> -> "Reset"
michael@0 841 <BR>others -> "&nbsp; " (2 spaces)
michael@0 842 <BR>Note also that the value has newlines stripped from it</UL>
michael@0 843 <B>WIDTH</B>=int (clamped >=0 &amp;&amp; &lt;= 1000) (only for submit,
michael@0 844 reset or button)
michael@0 845 <BR><B>HEIGHT</B>=int (clamped >=0 &amp;&amp; &lt;= 1000) (only for submit,
michael@0 846 reset or button)</UL>
michael@0 847 <B>TYPE</B>=radio | checkbox
michael@0 848 <UL><B>CHECKED</B> (flag - if present then set to true)
michael@0 849 <BR><B>VALUE</B>= string (the default value is "on")</UL>
michael@0 850 </UL>
michael@0 851 <B>SELECT&nbsp;</B>
michael@0 852 <UL>Attributes:
michael@0 853 <UL><B>MULTIPLE</B> (boolean)
michael@0 854 <BR><B>SIZE</B>= int (clamped >= 1)
michael@0 855 <BR><B>NAME=</B> string
michael@0 856 <BR><B>WIDTH</B>= int (clampled >= 0 &amp;&amp; &lt;= 1000)
michael@0 857 <BR><B>HEIGHT</B>= int (clamped >= 0 &amp;&amp; &lt;= 1000; only examined
michael@0 858 for single entry lists (!multiple || size==1))</UL>
michael@0 859 </UL>
michael@0 860 <B>OPTION&nbsp;</B>
michael@0 861 <UL>Lives inside the SELECT tag (ignored otherwise).
michael@0 862 <BR>Attributes:
michael@0 863 <UL><B>VALUE</B>=string
michael@0 864 <BR><B>SELECTED</B> boolean</UL>
michael@0 865 </UL>
michael@0 866 <B>TEXTAREA&nbsp;</B>
michael@0 867 <UL>Attributes:
michael@0 868 <UL><B>NAME</B>=string
michael@0 869 <BR><B>ROWS</B>=int (clamped; >= 1)
michael@0 870 <BR><B>COLS</B>=int (clamped; >= 1)
michael@0 871 <BR><B>WRAP</B>= off | hard | soft (default is off; any value which is
michael@0 872 not known turns into soft)</UL>
michael@0 873 </UL>
michael@0 874 <B>KEYGEN&nbsp;</B>
michael@0 875 <UL>Attributes:
michael@0 876 <UL><B>NAME</B>=string
michael@0 877 <BR><B>CHALLENGE</B>=string
michael@0 878 <BR><B>PQG</B>=string
michael@0 879 <BR><B>KEYTYPE</B>=string</UL>
michael@0 880 </UL>
michael@0 881
michael@0 882 <H3>
michael@0 883
michael@0 884 <HR ALIGN=LEFT WIDTH="50%"></H3>
michael@0 885 <B>BASEFONT&nbsp;</B>
michael@0 886 <UL>Sets the base font value which +/- size values in FONT tags are relative
michael@0 887 to.
michael@0 888 <BR>Attributes:
michael@0 889 <UL>SIZE=+ int | - int | int (just like FONT)</UL>
michael@0 890 </UL>
michael@0 891
michael@0 892 <H2>
michael@0 893
michael@0 894 <HR WIDTH="100%">Unsupported</H2>
michael@0 895 <B>NSCP_CLOSE, NSCP_OPEN, NSCP_REBLOCK, MQUOTE, CELL, SUBDOC, CERTIFICATE,
michael@0 896 INLINEINPUTTHICK, INLINEINPUTDOTTED, COLORMAP, HYPE, SPELL, NSDT</B>
michael@0 897 <UL>These tags are unsupported because they are used internally by netscape
michael@0 898 and are never seen in real content. If somebody does use them between 4.0
michael@0 899 and magellan, tough beans. We never documented them so they lose.</UL>
michael@0 900
michael@0 901 </BODY>
michael@0 902 </HTML>

mercurial