April 19, 2007

Improving table support

We wrote the rich-text display engine for the Logos Library System, which lives on in the Libronix Digital Library System, before there was HTML. There was no XML, and SGML, its ancient ancestor, was huge and complicated and difficult to work with. (XML is just a dumbed-down version of SGML, which was too powerful for its own good.)

So we built our text format on RTF, which was the Microsoft Word export format, and also the basis for the Windows Help and Windows MediaView hypertext systems. Our goal was to support everything that Help, MediaView, and Word supported. (The supported feature set grew in that order.)

A pleasant side effect of this plan was that we had a powerful, WYSIWYG editor available for creating and testing e-books. We got pretty good at generating RTF manually, but RTF tables were terribly complicated. So we would often create them in Word and then export the RTF for the table and copy and paste it into the larger document.

We got an interactive table editor “for free”, but I felt a lot of responsibility to implement all the table features Word supported. I didn’t want people making a beautiful table and then discovering that our display engine couldn’t render it properly.

It was a lot of work, but eventually it was pretty thoroughly done. We support Word’s background colors and patterns, most of the border formatting (except multi-line borders joining at corners), and we can even rotate text in cells. (Lots of stuff we haven’t really used.) I tested our implementation by using Word to re-create the little cards in my wallet (insurance, punch cards, license, etc.) and then compiling them into an e-book.

The table model in Word is very powerful, but it’s very hard to type out freehand in markup. The HTML table model is easier to understand, is familiar to more people, and is also supported by many tools. And it is designed to work easily with a smart, dynamic sizing algorithm that optimizes column widths automatically. (Word has a paper-output orientation, and so its tables are generally fixed width, or at least fixed proportion.)

So that is why we’re messing around with our text display engine: to add support for HTML-style tables. Later this year we’ll be shipping books using the new table format, but you probably won’t be able to tell. Our text development team is the group that will really appreciate the change. They’ll have an easier workflow, better tools, and simpler markup.


  1. Bobby Terhune :

    Thanks for this post. I’ve been using Logos bible software for years withour knowing much about the behind the scenes stuff. Your posts help make me feel “connected” to the program in a different way.
    I think a lot of frustration users of software in general have is that there is no connection with the program except that, “I paid my money and it better do what I expect it to do”.

Practical wisdom on growing your business that you can start using today.

Get it now