Bbs2Web Version 1.11

BBS2WEB

Maximus BBS Html Web Page Generator

Written by Colin Wheat
Released July 4 1997, Document Version 1.02

(C) Copyright 1996-1997 by CodeLand, All Rights Reserved

http://www.ami.com.au/codeland/ , http://bbs.ami.com.au/
ftp://bbs.ami.com.au , Telnet/VMP://bbs.ami.com.au
bbs2web@ami.com.au 3:690/613.0@fidonet

BBS2WEB is COMMERCIAL SHAREWARE software. Please register if you intend to continue using BBS2WEB. Please follow the registration process detailed in the REGISTER.B2W file.


TABLE OF CONTENTS

SECTION 1 LICENSE AGREEMENT
1.1 Distribution
1.2 Copying
1.3 Modification
1.4 Program Status
1.5 Disclaimer
SECTION 2 ACKNOWLEDGMENTS AND CREDITS
2.1 Acknowledgments and Credits
2.2 Registration List
SECTION 3 INTRODUCTION
3.1 Introduction
3.2 Requirements
3.3 Features
3.4 Distribution Notice
3.5 Limitations Prior to Registration
SECTION 4 OPERATION
4.1 Introduction
4.2 Installation
4.3 The Bbs2Web Compile Engine
4.4 The MaxFind CGI Engine
4.5 File Serving
4.6 Templates
4.7 Template Tokens
4.8 Custom Template Tokens
4.9 Character Mapping
SECTION 5 CONFIGURATION
5.1 Configuration Include Files
5.2 Bbs2Web Command Line
5.3 The Control File
5.4 Control File Verbs
SECTION 6 MISCELLANEOUS
6.1 Problems and Bug Reports
6.2 Latest Version
6.3 About BBS2WEB

SECTION 1 - LICENSE AGREEMENT

Goto Table of Contents
1.1 DISTRIBUTION
YOU MAY COPY AND DISTRIBUTE VERBATIM COPIES OF BBS2WEB EXECUTABLE CODE AS YOU RECEIVE IT, IN ANY MEDIUM, PROVIDED THAT YOU CONSPICUOUSLY AND APPROPRIATELY PUBLISH ON EACH COPY A VALID COPYRIGHT NOTICE; KEEP INTACT THE NOTICES ON ALL FILES THAT REFER TO THIS LICENSE AGREEMENT AND TO THE ABSENCE OF ANY WARRANTY; PROVIDE UNMODIFIED COPIES OF THE DOCUMENTATION AS PROVIDED WITH THE PROGRAM; AND GIVE ANY OTHER RECIPIENTS OF BBS2WEB A COPY OF THIS LICENSE AGREEMENT ALONG WITH THE PROGRAM. YOU MAY CHARGE A DISTRIBUTION FEE FOR THE PHYSICAL ACT OF TRANSFERRING A COPY, BUT NO MORE THAN IS NECESSARY TO RECOVER YOUR ACTUAL COSTS INCURRED IN THE TRANSFER. UNDER NO CIRCUMSTANCES IS BBS2WEB TO BE DISTRIBUTED IN SUCH A WAY AS TO BE CONSTRUED AS "VALUE ADDED" IN A SALES TRANSACTION, SUCH AS, BUT NOT LIMITED TO, SOFTWARE BUNDLED WITH A MODEM OR OTHER HARDWARE PRODUCT.
1.2 COPYING
YOU MAY NOT COPY, SUBLICENSE, DISTRIBUTE OR TRANSFER BBS2WEB EXCEPT AS EXPRESSLY PROVIDED UNDER THIS LICENSE AGREEMENT. ANY ATTEMPT OTHERWISE TO COPY, SUBLICENSE, DISTRIBUTE OR TRANSFER BBS2WEB IS VOID AND YOUR RIGHTS TO USE THE PROGRAM UNDER THIS LICENSE AGREEMENT SHALL BE TERMINATED.
1.3 MODIFICATION
WITH THE EXCEPTION OF ARCHIVING METHOD, BBS2WEB SHOULD NOT BE DISTRIBUTED IN ANY MODIFIED FORM. THE COMPLETE ARCHIVE SHOULD BE DISTRIBUTED CONTAINING THE ORIGINAL FILES. IT MAY BE RE-PACKAGED USING A DIFFERENT ARCHIVAL METHOD AS LONG AS THE CONTENTS OF THE ARCHIVE ARE THE SAME AS THAT OF THE DISTRIBUTION KIT. ADDITIONAL FILES MAY NOT BE ADDED TO THE ARCHIVE.
1.4 PROGRAM STATUS
THIS PROGRAM IS COMMERCIAL SOFTWARE, USING A SHAREWARE DISTRIBUTION METHOD. USERS ARE REQUIRED TO REGISTER THE PROGRAM AFTER A SUITABLE EVALUATION PERIOD. A REGISTRATION FORM IS SUPPLIED WITH THE PACKAGE.
1.5 DISCLAIMER
USE THIS PROGRAM AT YOUR OWN RISK. NO WARRANTY IS STATED OR IMPLIED. THE AUTHOR SHALL NOT BE HELD RESPONSIBLE FOR ANY DAMAGES RESULTING FROM IT'S USE DIRECTLY OR INDIRECTLY.

