Why Would You Want to Do This?

Recently there has been much discussion in the Linux news groups concerning whether Linux (or Unix for that matter) needs to win any of the desktop operating system market. Arguments aside, if Linux is to get some of the desktop market, then GUI-based help will be part of the formula. The Web is a current big-happening for software, so rather than settle for other GUI solutions, such as Xman or tkman, I decided to offer help via a web browser.

Quite a few Linux distributions are now providing documentation in HTML format that can be browsed on-line. Some of them now provide very good GUI interfaces to the underlying operating system, using commercial tools such as Caldera's Visix Desktop or free tools such as Tkdesk. For these distributions, it makes sense that help be available via a GUI-based tool.

For my users, I wanted all help, including the man pages, to be available via the same mechanism, i.e., their web browser. By using a web browser, the users are presented with a consistent single help interface.

I find that using a web browser to read man pages is most useful in a typical development situation. When I'm doing development, I like to have all forms of documentation on hand. I find a web browser-based system to be very good for browsing the man pages of subroutine libraries and system calls.

vh-man2html also provides an alternative to sharing man pages by using NFS exports, that is useful for supplying documentation to users who can't access your local file systems such as remote users or prospective customers.

On systems that store man pages in source form, formatting the man pages from source into HTML can be faster than waiting for them to be formatted by man (which passes them through geqn, gtbl and groff). On my system (486DX2-66 16MB), if a web browser is already running, the difference is quite noticeable.

Just how far HTML and the Web will succeed in becoming the “Universal” GUI, is open for conjecture. However, more administrative and user interface functions could easily be integrated into a web-based interface. For example, generate a Python interface to the Linux system calls, process file system and config files; write Python CGI scripts to make this info available to a web browser front end; and wind up with a super cool GUI system interface.