Title: Chapter 6, In which Pooh proposes improvements to Web authoring tools, having seen said tools for the Unix platform.


Author:
Kate Weber, Silicon Graphics, Inc., Mountain View, CA, 94043-1389 Mail stop 191
katew@csd.sgi.com

Abstract:
This paper proposes a series of improvements to Web authoring tools, in the hopes of stimulating the Web developer community to raise authoring tools to a higher standard. Web authoring tools are in their infancy. Most are little more than editors modified to output and display HTML. Few handle multimedia, integrate external conversion utilities, mimic the features of a server necessary to test the full function of the resulting HTML, or allow viewing the resulting HTML using more than one client. None handle more than one proposed extension to the current HTML standard. These and other features proposed here would improve authors' productivity, but more importantly the quality of their creations. When authoring tools integrate client and server functions, authors will be able to see their work as users see it, and this will allow them to better evaluate their material. In order to help the reader understand how these suggested improvements relate to existing capabilities, a review of authoring tools available on Unix platforms is included. The reviewed tools are HoTMetaL Pro, tkHTML, WWWeasel, WebMagic, and ASHE.

Keywords:
authoring, editor, tkHTML, HoTMetaLPro, WWWeasel, WebMagic, ASHE

Main text:

Acknowledgments:

Ideas for Web development are by their nature more group accomplishments than individual. My ideas for the future of Web authoring tools have probably been shaped by half the conversations I've had on the topic of the Web. However, I would in particular like to thank the authors of these tools for their contributions, and Jay Glicksman, Dave Ciemiewicz, and Fred Weber for their contributions to these ideas.

Background and Introduction:

In May of `94 I took a job working on Silicon Graphics' Web server. I began to hunt around for tools to help my team produce and maintain good-looking, up to date on-line information. What surprised me was that there were so many individual conversion tools, and so few attempts at creating a single tool which would integrate existing capabilities (spelling checkers, version control) with Web-specific features (generating HTML, creating maps) Further, the capabilities of Web clients and servers themselves are not, for the most part, integrated into the tools I found. I began to think in earnest about improving the design of authoring tools, and decided to write this paper to propose the improvements I've collected to the Web development community.

I begin by giving examples of basic editing features, common in word processors and becoming more common in HTML editors. I then propose a definition of an authoring tool, which goes beyond the HTML editor model, and propose a set of authoring features. Following this I propose a set of advanced features designed to improve productivity. Finally I introduce those tools I've reviewed for this paper, list which of the features I've discussed each has, and explain in some detail what is implied by each suggested feature. I do not comment on how well these features are implemented, but merely focus on whether an attempt has been made. (I have not reviewed all the available tools, and especially I have not included a review of PC and Macintosh tools, because I believe the reader will form a clear idea of existing capabilities from the range I've reviewed.)

Basic editor features:

Basic editor features are those which are commonly found in word processors, such as spelling checking and cutting and pasting, and the basic features needed to output HTML, such as applying tags to text blocks.

I set out in reviewing these tools with the assumption that all of the features I regard as basic editor features would be widely available. I did find each of the following features in at least two of the tools: cut and paste manipulation of text, highlighting a text object and applying an HTML tag to it, some method for making inserting links easier than just typing in the necessary codes, a help system, and templates. What surprised me was that the following features were not generally available: undo and redo, find and replace, a spelling checker, and allowing more than one file at a time to be open and displayed to the user. My intention here is not to focus on this level of features in these tools; I list them simply to better illustrate the difference between an editor and an authoring environment.

Authoring features:

An authoring tool, to be really effective, should not merely be a fast and easy way to produce the desired output text, images and HTML encoding. It should allow the author to determine whether his/her design works, and to do so it must show the author how his/her work will be viewed and experienced by the reader. It must, in effect, `echo back' what is being implemented, so the author can see whether it is what they intended.

Viewing in client mode: The first component of the user's experience is the client used to view the material. The authoring tool should be able to display HTML to the author exactly as the client does. Further, since there are a multitude of clients and more arrive every month, the tool should have a configurable, expandable list of client views for the author to choose from. To me this suggests being able to launch clients for viewing side by side with an editor mode.

Editing: Whether an editing mode such as I just mentioned should be a raw ASCII HTML display, or an attempt at WYSIWYG, is an interesting question. It is much easier to position an image, for instance, by dragging it, than by typing in < img align=top>. However, one could well want access to the raw HTML -- for example, if the WYSIWYG mode doesn't support a particular HTML feature, or in order to correct an image or link reference. Existing editors take an interesting variety of approaches to this viewing and editing problem. The simplest tools allow editing in a raw HTML mode, and provide a simple preview mode which is not equivalent to any client. The more sophisticated tools allow editing in a `WYSIWYG' mode not equivalent to any client, and launch real clients for preview. One tool provides editing in a single client mode.