SECTION 2 - ACKNOWLEDGMENTS AND CREDITS

Goto Table of Contents

2.1 Acknowledgments and Credits

We would like to thank the many people who have offered encouragement, suggestions, and bug-reports during development since the early V1.07 release. Special thanks go to Bob Juge for extensive debugging including Web server environment variable usage, to Jim Whitelaw who first suggested the Template output feature, to David Sparrman for feedback concerning code page character mapping, and to David Herselman for helpful feedback including hints regarding URL character encoding.

2.2 Registration List

We'd like to thank the following people for registering BBS2WEB V1.XX.

David Herselman, Johannesburg, South Africa
Alwyn Smith, QLD Australia


SECTION 3 - INTRODUCTION

Goto Table of Contents

3.1 Introduction

Bbs2Web is an OS/2 utility package for the creation of a HTML web page representation of a Maximus system file base. Bbs2Web supports Maximus file base Groups, features high speed access with usage of the Maximus file database files, and fully supports Maximus V3.XX.

Notable features include CGI based web page keyword searching and new files find by date, full template driven output allowing unsurpassed configuration and control of the HTML presentation, source character mapping support, and custom B-TREE index files allowing instant CGI search and find response times. Bbs2Web is supplied with six example template driven output schemes. In short, Bbs2Web places your files on the net with elegance, and with style.

3.2 Requirements

  1. An active Maximus V3.XX BBS file base.
  2. OS/2 V1.3 or above, WARP V4 (Merlin) recommended.
  3. An HPFS partition for long filename support. Bbs2Web supports the nested Maximus V3.XX file area groups. For nested area output, files with long file names will be generated.
  4. A configured TCP/IP stack. For OS/2 versions prior to WARP Connect, the additional TCP/IP V2 package would be required.
  5. An OS/2 HTTP (WEB) server. IBM Internet Connection Server (ICS) is highly recommended.
  6. A suitable server for file serving. Files can be served by the HTTP server, but you may prefer to install an FTP server for the purpose.

3.3 Features

3.4 Distribution Notice

The distribution archive contents ( BBS2WEB.LZH ) are listed below:

FILE_ID.DIZ Archive contents description
BBS2WEB.DOC Package documentation
BBS2WEB.HTM Package documentation in HTML format
ICONCOD.GIF CodeLand icon image
REGISTER.B2W BMT Micro Australasia registration form
BBS2WEB.EXE The Web page compiler
MAXFIND.EXE CGI search and find engine
BBS2WEB.INI Main configuration file
RANDLINK.EXE BONUS Random link generator
RANDLINK.DOC RandLink Documentation
SCHEME1.INI Sample output scheme 1 - 107
B2W_B1.GIF Page background image
B2W_M1.GIF Page masthead image
SCHEME2.INI Sample output scheme 2 - 110
B2W_B2.GIF Page background image
B2W_M2.GIF Page masthead image
SCHEME3.INI Sample output scheme 3 - BLUES
B2W_B3.GIF Page background image
B2W_M3.JPG Page masthead image
SCHEME4.INI Sample output scheme 4 - FOREST
B2W_B4.GIF Page background image
B2W_M4.JPG Page masthead image
SCHEME5.INI Sample output scheme 5 - CAMO
B2W_B5.GIF Page background image
SCHEME6.INI Sample output scheme 6 - BURGUNDY
B2W_B6.GIF Page background image

3.5 Limitations Prior to Registration

The distributed SHAREWARE release is identical in all respects to registered versions. No new version of the code, package, or executable is required. The registration process is simply a matter of adding three lines to the BBS2WEB.INI file. When the product is registered, unregistered limitations are removed.

For this release, the unregistered limitations consist of 1) an unregistered warning at program startup, and 2) an UNREGISTERED label within the generated output HTML files.


