Re: HTML(+)-editor available?

Dave_Raggett <dsr@hplb.hpl.hp.com>
From: Dave_Raggett <dsr@hplb.hpl.hp.com>
Message-id: <9312141120.AA06898@manuel.hpl.hp.com>
Subject: Re: HTML(+)-editor available?
To: schalle@igd.fhg.de
Date: Tue, 14 Dec 93 11:20:47 GMT
Cc: waterbug@epims1.gsfc.nasa.gov, www-talk@www0.cern.ch
Mailer: Elm [revision: 66.36.1.1]
Content-Length: 2931
> I read your mail from the www-talk line from Thu, 9 Dec 93. I'm working on
> an HTML-editor for NeXTstep at the moment and I'm very interested in all  
> information about problems or solvings anybody has made in trying it, too.
> For me the most important problem is parsing an HTML-text. I'm going to use 
> sgmls as far as possible, because the libwww is a very ugly code and  
> incomplete, too.
> So, if you've got some experiences in writing an HTML-editor, please tell me.

My design for an HTML editor (it hasn't reach the coding stage yet ...)
presents the user with a toolbar including a style dropdown and some
accelerator buttons. The available styles depend on the position of the
text cursor. The Return (Enter) key ends the current paragraph.

The toolbar has the following buttons:

    End         -- Ends current element

    Header      -- start new header

    List        -- start new list
    Item        -- start new item

    Term        -- start DT element
    Def         -- start DD element

    Literal     -- start preformatted text

    Emphasis    -- select from full range of character emphasis
    Italic      -- start italic or set emphasis of highlighted text
    Bold        -- start bold or set emphasis of highlighted text
    Underline   -- start underline or set emphasis of highlighted tex

    Link        -- link highlighted text to specified URL

For the Header, List and Emphasis buttons, the style is selected in
neighboring status windows which drop down to allow users to change
the current selection. The current element name is shown in a larger
status window on the left (pops down to show nesting of current elements).

All elements can be terminated by clicking the end button, although in
some cases the context will cause this to be implied, e.g. clicking
Header while in a list will terminate all current list elements.

Nested lists may cause some confusion. Clicking the List button will
start a nested list and imply an initial list element. To start a new
list at the same level as the current one, you need to first click
End and then the List button.

You can always highlight text by dragging the mouse pointer over it.
The editor is smart enough to insert start/end tags when necessary,
including removing empty emphasis or adjacent end,start tags of the
same type.

When moving the cursor out of an unfinished element, the editor
will automatically terminate any open elements. An alternative is
to insert start and end tags at the same time. Users can choose to
see markup elements explicitly or not as their prefer. This isn't
an all or nothing choice - one could show just the tag names in
a suitable font/colour without the attributes.

It would be neat to be able to display several documents at once. This
would allow users to make links using a point and click mechanism.

I hope that gives you the general feel of my as yet half-baked ideas.

Dave Raggett