Editing in client mode: I recognize that this poses a significant technical challenge if client mode means one of any number of clients. A possible solution is to provide editing in a mode which nearly approximates a single client, and supports viewing in all other clients.

Multimedia: In addition to being able to preview and edit text, the author should be able to preview and edit images, sounds, video, etc. Since there are a wide variety of tools available for conversion and editing of various media, this implies allowing the authoring tool to be integrated with whatever tools the author specifies. Just as clients have the MIME types concept for viewing media not natively supported by their client, so too an authoring tool should allow the author to configure which conversion utility to use to import, for example, a word processed document, or which external media editing application to trigger to allow the author to edit media.

Allowing the author to follow links: Since Web pages don't exist in a vacuum for the user, an author should be able to select a link and follow it. The document root, an underlying part of the server software, makes this a challenge, since the reference in HTML to a file contains the path name of the file from the document root, rather than from the real machine root. The authoring tool must be able either to independently mimic this server feature (i.e. store the document root and resolve addresses), or query a Web server for the information it needs (mimic a client).

Resolving image references: Since images are not physically contained in the HTML files but are rather referred to by them, in order to display a complete Web page that involves images an authoring tool must resolve the image address and go get it. This is the same problem as with following links.

Graphical link representation and editing: Another way to assist the author in understanding the effectiveness of their Web information would be to represent the HTML pages as nodes in a graphical representation of the link structure. So, hierarchically arranged data could be represented in a tree, narrative information in a line, truly amorphous data in - what else - a web! The next logical step is to consider editing the information's structure in graphical mode. If the view of your information as a hierarchical tree allows you to identify the links you want to add, why not add them in that mode? One of the tools I reviewed does show a hierarchical view of links, but doesn't allow manipulation of those links.

Advanced productivity features:

In addition to the above ideas, which I feel begin a richer definition of `authoring', I have the following ideas about how to make an authoring tool more effective. These ideas address making the tool more powerful, and thus giving the author more power in creation. These features include: syntax checking, supporting the creation of maps and forms, allowing for the use of more than one tag set, integrating conversion utilities, link maintenance, link checking, version control and security.

Syntax checking: While the authoring tool must, of course, put out valid HTML, it should be able to take in substandard HTML, notify the author of needed changes, and correct errors where possible.

More than one tag set: At any given time these days, there are server administrators worrying about when and if to start using the next HTML standard tags - when will the users adopt the clients that support these features? Just as many servers currently have one path for clients that support images and one for clients that don't, an author could want to generate, for example, both pages that use the Netscape extensions, and pages that don't. If the authoring tools approached the HTML tag set as the dynamic thing that it is, and allowed the user to designate which tag set to use for verifying the current page, the author could support multiple client environments.

Supporting maps: There are actually map editors available. For some reason, none have been integrated into any authoring tools. Support for maps could include generating coordinate numbers (with the cursor on a particular position on the graphic the user is informed of where on the x and y axis the cursor is), generating the map file automatically using coordinate positions chosen by the user, and updating the map configuration file. Again, integration of the authoring tool with the server function would allow the author to test his/her output.

Integrated conversion utilities: Let's say you are an author, and you want to import into your document an image you have stored in postscript format. You want to convert it to gif, and you happen to have a postscript to gif converter you like very much, although you've forgotten what it's called. Rather than making you remember the name, run the conversion outside your authoring tool and then do the importing, the authoring tool should allow you to configure what conversions to automatically run on various formats of data when you import them.

Version control/security: The main advantage I see version control offering Web authors is that it allows multiple authors to collaborate on a single server, without duplication or loss of work. Allowing different security levels for different parts of servers also contributes to collaboration by allowing `less authorized' authors to work on the same server as `fully authorized' authors.

Link maintenance: Various things can make it desirable to move a file or files from one location to another. When a file is moved, any HTML that refers to it must be updated. A really good authoring tool would look for, and update, references to files that are moved. (Naturally this only works on server to which the tool has access. If someone in Austria has a link to my page in Japan, I probably can't help them, except by leaving a `forwarding' reference at the old address.) Note that if an authoring tool has both link maintenance and version control, it should be able to handle the case where a reference that requires updating is in a file currently being worked on by someone else.