SECTION 4 - OPERATION

Goto Table of Contents

4.1 Introduction

Bbs2Web.Exe generates (compiles) a full set of static Web pages representing a Maximus V3.xx file base. The Bbs2Web package also includes a dynamic CGI based keyword search and new files find engine, MaxFind.Exe. Generated pages can include a keyword search entry form and a new files find entry form. Client (Browser) usage of the forms will cause MaxFind.Exe to supply a dynamic HTML response page. RandLink.Exe is an optional stand-alone utility, using SSI and CGI technology, which can generate random links within the HTML output pages. Consult the RandLink.Doc file for RandLink usage and documentation.

4.2 Installation

  1. The release archive (BBS2WEB.LZH) should be unpacked to a suitable Bbs2Web sub-directory. E.g. C:\BBS2WEB.
  2. MaxFind.Exe (and optionally RandLink.Exe) should be copied to your web server's cgi-bin sub-directory. E.g. C:\WWW\CGI-BIN.
  3. *.GIF and *.JPG should be copied to your designated Bbs2Web output directory. E.g. C:\WWW\HTML\BBS.
  4. Set the BBS2WEB_INI environment variable in CONFIG.SYS, and reboot. BBS2WEB_INI indicates the full path and name of the Bbs2Web.Ini file. E.g. SET BBS2WEB_INI=C:\BBS2WEB\BBS2WEB.INI.
  5. Configure Bbs2Web.Ini and Scheme*.Ini to suit your system and requirements.
  6. Configure your Http and Ftp servers appropriately.

4.3 The Bbs2Web Compile Engine

Bbs2Web.Exe builds a set of static HTML files in the configuration file HtmlPath directory. It uses a similar (but NOT identical) scheme to MaxFind.Exe for finding the configuration file. The process is detailed below:

  1. Attempt to access the system BBS2WEB_INI environment variable. If found, attempt to read the referenced INI file. If not successful, continue.
  2. Attempt to read a file called BBS2WEB.PTR in the executable's directory. Technically the path used for this file is the literal Bbs2Web.Exe path at time of execution. If successful, get the Bbs2Web.Ini path from within the file. The data format is as follows: "BBS2WEB_INI=C:\BBS2WEB\BBS2WEB.INI". If found, attempt to read the referenced INI file. If not successful, continue.
  3. Attempt to read an INI file named BBS2WEB.INI from the current directory of the current drive. If not successful, exit with error.

Note that the -I Bbs2Web command line parameter overrides ALL of the above methods.

4.4 The MaxFind CGI Engine

The search engine MaxFind is an HTML CGI server utility. It should be moved to your Web server cgi-bin directory. Standard CGI usage uses program command line and stdout for remote communication, so configuration information is usually passed via environment variables. In fact the Web server also passes the user's search request data to MaxFind via environment variables. MaxFind uses methods and code similar to Bbs2Web to access the Maximus file bases. It's able to operate solely on the information contained within Bbs2Web.Ini. The one configuration requirement then, is to pass it the full path and name of the Bbs2Web.Ini configuration file. This is accomplished by the BBS2WEB_INI environment variable.

e.g. SET BBS2WEB_INI=C:\BBS2WEB\BBS2WEB.INI

This must be placed in the OS/2 system CONFIG.SYS file.

Some HTTP servers appear unable to offer CGI utilities the full system environment variable set, perhaps for security purposes. In that circumstance, MaxFind will not have access to the BBS2WEB_INI variable. MaxFind therefore supports multiple methods of finding the INI file. This is detailed below:

  1. Attempt to access the system BBS2WEB_INI environment variable. If found, attempt to read the referenced INI file. If not successful, continue.
  2. Attempt to read a file called BBS2WEB.PTR in the cgi-bin directory. Technically the path used for this file is the literal MaxFind.Exe path at time of execution. If successful, get the Bbs2Web.Ini path from within the file. The data format is as follows: "BBS2WEB_INI=C:\BBS2WEB\BBS2WEB.INI". If found, attempt to read the referenced INI file. If not successful, continue.
  3. Attempt to read an INI file named BBS2WEB.INI from the root directory of the Web server's default drive. If not successful, exit with error.

MaxFind.Exe is a CGI utility. As such it operates via command line options fed to it by the HTTP server. It's difficult to run it manually at the command prompt for testing purposes, as URL character encoding is a requirement. For reference, here's a sample command line run from within a custom CMD file:

 @Echo off
 SET REQUEST_METHOD=GET
 SET QUERY_STRING=SearchStr%%3Dued%%26DateButton%%3DMonth
 %%26DateStr%%3D1997-04-09%%26MultiPage%%3D0
 maxfind.exe

