Welcome to HTML-Xtra 2.0.2 / Index-Xtra 2.0.1!


During the months since we first released both Xtras, we have received many comments from our registered users. With the new releases of both Xtras we have tried to implement as many requested new features as possible in order to satisfy your needs.
Now after a beta period of about 3 month we have now finished the final versions of both xtras.

Contact:

Please send any comments and all bug reports via email to erichg@mcmm.com.
HTML-Xtra

New tags supported

General
All arguments / parameters attached to the tags can be written with or without Quotes. Quotes are only required, when the argument value contains spaces or special characters.

<FONT FACE="Times, Times New Roman">
The xtra now accepts font face arguments as defined in the HTML standard. To ensure cross-plattform compatibility you can pass a list of fonts as MacOS and Windows have different font names. In most cases you might pass two font names, one for Windows and one for MacOS. If none of the passed fonts are installed on the actual system, the enclosed text block is rendered with the default system font.

<FONT COLOR=FFFFFF>
The color argument gives the option to display text with custom colors. The color argument is a 6 digit hexadecimal number as defined as HTML RGB color identification. The HTML color names are not supported.

<CENTER>, <P align=CENTER>
The following text paragraph (until the </CENTER> or </P> tag) is centered to the width of the sprite containing the #html field.

<P align="right">
The following parapgraph (closed with </P>) is rendered right justified.

<PRE>
The following text block is rendered as pre formatted text. The Xtra uses the font face defined for <TT> (teletype) text, but unlike <TT> -tagged paragraphs, blanks and line feeds are displayed „as is". Those characters would be skipped while in a <TT> clause.

<sup>, <sub>
Now the HTML tags for superscript and subscript are rendered as expected, offering the opportunity to include footnotes and indices inside your text.

<U>
Underlined text is now rendered with a continous underline.

<IMAGE src="pic1" width=50 height=50> or <IMG …>
The xtra now recognizes the image tag. But as it would not be useful to behave like a browser, the xtra simply renders an empty space sized as defined with the arguments. When now arguments for the imagesize are specified the empty space will be rendered in default size. In addition to this, the Xtra owns a new property which gives you all the information (name and positioning rectangle) to place bitmap (or other) sprites with lingo. See the imagelist property

<A name=anchor1>
The xtra is now aware of anchors to offer links inside the same text. Each defined anchor can be accessed through the anchorlist property, which also contains information at which scroll position the anchor is rendered. See the anchorlist property.

<ul>, <li>
The new release supports unordered (bulletted) lists to be displayed. Each list item is rendered with a leading „o". Lists can be nested with each nesting level is indented by 30 pixels, no matter what font /-size is active with the list. The „o" symbol is taken from the actual character set. In case you use a font with a different symbol at the bullet position, you will get the symbol at the bullet position on the screen. This occurs for example with the MS Sans Serif font.

New Properties:

the anchorList

The anchorlist property contains a list of all anchors found in the html source. The returned value is structured as list of lists like the following example:

-- [["top", 5, 17], ["image", 71, 575], ["list", 15, 808], ["Prinz Eugen", 5, 1306]]

Each item of the surrounding list is defining one single anchor by its name, x and y position reffering to the top left corner of the sprite when first rendered (the scrolltop = 0).
When your „on link" handler is called with a link to an anchor (the parameter has a value like „nextfile.html#anchor1" as defined in the href parameter of the <A> tag), you need to do the following tasks to get a browser-like behaviour.

1. If necessary, you need to follow the link to the requested file, and pass it to the #html member.
2. Search through the anchorlist
3. Set the scrolltop of the file to the 3rd item of the enclosed list specific to the requested anchor.

the imageList

Similar to the anchorlist, the imageList is also a list of lists. The sorrounding list contains lists with the details for each image tag found. As example:

-- [["pic1 ", 71, 32, 50, 50], ["pic2", 5, 575, 50, 50]]

