katew@csd.sgi.com
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.)
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.
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.
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.
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
--------------------------------------------------------------------------------------------------