4.5 File Serving

Setting up the file server and arranging for Bbs2Web to correctly build working file links in the output pages, is probably the largest part of the Bbs2Web installation task. We've attempted to clearly explain the control file verbs usage, with the verbs FileLinkPath and MapDrive both directly affecting file serving. Rather than attempting an in depth discussion, we'll now provide an example of the working setup here, the environment in which and for which Bbs2Web was written.

Bbs2Web finds the Maximus files by firstly reading the Farea.Dat file in the Maximus directory. From this file it's able to build a list of downloadable file areas.

Here's one of the Maximus file areas on the system here, as represented in Filearea.Ctl. Farea.Dat is compiled from Filearea.Ctl, subject to specific Maximus configuration.

 FILEAREA LOCAL
         ACS             Disgrace
         DESC            System Utilities & Information
         DOWNLOAD        H:\General\Newuser
         UPLOAD          H:\Upload
         % FILELIST        <file>
         % OVERRIDE        FILE File_Download Normal
         % TYPE            <Slow> <Staged> <NoNew> <CD>
         % MENUNAME        <OldName> <NewName>
 END FILEAREA

The relevant entry is the file download path, "H:\General\Newuser".

Having build a list of downloadable file areas, Bbs2Web accesses the data files (FILES.IDX/DAT/DMP) within each directory, to compile and generate the output Web pages. A Maximus V3.xx system uses the FILES.BBS text file as the master for the directory listing, so you'll want to run the file base compiler (fbp) -before- Bbs2Web is run, usually during nightly maintenance. We're ignoring CDROM areas in this simple explanation, for those areas the data files are actually found on the FILELIST path.

The problems begin to appear though when attempting to build a working download file link for each listed file. From the example above, we have a Maximus supplied path of "H:\General\Newuser". On the system here, we use the Toronto File System (TVFS) to build an ftp downloadable single drive representation of the complete BBS file base, itself spread across multiple server drives. The corresponding TVFS path is; "T:\pub\general\newuser". The ftp server is setup with a home directory of "T:\", so that a base ftp login shows the "\pub" directory available from root.

