Genii Weblog

Bonus Feature: Auto tagging tables, rows and cells in HTML generation

Mon 19 Sep 2005, 01:23 PM



by Ben Langhinrichs
With 3.50 just recently released, you might think that our "Notes/Domino 7 supported" version would be short on features, but there has been a lot of behind the scenes work done that was not ready for 3.50.  This is the third in a short series of posts on new features coming along with Notes/Domino 7 support.

Last Wednesday, I showed how Version 3.60 will add the option to suppress font tags when generating HTML, which is critical to better CSS control.

On Thursday, I showed how Version 3,60 will also add the option to generate sparse tables in HTML, which used along with the font suppression makes it possible to create tables that can be displayed almost any way with CSS.

Today, I will show how auto tagging can add ids or classes to tables, table rows (TR tag) and table cells (TD or TH tags).  These ids or classes can be used ahead of time to control the appearance of the table with a great degree of specificity.

Alan's Table Redux
As before, here is a portion of a larger table which Alan Lepofsky published in the BP forum based on Forrester Research's findings:


Shared services
Architecture
Administration
Market presence
IBM Lotus Notes And Domino 6.5.1
3.0
4.1
4.1
3.6
Microsoft Windows Server System And Office System 2003
3.3
3.5
3.6
3.8
Novell GroupWise 6.5
3.2
2.7
2.8
2.5
Oracle Collaboration Suite Release 2
3.6
3.5
3.4
3.3


If you look back in the previous post, you can see the HTML generated by Domino.  Go ahead and look, I won't lose your place.

OK, now, here is the HTML for the same table generated with font suppression and sparse tables turned on, but also adding simple auto tagging of all table elements using the Midas Rich Text LSX:

<table id='tbl1'><tr id='tbl1_r1'><td id='tbl1_r1_c1'><br></td><td id='tbl1_r1_c2'>Shared services</td><td id='tbl1_r1_c3'>Architecture</td><td id='tbl1_r1_c4'>Administration</td><td id='tbl1_r1_c5'>Market presence</td></tr><tr id='tbl1_r2'><td id='tbl1_r2_c1'>IBM Lotus Notes And Domino 6.5.1</td><td id='tbl1_r2_c2'>3.0</td><td id='tbl1_r2_c3'>4.1</td><td id='tbl1_r2_c4'>4.1</td><td id='tbl1_r2_c5'>3.6</td></tr><tr id='tbl1_r3'><td id='tbl1_r3_c1'>Microsoft Windows Server System And Office System 2003</td><td id='tbl1_r3_c2'>3.3</td><td id='tbl1_r3_c3'>3.5</td><td id='tbl1_r3_c4'>3.6</td><td id='tbl1_r3_c5'>3.8</td></tr><tr id='tbl1_r4'><td id='tbl1_r4_c1'>Novell GroupWise 6.5</td><td id='tbl1_r4_c2'>3.2</td><td id='tbl1_r4_c3'>2.7</td><td id='tbl1_r4_c4'>2.8</td><td id='tbl1_r4_c5'>2.5</td></tr><tr id='tbl1_r5'><td id='tbl1_r5_c1'>Oracle Collaboration Suite Release 2</td><td id='tbl1_r5_c2'>3.6</td><td id='tbl1_r5_c3'>3.5</td><td id='tbl1_r5_c4'>3.4</td><td id='tbl1_r5_c5'>3.3</td></tr></table>

So, if you wanted to make the Oracle Collaboration Suite Release 2 value for Shared Services red as it was before, you could have CSS such as:

#tbl1_r5_c2 {font-color: red}

Of course, you might not want to change individual cells, but only rows, so you could specify auto tagging just at the row level, and you would get:

<table><tr id='tbl1_r1'><td><br></td><td>Shared services</td><td>Architecture</td><td>Administration</td><td>Market presence</td></tr><tr id='tbl1_r2'><td>IBM Lotus Notes And Domino 6.5.1</td><td>3.0</td><td>4.1</td><td>4.1</td><td>3.6</td></tr><tr id='tbl1_r3'><td>Microsoft Windows Server System And Office System 2003</td><td>3.3</td><td>3.5</td><td>3.6</td><td>3.8</td></tr><tr id='tbl1_r4'><td>Novell GroupWise 6.5</td><td>3.2</td><td>2.7</td><td>2.8</td><td>2.5</td></tr><tr id='tbl1_r5'><td>Oracle Collaboration Suite Release 2</td><td>3.6</td><td>3.5</td><td>3.4</td><td>3.3</td></tr></table>

So, if you wanted to make the Novell GroupWise 6.5 row orange, you could have CSS such as:

#tbl1_r4 {font-color: orange}

When I have a chance, I'll put together a couple of pages to show how this could be used to make very cool pages... and what would happen to those same pages with Domino's HTML.

Copyright © 2005 Genii Software Ltd.

What has been said:

No documents found