Link checking: The author should be able to select a particular piece of HTML and have the authoring tool `follow' the links, retrieve the items referred to, and report any problems (page not found, reference is to an image but text is retrieved, etc.) A labor-intensive part of generating HTML is checking to make sure the link references are correct. In addition to wanting to follow particular links while writing HTML to verify the logical flow, the author needs to verify that no typos have been introduced, etc.

Review of the existing tools:

Although I've reviewed several pieces of software here and this information could help you select which software would be most useful for you, I've not focused on many factors that you would naturally need to: what kind of support is available when you encounter problems; the user interface (e.g. clear structure in menus, menu choices well named, understandable icons, etc.); what kind of commitment to expanding the tool the author(s) has/have; whether it has bugs! In addition, some of the features I list as existing did not work in the versions I reviewed. The following tools are reviewed:

tkHTML was written by Liem Bahneman. It is a released product under the GNU Public License. I've reviewed version 2.1. It is described by the author as "a simple HTML editor based on the Tcl script language and the Tk toolkit for X11. It allows quick composition and editing of HTML-format documents, as well as a rapid way of converting existing text documents to the HTML format."

HoTMetaL Pro is a released product of SoftQuad Inc.There is also a free version, HoTMetaL, available via anonymous ftp. I've reviewed version 1.0 of HoTMetaL Pro for the Silicon Graphics platform.

WWWeasel, a product under development by Enterprise Integration Technologies (EIT), is quite exciting, although it currently does not have a planned release date. The version I reviewed did not have a number. EIT has an ambitious plan for their tool, with many more advanced features than the other tools I discuss.

WebMagic is a released product of Silicon Graphics. I reviewed the 0.98 beta release. From the marketing literature: "WebMagic Author, part of the WebFORCE(TM) software environment, is a powerful editor that makes creating media-rich World Wide Web pages easy."

ASHE, A Simple Hypertext Editor, was written by John R. Punin and is Copyright property of Rensselaer Polytechnic Institute. I reviewed the beta release. The authors describe it thus: "ASHE was written using C language, Motif and NCSA HTML Widget. [ ... It's objective is] to serve as a tool allowing on-line creation of HTML documents with WYSIWYG features."

The following table compares feature sets among current authoring tools; following that is a detailed explanation of what each feature is, provided as reference for the reader who wishes to determine which tool they might want to acquire and use.

--------------------------------------------------------------------------------------------------
TOOLS:            WWWeasel        tkHTML 2.1      HotMetaL Pro       WebMagic        ASHE           
--------------------------------------------------------------------------------------------------
Editor                                                                                              
features:                                                                                           
cut and paste     yes             yes             yes                yes             yes            
text and tags                                                                                       
undo/redo         no              no              yes                no              yes            
find/replace      no              yes             yes                no              no             
spell check       no              no              yes                no              no             
multiple files    yes             no              no*                yes             yes            
highlight text    no*             yes             yes*               yes             yes            
and apply tag                                                                                       
inserting links   yes             yes             no                 yes             yes            
easy                                                                                                
templates         no              no              yes                yes             no             
help              yes             yes             yes*               yes             yes            
Authoring                                                                                           
features:                                                                                           
raw ascii         no              yes             no                 no              yes            
HTML view                                                                                           
WYSIWYAG          structured      yes (no         yes                yes             yes (no        
view              editor          images)                                            images)        
WYSIWYAG          yes             no              yes                yes             no             
edit                                                                                                
`WYSIWYG' -       yes             no              yes                no              no             
at least one                                                                                        
client view                                                                                         
editing in        yes             no              no                 no              no             
WYSIWYG                                                                                             
mode                                                                                                
many clients,     no              no              is configurable,   no              no             
configurable                                      but only one at                                   
                                                  a time                                            
forms support     yes (preview,   none (no        yes (preview       yes (preview,   yes (preview   
                  some tags, no   preview, tags   and tags, no       no tags or      and tags, no   
                  script)         or script)      script)            script)         script)        
document root     yes             no              no*                no*             no             
cgi script        no              no              no                 no              no             
support                                                                                             
server-side       no              no              no                 no              no             
includes                                                                                            
preview           yes             no              no                 no              no             
multimedia                                                                                          
links -           yes             no              no                 no              no             
graphical view                                                                                      
links -           no              no              no                 no              no             
graphical                                                                                           
editing                                                                                             

Advanced                                                                                            
productivity                                                                                        
features:                                                                                           
syntax checker    yes             no              yes*               yes             no             
multiple          no              no              no                 no              no             
HTML tag sets                                                                                       
entities          yes             yes             yes                no              no             
map support       none            none            none               none            barely*        
conversion        yes             no              no                 yes*            no             
integrate         no              no              minimal            no              no             
external                                                                                            
conversion                                                                                          
utilities                                                                                           
version control   yes             no              no                 no              no             
link              no              no              no                 no              no             
maintenance -                                                                                       
file moving                                                                                         
security          no              no              no                 no              no             
desktop           yes             drag text       drag text          yes             drag text      
integration                                                                                         
link checking     no              no              no                 no              no             
--------------------------------------------------------------------------------------------------

Explanation of editor features:

Explanation of authoring features:

Explanation of advanced productivity features: