help: Print online documentation
Package: system
Usage
help [template]
Parameters
- template
- A string listing the modules or packages for which help is desired. Each list element may be a simple name or a pattern matching template. Abbreviations are permitted. If template is omitted a long format menu will be printed for the current package, listing each task (or subpackage) and describing briefly what it is.
- file_template = no
- If this switch is set the template is interpreted as a filename matching template, and all help blocks found in the named files are output. The help database is not searched, hence manual pages can be printed or documents may be formatted without entering the files into a help database. In other words, "help file.hlp fi+" makes it possible to use help as a conventional text formatter.
- all = no
- Print help for all help modules matching template, rather than only the first one found.
- parameter = "all"
- If the value of this parameter is not "all", only the help text for the given parameter will be printed.
- section = "all"
- If the value of this parameter is not "all", only the help text for the given section (e.g. "usage", "description", "examples") will be printed.
- option = help
- The option parameter specifies the type of help desired, chosen from
the following:
- help
- Print the full help block for the named module.
- source
- Print the source code for the module (which often contains additional detailed comments).
- sysdoc
- Print the technical system documentation for the named module.
- directory
- Print a directory of all help blocks available for the named package.
- alldoc
- Print all help blocks in the file containing the help block for the named procedure (i.e., both the user and system documentation).
- files
- Print the names of all help files associated with the named modules or packages.
- summary
- Print only the titles and sizes of help blocks in referenced help files. The contents of the blocks are skipped. Titles are printed for all help blocks found in the file containing the help block for the named module.
- page = yes
- Pause after every page of output text. Turning this off for large documents speeds up output considerably.
- nlpp = 59
- The number of lines per page if output is redirected, e.g., to lprint.
- lmargin = 1
- Left margin on output.
- rmargin = 72
- Right margin on output.
- search = no
- If enabled the template is interpreted as a search string and the task is started with the search panel open with the results of the search. The file_template parameter is ignored with search turned on.
- home = ""
- The home page for the task. If not set and no template is specified the task will start with the online help in the main window, otherwise it may be set to a filename to be displayed when the task starts. This file may contain a text help block which will be formatted before display, or it may be a valid HTML file. See below for a description of the format of a homepage file which provides links to tasks.
- printer = "printer"
- Default hardcopy printer name. If the value of the parameter is the reserved string "printer", the actual device is the value of the CL environment variable printer.
- showtype = no
- Add task-type suffix in package menus?
- quickref = "uparm$quick.ref"
- Name of the quick-reference file used for searching. This file is created the first time the task is run in GUI mode or whenever it doesn't exist, or when any help database file has been updated.
- uifname = "lib$scr/help.gui"
- The user interface file. This file is what defines the look and behavior of all the graphical user interface elements. Experts may create variants of this file.
- helpdb = "helpdb"
- The filename of the help database to be searched. If the value of the parameter is the reserved string "helpdb", the actual filename is the value of the CL environment variable helpdb.
- device = "terminal"
- Output device if the standard output is not redirected. Allowable values
include:
- terminal
- If the value of the parameter is the reserved string "terminal", the actual device name is the value of the CL environment variable terminal.
- text
- Output the formatted help page as plain text.
- gui
- Invoke the GUI for browsing the help system. This option will only work if the stdgraph environment variable is set the xgterm, and the user is running IRAF from an XGterm window.
- html
- Output the formatted help page as HTML text.
- ps (or postscript)
- Output the formatted help page as postscript.
Basic usage
Despite the complex appearing hidden parameters, help is easy to use for simple tasks. Help is most commonly used to get help on the current package, and to get help on a program named in a CL menu. To get help on the current package one need only type help without any arguments. For example, if the current package is plot, the command and its output might appear as follows:
pl> help
contour - Make a contour plot of an image
graph - Graph one or more image sections or lists
pcol - Plot a column of an image
pcols - Plot the average of a range of image columns
prow - Plot a line (row) of an image
prows - Plot the average of a range of image lines
surface - Make a surface plot of an image
pl>
To get help on a module one supplies the module name as an argument,
pl> help graph
and the manual page for the plot.graph program will be printed on the terminal. To get a hardcopy of the manual page on the printer, the output may be redirected to the line printer, as follows:
pl> help graph | lprint
Description
The function of the help program is to perform a depth first search of the help database helpdb, printing help for all packages and modules matching the template. By default the standard IRAF help database is searched, but any other help database may be searched if desired. A help database is precompiled with the mkhelpdb program to speed up runtime searches for help modules. The standard IRAF help database contains the documentation and source for all CL programs and system and math library procedures installed in IRAF.
A help template is a string type parameter to the CL. The form of a template is a list of patterns delimited by commas, i.e.,
"pattern1, pattern2, ..., patternN"
The form of a pattern is
package_pattern.module_pattern
If the "." is omitted module_pattern is assumed. The standard pattern matching meta-characters, i.e., "*?[]", are permitted in patterns. Simple patterns are assumed to be abbreviations.
Gui operation
The GUI component of the task is a front-end to the IRAF help task which provides on-the-fly conversion of help documents to HTML for presentation in the GUI or formatted PostScript for hardcopy. The GUI is started by setting the device parameter to the special value gui, it is only available when using an XGterm window to start IRAF and assuming the stdgraph environment variable is set to xgterm.
Help pages may be loaded on the command line, through use of a file browser, or by navigating the help databases using a familiar CL package menu scheme. It also features a search capability similar to the references task and a complete history mechanism.
When invoked with no command line arguments the task starts as a browser and the user is presented with a GUI that has the toplevel CL package menu in the upper navigation window. The main display window below will contain any help page specified in the template parameter or loaded on the command line by specifying the template and file_template parameters. If the search parameter is enabled the template is taken to be a search phrase and the database is searched for tasks matching the keyword and the GUI will appear with the search panel mapped so the user can select the task help to view. When no template is given the main display window will start with the page specified by the home parameter, this can be a user-defined HTML file giving links to specific tasks (see below for details) or if home is empty the display will contain the online help for the task.
The first time the task is run, or whenever the help database is updated, a quick reference file (specified by the task quickref parameter) and package menu file will be created in the user's uparm directory to speed up help searching and subsequent startups of the task.
Browsing a help document
Once a help page is loaded the middle menubar above the display panel will change to activate widgets based on the position within the history list and options available for a particular page. The left-most group of buttons are the standard navigation buttons described above. The middle group of buttons contains the Sections and Parameters buttons which are used to browse within a help document. The Sections button is a menu listing all of the sections found within a help page, allowing the user to jump to a specific section rather than scrolling through the entire document. The Sections menu is also available using the middle mouse button from the main display area. The Parameters button is similarly a menu listing of all task parameter help sections found within the document. Both or either of these buttons will become insensitive when no section or parameter information is found in the document.
The right-most group of buttons represent the various help options available for each page. The default is to get the task help, however help pages may have an associated source file or sysdoc (e.g. if the task is a CL script there may be a pointer to the script source itself, or a package may have a general overview document listed as the system document). Once a help page is loaded these buttons will change become sensitive if that option is available, simply select the button to view the option. Selecting the Files button will bring up a panel listing all the files associated with a particular help topic. When a help topic is selected and an option is defined but the file does not exist, the options button will display a yellow diamond icon even if the button is insensitive, a green icon indicates the currently selected option. This feature may be disabled by selecting the "Show missing files" item from the main menubar Options menu.
Searching
Searching the help database is done by selecting the Search button from the main menubar to bring up the search panel. Users may then enter one or more keywords into the Topic field at the bottom of the panel and initiate the search with either a carriage return or hitting the Search button just beside it. The panel will then show a list of all tasks and packages which match the search phrase along with a one-line description of the task. Help pages may be displayed by selecting either the task or package link with the left mouse button, in both case the package menu list on the main help window will be updated to list the package contents allowing other tasks from that package to be selected in the normal way.
By default the exact phrase entered in the topic window will be used for the search. This can be relaxed by toggling the "Require exact match" button at the top of the panel. For example, to search for all tasks matching either the keyword "flat" or "field" turn off the exact match toggle and the search will return not only tasks matching "flat field" but also any task description containing only one of the words such as the VELVECT task which plots velocity fields.
Within a help document itself one can search for a string by selecting the Find button from the main menubar to bring up a panel used to enter the search string. When the text is entered the main display window will reposition itself and highlight the text found within the document. Searches can be repeated and will wrap around the document automatically, searches can be done either forward or backward through the text and may be case insensitive.
User_defined home pages
By default the help GUI will start with the online help page displayed in the main help window. The user can change this by setting the task home parameter to be a path to any valid file. This file may be plain text, a help document in LROFF format which will be converted to HTML for display, or a native HTML document.
HTML files may contain URLs of the form
<a href=[package.]task>url_text</a>
where url_text is the text to appear in the window and the URL itself consists of an optional package and task name delimited by a period. For example, to create a link to the splot task in a document one would use the URL
<a href=onedspec.splot>splot</a>
In this way users can create a homepage which serves as a "bookmark" file or index of shortcuts to the most commonly accessed help pages.
Loading files
Text files may be loaded on the command line when starting the task by specifying the filename and setting the file_template task parameter. The named file will be searched for a .help LROFF directing indicating it contains a help block that will be converted to HTML for display. If no help block is found the file will be displayed as-is, meaning existing HTML documents can be loaded and will be formatted correctly.
Once the task is running users may load a file by selecting the Open File... menu item from the main menubar File menu or the right-mouse-button menu from within the main display area. This will open a file browser allowing users to change directories by using the navigation buttons at the top of the panel, or selecting items from the leftmost directory listing. Selecting a file on the rightmost list will cause it to be loaded and automatically formatted if it contains a help block. The file list may be filtered to select only those files matching a particular template by changing the Filter box at the top of the panel. Filenames or directories may be entered directly using the Selection box at the bottom of the panel.
Saving files
Once a file has been loaded in the browser it may be saved to disk as either source (i.e. the original LROFF file if that was converted for the display, or whatever file is currently displayed regardless of format), text to save formatted plain text such as that produced by the standard help task, HTML to save the converted HTML used in the display, or PostScript to save formatted PostScript of the document such as that sent to the printer using the Print button. Not all options will be available depending on the format of the input text, unavailable options will be insensitive in the GUI.
The Save panel is opened by selecting the Save As... menu item from the main menubar File menu or the right-mouse-button menu from within the main display area. The file browser operates the same as when loading images, the only difference is that file selection simply defines the filename to be used and does not cause the save to occur automatically. Users can overwrite existing files by selecting the Options toggle at the bottom of the panel.
Hardcopy output and saving disk files.
Help pages may be output to any configured IRAF printer by selecting the main menubar Print button to bring up the print panel. Task help pages will be converted to formatted PostScript and may be sent to either a printer or saved to disk depending on the selection made in the printer panel. If the printer name is set to the special value "printer" then the device named by the CL printer environment variable will be used. When saving to disk files the default action is to save to a filename whose name is the task name plus a ".ps" extension. Either of these are changeable within the GUI as is the default page size to be used when generating the PostScript.
The main menubar File button can also be used to bring up the file browser in order to save the current document to disk. Help pages may be saved as either the origin LROFF source for the file, formatted text as you would get from the standard help task, HTML as is displayed in the GUI, or formatted PostScript. The choice of formats is dictated by the type of file being displayed (e.g. you cannot save PostScript of a program source).
Lroff directive extensions for html
To better support HTML links within documents and to other help pages two new directives have been added to the LROFF text formatter. These are .hr to specify a link (an HTML HREF directive) and .hn to specify a name (an HTML NAME directive). The syntax for these are as follows:
.hn <name>
.hr <link> <text>
where <name> is the destination name of an internal link, <link> is the URL of the link to be created, and <text> is the text to be displayed in the HTML. The URL syntax is either a '#' character followed by a destination name, a simple task name or package name, or a package.task pair giving a more precise task. For internal links the current document is repositioned so the name is at the top of the display, for task help links new help pages will be loaded in the browser.
These directives are ignored when converting the LROFF to either formatted plain text or PostScript.
Gui examples
1) Start help as a GUI browser:
cl> help dev=gui
2) Begin by searching for the phrase 'gauss', tasks and packages may be selected from the search panel which will appear when the task starts:
cl> help gauss dev=gui search+
3) Load an LROFF help page in the browser at startup
cl> help mytask.hlp dev=gui file+
Examples
1. Print the help text for the program delete in the package system (output will be directed to the terminal):
cl> help system.delete
or
cl> help delete
or
cl> help del
2. Print the help text on the line printer:
cl> help delete | lprint
3. Print help for the current package:
cl> help
4. Print the usage section of all modules in the package images:
cl> help images.* section=usage
5. Print a directory of all help blocks in the packages clpackage and clio (and any others whose names begin with the string "cl"):
cl> help cl* op=dir
6. Print a directory of each package in the database (useful for getting an overview of the contents of a help database):
cl> help * op=dir
7. Print the source for all of the string utilities in the system library package fmtio:
cl> help fmtio.str* op=source
8. Find all tasks that delete something:
cl> help * | match delete
9. Print the manual pages for the help and lprint tasks on the default printer device:
cl> help help,lprint | lpr
10. Capture the manual page for task hedit in a text file, in a form suitable for printing on any device.
cl> help hedit dev=text > hedit.txt
11. Print the manual page for task hedit as a Postscript file.
cl> help hedit dev=ps | lprint
Bugs
On some systems, typing the next command keystroke before the end-of-page prompt is printed may result in the character being echoed (messing up the output) and then ignored when raw mode is enabled for the prompt.
See also
references, phelp , mkhelpdb , hdbexamine , lroff , the online task help documents.