The first item of each details-list is the name/url of the image (as defined in the <IMG> tag), the next two items are the x- and y position of the image reffering to the top left corner of the sprite when first rendered (scrolltop = 0). The two last items are the width and height values defined with the arguments of the <IMG> tag.

With these details known you can place bitmap (or other) sprites to the correct location via Lingo. You need to take care, that you move the „overlayed" sprites when the scrolltop is changing. For example: while scrolling the #html member, you have to move the image with the scrolling of the #html member.

Changed Properties:

the metaList

the property „the meta" of the old version was renamed to „the metaList", as the value of the property actually is a list describing the contents of the meta tag(s).
INDEX-Xtra

In addition to the search options of the previous version, this version allows to find all individual occurences of the search string within one file and to alter the html of that file to mark these occurences while displaying the html with the HTML xtra. This offers an improved integration of both xtras.

In most cases you will have an index file for a huge bunch of (html-)text files. We have recognised that in most cases a user first wants a summarized list of files, which meets the users search criteria. In the second step the user will like to select one file out of this list to read through the paragraph containing the hits.

The old version supported only the first step. With this version we added two new methods to perform the second step.

New methods:

Searchtitle( indexinstance, searchstring, titlenumber )

Indexinstance is the instance of the index xtra
Searchstring contains the string to search for
Titlenumber is the number of the file in the index, which is returned by the search() method.

Searchtitle returns a nested list with the following structure:

[[wordposition01,wordlength],[wordposition02, wordlength], … ]

In most cases you will not need to look into the contents of this list. The list is used for the MarkHTML() method, described below.

If you have used the search() method with a boolean search you have to call searchtitle() with each single search phrase and then merge all the returned lists.

NewHTML = MarkHTML( indexinstance, originalHTML, searchtitleResult, tagStart, tagEnd )

When the user decided to look into a specific file, you use the returned list of the above described searchtitle() method to alter the original HTML to mark up the positions containing the search word/phrase. Customised altering of the HTML source can be processed by the markHTML() method – much faster than doing it by lingo.

OriginalHTML is the source of the HTML-file as saved on disc.
SearchTitleResult is the returned list of lists you receive from the searchtitle() method
TagStart is a string containing the HTML tags to emphasize the hits and
TagEnd contains the ending tags for the markups started by TagStart
NewHTML is the return value of the MarkHTML method. It contains the altered html code to be passed to the #html cast member.

This gives you full customised markup. You can choose to change the color or the fontsize or … like you prefer.

In addition to this, markHTML adds anchors for each hit to enable linking to the hits.
changed methods:

General search methods:

The search engine now supports tailing wildcard search. If the search string ends with an asterix (*) all matches will be found that contains at least the search string.

For Example:

A searchstring like „direct*" will return matches like:

Direct
Director
Directory
Directx

Other wildcard searches are not supported. You should check, that the searchstring is not „*", as this will return all entries of the index as match.
Revision history:

Since beta 2 following fixes were implemented:

HTML xtra:
1. Several misbehaviours of the HTML parser were fixed.
2. Display of numbered entities like &#123; on MacOS was fixed.
3. Alingment handling was fixed.
4. <IMG ...> tags at the beginning of a paragraph are handled correctly, this can be used for indentation of the first paragraph line.

Since beta 1 following fixes were implemented:

HTML xtra:
1. Colour handling is fixed. Beta 1 has swapped red & blue values and the display on Mac and Windows were different (linkcolor was swapped on Mac, HTML-Coulor was swapped on Windows).
2. <ul> now displays a bullet on both Mac and Windows.

Index Xtra:
4. A bug in the Indexer Tools has been fixed, which could lead to a crash while handling empty title tags.
5. The wordposition returned by searchtitle was fixed. Beta 1 returned wrong word position when unrecognized entities lead to misinterprated word counting. This bug was fixed in both the indexer tool and the index xtra.
6. Implementation of tailing wildcard search.

top