home *** CD-ROM | disk | FTP | other *** search
-
- ╔══════════════════════════════════════════════════════════════════════════╗
- ║ ║
- ║ ISoft D&M ║
- ║ POB. 5517 ║
- ║ Coralville IA 52241 ║
- ║ U.S.A ║
- ║ ║
- ╚══════════════════════════════════════════════════════════════════════════╝
-
- *******************************************************************************
- * HELPC Help Engine Technical specification and compiler user guide *
- * LAST UPDATE - May. 23, 1993. (c) 1992,93 - Loewy Ron. *
- *******************************************************************************
-
- *******************************************************************************
- * General Overview *
- *******************************************************************************
-
- The Help Engine database is a combination of text that is read by the user,
- and a Topic and Links database that allows the user to view the topics
- he is interested in, using hyper-text methods.
-
-
- Each help database is built of 4 file components :
-
- 1. Help Data File - this file contains the raw text data.
- 2. Topic Index File - a database table that contains the topic names, and
- the references to the topics in the Data File.
- 3. Links Index File - a database table that contains the list of links
- defined for each topic, and positional data.
- 4. Set Data File - a database configuration file that contains the
- names of the 3 components defined above, and some
- additional information.
-
- Version 1.x is the bare-bones version that includes only the basic
- operations needed from a hyper-text database, this version is implemented
- using the Paradox Engine V3.0 to manage the Topic and Link index tables.
-
- Version 2.x has a new field in the topic table - the title field, help
- databases that were compiled with V1.x will not be executed by version
- 2.x, they will have to be re-compiled!.
-
- Version 3.x fields have different length - the databases have to be
- re-compiled.
-
- Version 5.0+ has a new entry in the help set file, database have to be
- re-compiled, ot the value 128 should be added in the last line of the help
- set file, and the version number should be changed to 5.0.
-
- The format of the help database is released to the public domain, if
- you implement a database viewer on this database structure, I would be
- happy to receive a copy ..
-
- *******************************************************************************
- * Compiler Usage *
- *******************************************************************************
-
- The HELPC help compiler is a dos command line program that receives a
- help definition file (.HDF) and produce a help database.
-
- The helpC command line is :
-
- HELPC source.fil [/Htopic-table-name] [/Llink-table-name] [/Ddata-file-name]
- [/R-] [/ST-] [/CS+] [/EP+]
- [/W+] [/W30] [/W31] [TH+] [/QH+] [/TV+] [/PH+] [/XD+]
- [/PX+] [/MT+]
-
- The output of the compiler is a set data file called source.SET, that
- includes the names of the other help database components.
-
- Please Notice - if the /W+ /W30 or /W31 switch is defined, the compiler
- will generate a .HPJ and .RTF files that can be used with the Microsoft
- HC (v3.00b) or HC31 help compiler, and output a .HLP windows help file!.
-
- By default the help compiler produces a help cross reference report on the
- topics/links used in the database, if the /R- switch is set, no cross-ref
- report will be generated, and no database integrity indicators will be
- given.
-
-
- IMPORTANT - Scan the output cross reference report for links defined, that
- are not defined as topics!
-
- Notice - An additional switch is available that instructs the help compiler
- to indicate it's parse and code generation progress. Use the /EP+ switch to
- see that the helpC compiler is active. Please understand that the compile
- process can take a long time, on complex help databases. This switch does
- nothing more that ensure to you that the help compiler is alive.
-
- The /ST switch defines if the topic name defined in the .TOPIC command
- can include embeded spaces. By default this switch is set to /ST- (No
- embedded spaces).
-
- The /CS switch turns Topics and Links case sensativity to ON. Use this
- switch with care - Only if you must have a lower/mixed case index in THELP
- or POPHELP use this switch. Notice that help databases that compile fine
- with case sensativity set to off, might fail to do so in case sensativity
- on. By deafult this switch is set to off (-).
-
- The /XD switch generates code to the MDVXHELP help compiler, available
- free in the file DVXHLP10.ZIP on the internet. When this switch is given,
- a set of cover and section files is generated, as well as a response
- file that should be used to compile the help database.
-
- *******************************************************************************
- * Command Line *
- *******************************************************************************
-
- The compiler switches are defined on the command line. These switches can
- be placed before and after the source file name. The compiler will look for
- a file named HELPC.CFG in the current directory, and process it before any
- command line switches are processed.
-
- Switches on the command line will over-ride switches set before them, on the
- command line or in one of the response options file.
-
- Response option files can be specified by prefixing their name with a @ sign.
-
- Examples :
-
- If our HELPC.CFG file, in the current directory is :
-
- /W31
- /R-
-
- And we compile using HELPC HELPDEMO
-
- The helpdemo.hdf file will be compiled, with the target set to winhelp 3.1
- and no cross-reference report.
-
- Compile using HELPC HELPDEMO /r+
-
- Will create winhelp 3.1 sources, but a report will be generated.
-
- Compile using HELPC /w- HELPDEMO
-
- Will generate native format help database, no report is generated.
-
- If we have a file called MYSWITCH.CFG with the following lines :
-
- /TH+
- /ST-
- /CS+
-
- And we compile using HELPC @MYSWITCH.CFG HELPDEMO
-
- A THELP source, using Long Topic Names, with case sensativity will be
- generated, no cross reference report is generated. (HELPC.CFG contains /r-)
-
- *******************************************************************************
- * Help Definition Format *
- *******************************************************************************
-
- The help definition file format is as follows :
-
- remarks ...
- remarks ...
-
- .ENTRY topic-name
- [.TITLE optional title for topic]
- topic text and link reference ..
- topic text and link reference ..
- topic text and link reference ..
- topic text and link reference ..
- .END-ENTRY
-
- remarks ...
-
-
- .ENTRY topic2-name
- [.PARAGRAPH]
- topic 2 text and link reference ..
- topic 2 text and link reference ..
- topic 2 text and link reference ..
- [.END-PARAGRAPH]
- additional topic2 text ...
- .END-ENTRY
-
-
- As can be seen - lines between the .ENTRY and .END-ENTRY keywords are
- the lines processed by the help compiler, to create the help database,
- every other line is considered a remark, and is not parsed or evaluated by
- the help compiler.
-
- The topic text and link reference lines are simple text lines, with
- special link marks.
-
- A sample will provide the details :
-
- This is a text help line that includes one ~link~link-topic-name~ in it.
-
- This line will be displayed in the help engine program as :
-
- This is a text help line that includes one link in it.
-
- The word "link" will be in a different color then the rest of the line,
- to indicate that this is a link. If the user hi-lights the link, and
- presses Enter (or points the mouse cursor and clicks), the help engine will
- look for a topic called "link-topic-name", and display it.
-
- Browse the HELPDEMO.HDF file for a demo of a help database definition file.
-
- Notes :
-
- 1. The keywords .TOPIC and .END-TOPIC can be used instead of .ENTRY and
- .END-ENTRY respectivly.
-
- An equivelent pair of keywords are .TOP and .ENDTOP .
-
- 2. Keywords are NOT case sensitive. (.topic = .TOPIC = .eNTry)
-
- 3. The .TITLE keyword is optional. If no title is defined, the topic name
- is used as a title. (just like in v1.x).
-
- 4. If you want the ~ sign to appear in your help database, use ~~ in your
- help source file. (e.g. "This is a ~~" will be "This is a ~" in the final
- help database.).
-
- 5. The Optional .PARAGRAPH and .END-PARAGRAPH commands in the help topic text,
- specify the start and the end of a paragraph. This feature is currently
- supported only for winhelp sources. This feature is important if you
- want to create long paragraphs that will wrap correctly when a user resizes
- the help window. It is advized ALWAYS to use this feature for paragraphs,
- future versions of the Help Development Kit will allow greater formatting
- control over paragraphs using this mechanism.
-
- The .PAR and .ENDPAR keywords can be used instead of the .PARAGRAPH and
- .END-PARAGRAPH keywords.
-
- 6. When a .PARAGRAPH is issued, a .END-PARAGRAPH MUST be specified at the
- end of the paragraph. These commands must appear as the first words in
- a line. The text after the .PARAGRAPH command is NOT part of the text
- of the help topic.
-
- Additional commands include :
-
- .TEXTCOLOR, .LINKCOLOR and .LINKHIGH - VGA colors of text and links in normal
- and high (selected) states in the native help format.
-
- The syntax of these commands is :
-
- .TEXTCOLOR w
-
- or
-
- .LINKCOLOR x
-
- or
-
- .LINKHIGH y
-
- Where w, x and y are the color of the text/link, which is a combination of the
- color of the foreground with the color of the background multiplied by 16.
-
- The colors that can be used for both fore and background are :
-
- Black = 0
- Blue = 1
- Green = 2
- Cyan = 3
- Red = 4
- Magenta = 5
- Brown = 6
- LightGray = 7
-
- The colors that can be used only for the foreground are :
-
- DarkGray = 8
- LightBlue = 9
- LightGreen = 10
- LightCyan = 11
- LightRed = 12
- LightMagenta = 13
- Yellow = 14
- White = 15
-
- For example : to set the normal color of a link to light green on blue, use
-
- .LINKCOLOR 26
-
- where 26 = 10 + 16 * 1. (10 = light green, 1 = blue).
-
- Creating Multiple Source Projects :
-
- Use the .INCLUDE commands in the source of your .HDF file, to include an
- additional source file.
-
- For Example :
-
- .. some stuff
-
- .include 2ndfile.hdf
-
- .. additional stuff
-
- will process 2NDFILE.HDF in the middle of our source file.
-
- Please notice - .INCLUDE commands can be nested in your source file,
- it is however not recommended to nest them too deep, helpC does not
- close the input file when a .INCLUDEd file is processed, in order to
- minimize help generation time - there is however, a limit on the number
- of open files that can be used by a program - this is a limit set by dos.
-
- GUI Font based targets :
-
- The .FIXEDFONT command is used to define a non proportional font as the
- default font of the help database. Currently the only targets affected
- by this command are windows winHelp v3.x. If you find that your help
- databases are not aligned after they are converted to winHelp format, use
- this command and re-compile. This command has no effect on targets that are
- different from the targets mentioned before.
-
- The .PCFONT command is used to define a font that has the standard pc
- character set (Terminal - in windows). If you convert a text based
- database that uses the PC's special characters, use this command to
- set the default font. This command has no effect on targets that are
- different from the targets mentioned before.
-
-
- *******************************************************************************
- * Topic Index Format *
- *******************************************************************************
-
- The topic index table format is as follows :
-
- TOPIC - 40 charcters string key - this is the topic "name".
- FILENAME - 38 characters string field - includes the name of the
- help raw data file. (Notice - V1.0 ignores the value of this
- field, it is here for future expansion).
- START - longint (long) field that contains the offset from the data file
- start, to the start of the topics text data, in bytes.
- LEN - integer (int) field that contains the length (in bytes) of the
- text data of the topic.
- TITLE - 50 characters string key - the title of the topic.
-
- *******************************************************************************
- * Links Index Format *
- *******************************************************************************
-
- The links index table format is as follows :
-
- TOPIC - 40 characters string key - the name of the topic that
- has the link.
- SEQ - integer (int) key - contains the sequential number of
- the link in the topic. (This way you can assign the links
- order in the topic).
- LINK - 40 characters string key - the name of the link topic to
- display if the link is chosen.
- LINE - integer (int) field - the line (from the start of the topic)
- this link is displayed on.
- COL - integer (int) field - the column this link is displayed on.
- TXT - 60 characters string field - the text to display on the line.
-
- *******************************************************************************
- * Set-File-Format *
- *******************************************************************************
-
- The set file is a text file that contains one entry in each line, using
- the following format :
-
- topic-index-table name
- links-index-table name
- help-raw-data-file name
- number-of-topics
- length-of-file
- version-of-generating-compiler
- link-normal-color
- link-high-color
- text-normal-color
- help-database-engine
-
- The help-database-engine values available today are DEF=Paradox and
- MEM=memory Tables.
-
- *******************************************************************************
- * Implementation *
- *******************************************************************************
-
- Notice - The Paradox tables (Topic, Links) include one additional field
- (wtGeneration) for future expansion purpose only.
-
- *******************************************************************************
- * Distribution *
- *******************************************************************************
-
- To distribute a database of your creation, compile the help definition
- file, and include the HELPENG.EXE file with the .DB, .PX files, and the
- .HDT file created by the compiler.
-
- If you use the Native Mem Format, compile using the /MT+ switch, and
- distribute HE.EXE with the .SET, .HDT and .HDX files created.
-
- If you generated the Windows (/W30, /W31) help file, you can complile the
- .HPJ and .RTF generated file, and distribute the resulting .HLP .
-
- If you generate QH, THELP, POPHELP or TVHC use these packages compilers to
- compile you sources into native binary codes. (helpMake, HL, makeHelp and TVHC)
-
- To Generate Help databases for DESQview/X, use the MDVXHELP compiler
- that can be found on the internet in the file DVXHLP10.ZIP.
-
- For examples on these compiler's command lines please refer to the quick
- start section of HLPDK.DOC, or to your compiler's documentation.
-