The BookWriter (also called the documentation browser)

Stephen Ma stephen_ma at mindlink.bc.ca
Wed Apr 15 04:12:58 UTC 1998


Patrick Logan <patrickl at servio.gemstone.com> writes:
>
> > (a) You can get help for any keyboard command at any time...
> >
> > (b) You can pull up documentation on any Lisp function or global...
> >
> > (c) There is a separate "info" browser for reading hypertext...
> 
> (d) Multiple argument command completion - e.g. typing "SH P" might
>     expand to "SHow Printers" without having to look at everything
>     matching "SHow *"
> 
> (e) Everything is mouse-sensitive - if you're looking for one of
>     these, show a pane of all of these, and click on the one you want
> 
> (f) Panes are manipulable - hide, show, resize panes - in the middle
>     of a sequence of operations.

Thanks, Patrick.  The documentation browser I'm working on is
basically (c), albeit with the look-and-feel of a Smalltalk browser.
Eventually, I hope to do something about (a), (b), and (e) by
inserting a few system-wide hot keys for popping up documentation
pages in a context-sensitive manner.

I don't like to talk (i.e. brag) too much about incomplete projects,
but I will say a few more words in hopes of getting some useful
feedback.  I am also not having fun with MVC, so any feedback will
come as a welcome relief from my struggles.

Remember as you read this that I'm describing a very preliminary
design; it may well change.

As I mentioned above, the documentation browser, which I am now
calling the Book Writer (Bw), looks and behaves like a standard
Smalltalk browser: you can visit and modify pages at whim.  A Book
Writer window has the usual strip of index panes for navigating
through the documentation tree; and underneath is a large text pane
that displays the current page and allows you to edit it.  There
will be hyperlinks throughout.

Where the Book Writer differs from a Smalltalk browser is that a page
needn't always be just boring text; it can be an arbitrary object, as
long as said object follows the Bw authoring and playback protocols,
and can be externalized by a slightly improved version of Reference-
Stream.  The objects are all based on Paragraph at the moment, but in
principle could be spreadsheets, Morphic worlds, HTML pages, VRML
rooms, or anything a fertile imagination can devise.  Any mixture of
page objects can be stored within a book, and any number of books can
be browsed.

A book is just an object which conforms to certain server protocols.
At the moment, a book is a local disk file, but it is not hard to
imagine books accessed through an Internet server, or books containing
Internet newsgroups, or books as front-ends to huge databases, or even
virtual books glued together from disparate media.  (The result of a
search query will be a virtual book containing pointers to pages
stored elsewhere.)

One book that I will probably be adding is the ordinary Smalltalk code
tree.

Another book I envision is a scrapbook for storing your random notes
and ideas.  It should always be instantly available via a system-wide
hot key, because the intent is to capture your wisps of thought before
they evaporate.  You'll organize the notes later -- or not, as you
wish.

I even have some ideas for active (animated) pages and sound; these
would exploit the tree structure of books not only for organizational
reasons but also for inheritance of properties from the root down to
the leaves.  But this can wait.

As you can see, the Book Writer is an almost infinitely expandable
framework for what might become a very immersive multimedia
environment.  But it's only a beginning, because the great effort of
writing authoring and playback tools has yet to start.

Now for the hard question: is anyone going to be using this?


------------------------------------
Stephen Ma <stephen_ma at mindlink.net>





More information about the Squeak-dev mailing list