For any one file from our example directory, say "LIBRARY.LZH", using a Bbs2Web FileLinkPath of "ftp://bbs.ami.com.au/pub/", and a file area path from Maximus of "/General/Newuser" (Bbs2Web converts '\' characters to '/' for the purpose of link creation), the resulting Web page listed file link becomes "ftp://bbs.ami.com.au/pub/general/newuser/LIBRARY.LZH".

The MapDrive verb becomes useful (essential) for Maximus file paths that are mapped back to the one virtual drive for server usages such as ftp. As a short example; a CDROM file on the BBS has a path of "J:\Bbs\MAX300C.ZIP". For ftp server usage, that path is mapped by TVFS to "T:\pub\hobbes1\bbs\MAX300C.ZIP". With a MapDrive setting of "MapDrive=j: /hobbes1/" and by converting the '\' characters to '/' characters, the file path becomes "/hobbes1/Bbs/MAX300C.ZIP". With the addition of the FileLinkPath setting, the full file link is "ftp://bbs.ami.com.au/pub/hobbes1/Bbs/MAX300C.ZIP".

4.6 Templates

Bbw2Web (and MaxFind) uses output "templates" for all HTML output. By modifying the configuration file templates, it's possible to generate an unlimited variety of HTML presentations. The possibilities should include features such as user choice from multiple presentations, and full JAVA enabled output.

A BBS2WEB output page consists of three parts. A header, the body, and a footer. The header and footer are simply listed once at the top and bottom of the page respectively. The body is slightly different in that it is a repeat of the body output template (*Itm verbs) for each of the items relevant to the page. E.g. On a file listing page, the body template is listed in full for each of the files in the file area.

Bbs2Web generates four type of output pages:

  1. File Area Listings. These can be nested to support Maximus file groups (assuming OS long file name support). The master index file as detailed by the configuration file HtmlFile verb, is the head of the tree of these nested area listing pages.
  2. File Listings. These list each individual file area, supporting multi-page output with 200 files per page.
  3. Optional Bbs2Web Sites Page. A list of global internet sites running Bbs2Web. The default is a link to the author's master site listing page.
  4. Search and Find CGI Response Pages. These are the response pages returned by MaxFind for Search and Find requests. Multi-page output is supported with 200 files per page.

4.7 Template Tokens

During generation of the output pages, Bbs2Web uses template "tokens" to insert the BBS file data in the HTML output templates. Each token in the (configuration file declared) output template line, is replaced with the corresponding BBS listing data. E.g. for the template line "TemplateAreaHdr=<HEAD><TITLE>%PAGENAME%</TITLE>", the %PAGENAME% token would be replaced with the corresponding name for the page. The resulting output might be similar to: "<HEAD><TITLE>OS2 Files</TITLE>".

All token names are delimited with a '%' character. E.g. %TOKENNAME%. Tokens beginning with "IF" are special action tokens. Processing of the line following the token is dependant on the tested value. If not TRUE, processing is suspended until the occurrence of an %ENDIF% token, or until the end of the line.

Following is the internal token list. Note that some tokens can be used on multiple page types, the categories below are approximate. E.g. Find pages can use many of the File tokens.

 --GLOBAL--
 %PAGEIMAGEBKGD%        %PAGEIMAGEMAST%         %PAGETITLEMAST%
 %RETURNLINKTITLE%      %RETURNLINKPATH%        %SITESLINKPATH%
 %SITESMAILLINK%        %PAGENAME%              %PAGEDESC%
 %COPYRIGHT%            %SEARCHFORM%            %METAFORM%
 %SYSDATE%              %SYSTIME%               %IFSEARCH%
 %IFNOTSEARCH%          %IFFIND%                %IFNOTFIND%
 %IFSITES%              %IFNOTSITES%            %IFPAGEIMAGEBKGD%
 %IFNOTPAGEIMAGEBKGD%   %IFPAGEIMAGEMAST%       %IFNOTPAGEIMAGEMAST%
 %ENDIF%

 --AREA PAGES--
 %AREANAME%             %AREADESC%              %AREALINK%
 %IFROOT%               %IFNOTROOT%

 --FILE PAGES--
 %FILENAME%             %FILEDESC%              %FILELINK%
%FILESIZE%              %FILEDATE%              %FILETIME%
%FILECOUNT%             %FILEBYTES%             %FILEDNLOAD%
%FILETOTALBYTES%        %FILETOTALCOUNT%        %FILEPAGENUMBER%
%FILEPAGETOTAL%         %FILEMULTIPAGELINK%     %IFFILEMULTIPAGE%
%IFNOTFILEMULTIPAGE%

 --SITES PAGE--
 %SITESNAME%            %SITESLINK%             %SITESTOTALCOUNT%

 --FIND PAGE--
 %FINDMULTIPAGELINK%    %IFFINDMULTIPAGE%       %IFNOTFINDMULTIPAGE%

4.8 Custom Template Tokens

Up to 64 custom tokens are also supported, using the TemplateVar INI verb. Syntax is as follows: "TemplateVar = %TOKENNAME% TOKEN_VALUE".
E.g. TemplateVar=%VARPAGEBKGD% #FFFFFF

Custom tokens are intended to ease the writing of output schemes. For example, the specifying of a table background color, for use within multiple tables across one or more page types.

There is no restriction to the custom token name, except that ALL template tokes are delimited with the '%' character. Note that if you declare a custom token of the same name as one of the static BBS2WEB data tokens, the custom token value will be used rather than the static Maximus data or token function. The author suggests a custom token naming scheme using a "VAR*" pattern, to ease user token identification within the templates.

4.9 Character Mapping

Bbs2Web allows character mapping of the BBS file listing source material. This is to allow support for the variety of character sets (code pages) in use globally.

Code page usage internationally is not currently a neat or clean solution. There has been quite some confusion in this area. Even the default code pages for (MS)DOS and Windows V3X do not agree on usage of the same codes for all common characters.

OS/2 supports a choice of character sets or code pages at the operating system level, by use of the CODEPAGE CONFIG.SYS verb. WARP4 uses a default codepage of 850, with a secondary default of code page 437. The OS/2 CHCP utility can be used to toggle between the two CONFIG.SYS code pages. Code page 850 is Latin-1 Multilingual. Code page 437 is the old United States code page. The internet HTML character set standard is Latin-1. Hopefully OS/2's code page 850 is identical or at least close to the standard Latin-1 character set required for HTML content.

Bbs2Web attempts to output fully compliant HTML content for it's output pages. HTML allows only 7-bit character content, and all 8-bit characters must be encoded in the HTML document. Bbs2Web assumes that the source material - the BBS file listings from your system, are using the standard Latin-1 character set, and automatically encodes those characters within the Latin-1 character set as required by the HTML standards. E.g. Character code 160 decimal is a non-breaking space, and Bbs2Web outputs "&nbsp;" for this character.

This situation is fine if indeed your file listings are actually using the Latin-1 character set. However for situations where your national character set or the BBS file listings are other than Latin-1, the Bbs2Web character mapping feature can be used to map your character set to the Latin-1 character set as assumed and used by Bbs2Web.

For every character in the source material to be output by Bbs2Web, the character actually output is the value within the corresponding source character indexed mapping array position. E.g. for a character value of decimal 0 in the file listings, the value residing in the character map at position 0 is output. Note that the Bbs2Web default character map array is set such that no mapping occurs. i.e. The map array has a value of 0 in position 0, 1 in position 1, all the way to the last character where a value of 255 is in position 255. The configuration mapping verbs can be used to change these default values. By way of example, to change every occurrence of the character "X" (character code decimal 88) in the BBS listings, to a lower case "x" (character code decimal 120) in the output pages, we would place the value 120 (representing output character "x") in position 88 (representing source character "X") of the character map array.

The default character map array is listed below.

 CharMap00=000,001,002,003,004,005,006,007,008,009,010,011,012,013,014,015
 CharMap01=016,017,018,019,020,021,022,023,024,025,026,027,028,029,030,031
 CharMap02=032,033,034,035,036,037,038,039,040,041,042,043,044,045,046,047
 CharMap03=048,049,050,051,052,053,054,055,056,057,058,059,060,061,062,063
 CharMap04=064,065,066,067,068,069,070,071,072,073,074,075,076,077,078,079
 CharMap05=080,081,082,083,084,085,086,087,088,089,090,091,092,093,094,095
 CharMap06=096,097,098,099,100,101,102,103,104,105,106,107,108,109.110,111
 CharMap07=112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127
 CharMap08=128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143
 CharMap09=144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159
 CharMap10=160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175
 CharMap11=176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191
 CharMap12=192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207
 CharMap13=208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223
 CharMap14=224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239
 CharMap15=240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255

See also the section on the character mapping configuration verbs.


SECTION 5 - CONFIGURATION

Goto Table of Contents

5.1 Configuration Include Files

Bbs2Web configuration file usage now supports included files, with the configuration file verb "Include". E.g. Include=c:\Bbs2Web\Scheme1.Ini. Included files use an identical INI format to the Bbs2Web INI file. This feature has been added to ease the use of multiple sets of output template designs. Note that the Include entry should list a full path and filename, to ensure that both Bbs2Web.Exe and MaxFind.Exe can find the included file.

5.2 Bbs2Web Command Line

        Bbs2Web Version 1.10  ----  BBS HTML Page Generator
        (C) Copyright 1996 by CodeLand, All Rights Reserved

            Syntax:  Bbs2Web  [-switch -switch ... ]

                 -I<IniFile> Ini file path & name
                 -A          All areas, no date comparison
                 -Q          Quiet mode
                 -V          Verbose mode
                 -?          Program help screen

5.3 The Control File

Information within the control files uses the following format:

  1. A control VERB.
  2. An optional assignment operator "=".
  3. Optional DATA assigned to the VERB.

The DATA assigned to the VERB can use the following formats:

  1. VALUE (No spaces allowed, "_" characters converted to spaces)
  2. VALUE1 VALUE2 (No spaces allowed, "_" characters converted to spaces)
  3. VALUE (All characters until end of line)

5.4 Control File Verbs

General Verbs

[BBS2WEB]

Denotes the start of information within the configuration file. Data is read from the configuration file beginning from the line following the [BBS2WEB] entry, and continues until a token beginning with a '[' character (e.g. [END]).

[END]

Denotes the end of information within the control file. This verb is optional, end of file will also terminate control file data loading.

Include

Denotes an included control file path and name.
E.g. Include=C:\Bbs2Web\Scheme1.Ini

Registration Verbs

RegName

The registered user name
E.g. RegName=Colin_Wneat

RegCity

The registered location
E.g. RegCity=Kalamunda_WA

RegCode

The registration code

Maximus Verbs

MaxPath

The Maximus directory. The AreaDatFile (normally Farea.Dat) is assumed to exist in this directory.
E.g. MaxPath=C:\Max

AreaDatFile

The name of the Maximus V3.xx file area data file, usually found in the Maximus directory. Bbs2Web will look for this file in the directory denoted by the MaxPath verb.
E.g. AreaDatFile=Farea.Dat

IncludeCdrom

A flag to control the including or excluding of CDROM file areas for the output pages. Accepted values are "Yes" and "No".
E.g. IncludeCdrom=No

ListPrivBelow

File areas will only be included in the output pages when holding a privilege less than the ListPrivBelow setting. File area privilege levels are set in your Maximus Filearea.Ctl control file. Note that Bbs2Web currently has NO support for override locks and levels.
E.g. ListPrivBelow=Extra

ListKeyAreas

Bbs2Web supports only the standard Maximus privilege levels, and does not support extended privileges. "Normal" is a valid privilege verb, "Normal/1" (note the Key extension) is not. Unknown privilege strings are assigned a "Hidden" (65535) privilege value so that such areas will not appear in the generated output. ListKeyAreas=No is the default operation. ListKeyAreas=Yes instructs Bbs2Web to trim "/" extensions from privilege strings prior to further processing. This would for example convert "Normal/1" to "Normal" thus allowing areas thus marked to appear in the output listings. The effect is to ignore Key extensions in your file areas.
E.g. ListKeyAreas=No

MapDrive

Multiple MapDrive verbs can be listed, to a maximum of 64. Bbs2Web will convert a MapDrive listed drive letter or initial path to the supplied path, for the output page links. This feature can be used to map multiple file download physical drive paths to a single path tree for the output pages. This could be used in conjunction with virtual download path trees created by an ftp server or utility such as TVFS.
E.g. MapDrive=j: /hobbes1/

Output Generation Verbs

HtmlPath

The path for the generated Web page files. You should create a sub-directory for this purpose. On the author's system, the Bbs2Web output Web pages total 157 files and 5.7 Megabytes of text/html data files.
E.g. HtmlPath=e:\c600\bbs2web\bbs\

HtmlFile

The name of the generated master Web page. All other pages are linked from this page, or from pages linked from this page, recursively. This file name does NOT include a file extension. The file extension denoted by the HtmlExtension verb will be appended to this file name.
E.g. HtmlFile=Index

HtmlExtension

The file extension to be used for all generated HTML output pages. Note that if using a FAT partition to hold the output files there can be no long file name support (and no Maximus Group support). Thus a DOS 8.3 file naming scheme should be used in that circumstance (HtmlExtension=Htm).
E.g. HtmlExtension=Html

Output File Link Verbs

HtmlLinkPath

The Web server path to the generated output files. This is the network or virtual path for the physical directory denoted by the HtmlPath verb.
E.g. HtmlLinkPath=http://bbs.ami.com.au/bbs/

FileLinkPath

The Web or Ftp server file download link path. Bbs file paths and names will be appended to this entry, for creation of the on page download link. You can send the files to the user via various servers, including httpd, and ftpd. Note that you'll need to setup your server to allow direct access to the file base. Bbs2Web can filter out drive names from the Maximus supplied file download paths, see the MapDrive command.
E.g. FileLinkPath=ftp://bbs.ami.com.au/pub/

CgiSrvrPath

The CGI search/find engine full URL path and name.
E.g. CgiSrvrPath=http://www.ami.com.au/cgi-bin/maxfind.exe

Output Content Verbs

BackGroundImage

An optional page background image, assigned to the %PAGEIMAGEBKGD% template token.
E.g. BackGroundImage=Bbs2Web.Gif

HtmlMast

An optional page title image, assigned to the %PAGEIMAGEMAST% template token.
E.g. HtmlMast=MastBbs.Gif

HtmlTitle

The Web page system title, assigned to the %PAGETITLEMAST% template token. Underscore characters are converted to space characters.
E.g. HtmlTitle=The_Library_Network_BBS

HtmlHeading

The Web page sub-heading, assigned to the %PAGEDESC% template token for the master index page. Underscore characters are converted to space characters.
E.g. HtmlHeading=BBS_File_Areas

ReturnLinkTitle

The title for a link pointing the browsing user back to your site home page or equivalent. Underscore characters are converted to space characters.
E.g. ReturnLinkTitle=The_Library_Network

ReturnLinkPath

A link entry for the master Web page, pointing the browsing user back to your site home page or equivalent.
E.g. ReturnLinkPath=http://bbs.ami.com.au/

Search Option Verbs

SearchEnable

A flag to enable or disable the keyword search feature.
E.g. SearchEnable=Yes

SearchIndexFile

The file name of the search index file, generated by Bbs2Web and used by MaxFind. The default file name is B2WSRCH.IDX. This keyword does not appear in the INI file by default.
E.g. SearchIndexFile=b2wsrch.idx

Find Newfiles Option Verbs

FindEnable

A flag to enable or disable the newfiles find feature.
E.g. FindEnable=Yes

FindIndexFile

The file name of the find index file, generated by Bbs2Web and used by MaxFind. The default file name is B2WFIND.IDX. This keyword does not appear in the INI file by default.
E.g. FindIndexFile=b2wfind.idx

Character Mapping Verbs

CharAllowHiBit

A flag to enable or disable the output of hi-bit characters from the BBS file listings. Setting CharAllowHiBit=No will instruct Bbs2Web to ignore all hi-bit characters within the file listings.
E.g. CharAllowHiBit=No

The following configuration verbs can be used to declare a set of 256 character mappings. There are sixteen verbs in total, with each verb responsible for a set of sixteen characters. Thus the first verb CharMap00 is used to declare character mapping for characters decimal 0 to 15 inclusive. Verb CharMap01 declares character mapping for character codes decimal 16 - 31 inclusive.

CharMap00      CharMap01       CharMap02       CharMap03
CharMap04      CharMap05       CharMap06       CharMap07
CharMap08      CharMap09       CharMap10       CharMap11
CharMap12      CharMap13       CharMap14       CharMap15

The format of the sixteen values per configuration verb, is one word without whitespace. Each number is delimited with a "," character.
E.g. CharMap00=000,001,002,003,004,005,006,007,008,009,010,011,012,013,014,015

Sites Page Option Verbs

SitesEnable

A flag to enable or disable the Bbs2Web sites listing feature.
E.g. SitesEnable=Yes

SitesLocalSupport

A flag to activate local operation of a sites listing page. The default is to list the URL of the author's master sites listing page.
E.g. SitesLocalSupport=No

SitesFile

For sites local support (SitesLocalSupport=Yes), the file name (without file extension) of the local sites listing page.
E.g. SitesFile=Sites

Site

For sites local support (SitesLocalSupport=Yes), one site listing for inclusion on the local sites listing page. 512 sites can be listed within the configuration files. The data format is "Site=URL Site_Name".
E.g. Site=http://bbs.ami.com.au/bbs/ The_Library_Network_-_Home_of_Bbs2Web

Template verbs

The following configuration file verbs declare "template" output controls for BBS2WEB:

FILE AREA LISTINGS          : TemplateAreaHdr TemplateAreaItm TemplateAreaFtr
FILE LISTINGS               : TemplateFileHdr TemplateFileItm TemplateFileFtr
SITES LISTING               : TemplateSiteHdr TemplateSiteItm TemplateSiteFtr
SEARCH AND FIND RESPONSES   : TemplateFindHdr TemplateFindItm TemplateFindFtr

Bbs2Web supports up to 64 occurrences of each of the above verbs.
Usage format is "Verb=Text data including tokens until end of line".
E.g. TemplateAreaHdr=<HTML>

TemplateVar

Declares a custom template token. Note that all template token names, including custom tokens, must begin and end with the "%" character. Up to 64 custom tokens can be defined in the configuration files. Usage format is "TemplateVar=%VAR_NAME% Var_Value".
E.g. TemplateVar=%VARPAGEBKGD% #FFFFFF


SECTION 6 - MISCELLANEOUS

Goto Table of Contents

6.1 Problems and Bug Reports

If you have come across any "features" or have any suggestions on how to improve BBS2WEB, you can contact us through the net or via surface mail, at the addresses listed below. All feed back good and bad is welcomed. Many of the recent changes to BBS2WEB are due to user feedback.

 Internet E-Mail:       bbs2web@ami.com.au

 Surface Mail:          CodeLand Australia
                        P.O.Box 351
                        Kalamunda WA 6076
                        AUSTRALIA

6.2 Latest Version

The latest version should always be available via ftp at the following URL:

ftp://bbs.ami.com.au/pub/bbs/max/bbs2web.lzh

The BBS2WEB support Web site is located at the following URL:

http://www.ami.com.au/codeland/b2w/

6.3 About BBS2WEB

BBS2WEB is a product of CodeLand Australia. The CodeLand Web site is located at the following URL:

http://www.ami.com.au/codeland/

BBS2WEB is written in the C language using the Microsoft MSC v6.0 compiler. Our future plans include moving the product to the 32 Bit VisualAge C++ compiler, for the next release.


© Copyright 1997 by CodeLand All rights reserved.