10.1 Understanding how OmniHelp works
OmniHelp is an open-source, cross-platform Help system that displays help topics in a way similar to WebHelp or HTML Help. The OmniHelp viewer consists of a set of HTML (or XHTML) and JavaScript files that present the Help content in a tri-pane format, using any browser that meets the following criteria:
• complies with minimum Web standards
OmniHelp output generated from a FrameMaker document consists of the following:
• a set of HTML (or XHTML) topic files
• a set of JavaScript infrastructure files for contents, index, search, related links, and context-sensitive Help.
The display is controlled by a small set (about 40K) of JavaScript files and CSS files.
Software developers are invited to contribute to the further development of OmniHelp. The OmniHelp project is officially hosted on SourceForge:
https://sourceforge.net/projects/omnihelp/
The OmniHelp Design Report describes how OmniHelp was designed and built. You can read it here:
Because OmniHelp is not a compiled Help system, you have access to the source code for the viewer, so you can alter its behavior and appearance beyond just the changes you can make by setting Mif2Go configuration parameters. However, to undertake major modifications, you must be conversant in JavaScript, CSS, and HTML 4.
Modifying OmniHelp JavaScript, CSS, or HTML files in the viewer directory can lead to a maintenance problem: you have to check your modified files against the corresponding files in each new release, and merge the changes, which might not be trivial. If you change any ohct*.css, oh*.js, or oh*.htm files, use a utility such as WinDiff (free from Microsoft) to compare your files to the updated files. Check each release for new variables that you can set in the configuration file, to control features that formerly required edits to the JavaScript files; see § New information. Take advantage of any new settings to minimize JavaScript changes.
OmniHelp is licensed under the LGPL (Library/Lesser General Public License), which permits its use in commercial products (without requiring those products to also be Open Source) as long as OmniHelp source code, including all modifications, is made available to users:
http://www.gnu.org/copyleft/lesser.html
> 10 Generating OmniHelp > 10.1 Understanding how OmniHelp works