Next: Anchor Text
Up: Other File Formats
Previous: Label Flags
Contents
Index
Help Database Files
The help information is obtained from database files suffixed with
.hlp found along the help search path. These directories may
also contain other files referenced in the help text, such as image
files. In Xic, the help search path can be set in the environment
with the variable XIC_HLP_PATH, and/or may be set in the
technology file (the technology file overrides the environment).
These files have a simple format allowing users to create and modify
them. Each help entry is associated with one or more keywords, which
should be unique in the database. A warning message will be issued on
stderr if a name clash is detected. The files are ASCII text,
either in DOS or Unix format. Fields are separated by keywords which
begin with ``!!''. Although the help system provides rich-text
presentation from HTML formatting, entries can be in plain text. A
sample plain-text entry has the form:
!!KEYWORD
excmd
!!TITLE
Example Command
!!TEXT
This command exists only in this example. Note that the
!!keywords only have effect if they start in the first
column. The blank line below is optional.
!!SUBTOPICS
akeyword
anotherkeyword
!!SEEALSO
yetanotherkeyword
In this example, the keyword ``excmd'' is used to access the
topic, and should be unique among the database entries accessed by the
application. The text which appears in the topic (following !!TEXT) is shown indented, which is recommended for clarity, but is
not required.
In .hlp files, outside of !!TEXT and !!HTML blocks
(described below), lines with `*' or `#' in the first
column are ignored, as they are assumed to be comments. Lines that
begin in the first column with ``!!(space)'' (space character
following two exclamation points) anywhere are also ignored, as
comments. Blank lines outside of the !!TEXT and !!HTML
fields are ignored. Leading white space is stripped from all lines
read, which can be a problem for maintaining indentation in formatted
plain text. To add a space which will not be stripped, one can use
the HTML escape `` ''.
The following `!!' keywords can appear in .hlp files.
These are recognized only in upper case, and must start in the first
text column.
- !!(space) anything
A line beginning with two exclamation points followed by a space
character is ignored.
- !!KEYWORD keyword-list
This keyword signals the start of a new topic. The keyword-list
consists of one or more tokens, each of which must be unique among all
topics in the database. The words are used to identify the topic, and
if more than one is listed, the additional words are equivalent
aliases. The keyword-list may follow !!KEYWORD on the
same line, or may be listed in the following line, in which case !!KEYWORD should appear alone on the line.
Punctuation is allowed in keywords, only white space characters can
not be used. The `#' character has special meaning and should
not be part of a keyword name. Also, character sequences that could
be confused with a URL or directory path should be avoided. The
latter basically prohibits the `/' character (and also
`
\
' under Windows) from being included in keywords. There
are special names starting with `$' which are expanded to
application-specific internal variables, as described below. To avoid
any possibility of a clash, it is probably best to avoid `$' in
general keywords.
It is often useful to include a meaningful prefix in keywords to
ensure uniqueness, for example in Xic, all commands have keywords
prefixed with ``xic:''.
- !!TITLE string
The !!TITLE specifies the title of the topic, and should follow
the !!KEYWORD specification. The title text can appear on the
same line following !!TITLE, or on the next line, in which case
!!TITLE should appear alone in the line. The title is printed
at the top of the topic display, and is used in menus of topics.
- !!TEXT
This line signals the beginning of the topic text, which is expected
to be plain text. The keyword is mutually exclusive with the !!HTML keyword. The lines following !!TEXT up to the next !!KEYWORD, !!SEEALSO, or !!SUBTOPICS line or end of file
are read into the display window. The plain text is converted to HTML
before being sent to the display in the following manner:
- The title text is enclosed in <H1>...</H1>.
- Each line of text has a <BR> appended.
- The subtopics and see-alsos are preceded with added
<H3>Subtopics</H3> and <H3>References</H3> lines.
- The subtopics and see-alsos are converted to links of the form
<A HREF="keyword">title</A> where the keyword is the database keyword, and the title is the title
text for the entry.
Note that the text area can contain HTML tags for various things, such
as images. Also note that text formatting is taken from the help file
(the <BR> breaks lines), and not reformatted at display time.
The !!HTML line should be used rather than !!TEXT if the
text requires full HTML formatting.
- !!HTML
This line signals the beginning of the topic text, which is expected
to be HTML-formatted. The keyword is mutually exclusive with the !!TEXT keyword. The parser understands all of the standard HTML 3.2
syntax, and a few 4.0 extensions. References are to keywords found in
the database and general URLs. Image (.gif, etc.) files can be
referenced, and are expected to be found along with the .hlp
files.
- !!IFDEF word
This line can appear in the block of text following !!TEXT or
!!HTML. In conjunction with the !!ELSE and !!ENDIF
directives, it allows for the conditional inclusion of blocks of text
in the topic. The word is one of the special words defined by
the application. Presently, the following words are defined:
- Xic
Defined when running the Xic program with any feature set.
- XicII
Defined when running the Xic program with the XicII feature set.
- Xiv
Defined when running the Xic program with the Xiv feature set.
- WRspice
Defined when running the WRspice program.
- Windows
Defined when running under Microsoft Windows.
If word is defined, the text up to the next !!ELSE or !!ENDIF will be included in the topic, and any text following an !!ELSE up to !!ENDIF is discarded. If word is not
defined, the text up to the next !!ELSE or !!ENDIF is
discarded, and any text following an !!ELSE is included. The
constructs can be nested. A word that is not recognized or absent is
``not defined''. Every !!IFDEF should have a corresponding !!ENDIF. The !!ELSE is optional. The !!SEEALSO and !!SUBTOPICS lines can appear within the blocks.
Example:
!!HTML
Here is some text.
!!IFDEF Xic
You are reading this in Xic.
!!ELSE
!!IFDEF WRspice
You are reading this in WRspice.
!!ELSE
You are not reading this in Xic or WRspice.
!!ENDIF
!!ENDIF
- !!IFNDEF word
This keyword can appear in the block of text following !!TEXT or
!!HTML. It is similar to !!IFDEF but has the reverse
logic.
- !!ELSE
This keyword can follow !!IFDEF or !!IFNDEF and defines
the start of a block of text to include in the topic if the condition
is not satisfied.
- !!ENDIF
This keyword terminates the text blocks to be conditionally included
in the topic, using !!IFDEF or !!IFNDEF.
- !!INCLUDE filename
The keyword may appear in the text following !!TEXT or !!HTML. When encountered in the text to be included in the topic,
the text of filename, which is searched for in the help search
path if not an absolute pathname, is added to the displayed text of
the current topic. There is no modification of the text from filename.
If the filename is a relative path to a subdirectory of one of the
directories of a directory in the help search path, the subdirectory
is added to the search list. Thus, an HTML document and associated
gif files can be placed in a separate subdirectory in the help tree.
The HTML document can be referenced from the main help files with a
!!INCLUDE directive, and there is no need to explicitly change
the help search path.
- !!REDIRECT keyword target
This will define keyword as an alias for target. The target can be any input token recognizable by the help system,
including URLs, named anchors, and local files. For example:
!!REDIRECT nyt http://www.nytimes.com
giving ``!help nyt'' in Xic or ``help nyt'' in
WRspice will bring up a help window containing the New York Times
web page.
- !!SEEALSO keyword-list
This keyword, if used, is expected to be found at the end of the topic
text. The keyword-list consists of a list of keywords that are
expected to be defined by !!KEYWORD lines elsewhere in the
database. A menu of these items is displayed at the bottom of the
topic text, under the heading ``References''. The keywords specified
after !!SEEALSO can appear on the same line separated with
space, or on multiple lines that follow. If a keyword in the list is
not found in the database, it is silently ignored. The keywords
listed must be given in a !!KEYWORD line, and not contain
named anchor references (violating entries are silently ignored).
- !!SUBTOPICS keyword-list
This keyword, if used, is expected to be found at the end of the topic
text. This produces a menu of the topics found in the keyword-list very similar to !!SEEALSO, however under the
heading ``Subtopics''. This can be used in addition to !!SEEALSO, the order is unimportant.
The following definitions supply header and footer text which will be
applied to each page. These should be defined at most once each in
the database.
- !!HEADER
The text that follows, up until the next !!KEYWORD or !!FOOTER, is saved for inclusion in each page composed from the !!HTML lines for database keywords. The header is inserted at the
top of the page. There can be only one header defined, and if more
than one are found in the help files, the first one read will be used.
In the header text, the literal token %TITLE% is replaced with
the !!TITLE text of the current topic when displayed.
- !!FOOTER
The text that follows, up until the next !!KEYWORD or !!HEADER, is saved for inclusion in each page composed from the !!HTML lines for database keywords. The footer is inserted at the
bottom of the page. There can be only one footer defined, and if more
than one are found in the help files, the first one read will be used.
The following keywords inplement a means to mark topics that are from
imported or supplemental files. For example, in Xic, many of the
WRspice help files are included for reference and to satisfy links
in the Xic help files. There is a need to mark these pages as
applying to the WRspice program, otherwise the information could be
confusing. In the Xic help system, the pages from WRspice have
a banner just below the header identifying the topic as applying to
WRspice.
- !!MAINTAG tagname
This keyword should appear once in the database, probably defined
along with the header/footer. The tagname is an arbitrary short
keyword which identifies the database, such as ``Xic''.
- !!TAG tagname
This should be given at the top of each help file in the database.
Those files that are part if the main database should have the same
tagname as was given to !!MAINTAG. Files containing
supplemental information should have some other tagname, e.g.,
``WRspice''
- !!TAGTEXT tagname
This should be given once only in the database, probably where the
!!MAINTAG is defined. It is followed by HTML text, in the
manner of the header and footer. This text will be inserted just
below the header in topic pages that come from files with tags that
differ from the main tag. For this to happen, both the tag and main
tag must have been defined. In the text, the token ``%TAG%''
will be replaced with the actual tag that applies to the topic.
Subsections
Next: Anchor Text
Up: Other File Formats
Previous: Label Flags
Contents
Index
Stephen R. Whiteley
2024-09-29