1. Installing the Proxy Server
1.1 Get the CERN-httpd
Contact the WWW-page <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>
to see how to get the CERN-Server program. Uncompress and untar the
received files.
Important note: Don't compile the program yet.
1.2 Configure the CERN-httpd
Edit the configuration files as described under <Configuration
File> in <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.
1.3 Add the files of 'WWW Access for Blinds'
Copy the files from the distribution tar-file into the machine's
directory </where_ever/WWW/Daemon/Implementation".
1.4 Edit 'HTDaemon.c'
Next you have to edit the file "/where_ever/WWW/
Daemon/Implementation/HTDaemon.c". Make the following changes (written in
italic bold):
edited HTDaemon.c
...
#include "HTFile.h"
#include "HTParse.h
#include "HTRequest.h"
#include "HTAuth.h" /* HTUser */
#include "HTConfig.h"
#include "HTDaemon.h"
#include "HTLog.h"
#include "HTCache.h"
#include "HTUserInit.h"
#include "HTFWriter.h"
#include "HTims.h"
#include "HTError.h"
#include "HTBlinds.h"
/* Forking */
#ifdef FORKING
#include <sys/types.h>
...
PUBLIC int HTHandle ARG1(int, soc)
{
HTRequest *req;
int status;
...
/*
* If HEAD add a stream that makes sure we only send the head
*/
if (req->method == METHOD_HEAD)
req->output_stream = HTHeadStream(req ->output_stream);
/*
* Handle command
*/
if (HTReason == HTAA_OK_GATEWAY) { /* Not a local file ... */
req->output_stream = HTBlindsStream(req->output_stream);
output_timeout_on();
HTImProxy = YES;
...
...
1.5 Edit 'CommonMakeFile'
Edit the file "/where_ever/WWW/ Daemon/Implementation/
CommonMakeFile". Make the following changes:
edited CommonMakeFile
...
OBJS = reader.o transform.o HTBlinds.o \
HTDaemonDIR.o HTRequest.o HTRetrieve.o HTScript.o HTLoad.o
...
...
# Access Authorization
# (these were originally in libwww by mistake)
...
inc: $(HTMLFILES)
echo "Include files generated from hypertext."
# HTBlinds program
reader.o: $(SRC)/reader.h $(SRC)/reader.c
$(CC) -c $(CFLAGS2) $(SRC)/reader.c
transform.o: $(SRC)/reader.h $(SRC)/transform.c
$(CC) -c $(CFLAGS2) $(SRC)/transform.c
HTBlinds.o: $(SRC)/HTBlinds.c \
$(SRC)/HTDaemon.h $(SRC)/HTConfig.h $(SRC)/reader.h
$(CC) -c $(CFLAGS2) $(SRC)/HTBlinds.c
# Administration program
...
1.6 Compile
Compile the program as described in <http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.
1.7 Start your proxy-server
Go to your directory "/where_ever/WWW/
Daemon/Implementation" and start the proxy-server as described in
<http://www.w3.org/hypertext/WWW/Daemon/User/Installation/Installation.html>.
2. Configuration files of 'WWW Access for Blinds'
There are two configuarion files that define the behaviour of
the transformation process:
- tf.prod.config: defines, which productions are executed
- tf.text.config: defines the texts that are used.
The order of the lines is significant. A line that begins with a
";" is a comment. Comments are not significant.
2.1 tf.prod.config
Each line has the effect of a switch: if there is a "+", the
corresponding production will be executed. It follows an explanation
of each line in the file to show the connection between the lines and
the productions. Lines that are comments are not listed. Elements that
are written "<...>" are HTML-tags. If you want to know
more about them, please refer to <http://www.hpl.hp.co.uk/people/dsr/html/Contents.html>.
Parts that are written in Courier are actually text-variables
and configurable in the file tf.text.config.The following listing is
of the format:
(Name of the production): Effect, if the corresponding
line in the file is set to +
- (ADR): <address> and </address> will be removed
- (BLK): <blockquote> and </blockquote> will be
removed
- (TT): <tt> and </tt> will be removed
- (B): <b> and </b> will be removed
- (I): <i> and </i> will be removed
- (U): <u> and </u> will be removed
- (EM): <em> and </em> will be removed
- (STR): <strong> and </strong> will be removed
- (DFN): <dfn> and </dfn> will be removed
- (CIT): <cite> and </cite> will be removed
- (VAR): <var> and </var> will be removed
- (CEN): <center> and </center> will be removed
- (S): <s> and </s> will be removed
- (BIG): <big> and </big> will be removed
- (SML): <small> and </small> will be removed
- (BDY): <body ...> will be replaced by <body>
- (P): <p ...> will be replaced by <p>
- (FT): <font ...> and </font> will be removed
- (RAD): Radiobuttons will be tagged (e.g. Radiobutton).
- (CHK): Checkboxes will be tagged (e.g. Checkbox).
- (EDT): Editboxes will be tagged (e.g. Editbox).
- (CBB): Comboboxes will be tagged (e.g. Combobox).
- (BUT): Buttons will be tagged (e.g. Button).
- (IMG): Images will be replaced by text (e.g. Image
"picture.gif"nn;).
- (LNK): Links will be tagged (e.g. Link) and inserted
in the linklist.
- (TIT): Titel-formattings will be removed. Titels will be tagged
(e.g. Titel level 1). Titels will be inserted in the
titel-structure.
- (BEG): At the beginning of the document, links to titel- and
link-structure will be inserted.
- (TLS): At the end of the document, the titel-structure will
be inserted.
- (LLS): At the end of the document, the link-structure will
be inserted.
- (EDC): The end of the document will be marked.
- (ELL): The end of the linklist will be marked.
- (BLU): There will be 60 <br> inserted at the end of
the file.
2.2 tf.text.config
Each line contains a text. In this text, every character except
the carriage return at the end of the line is significant (space
also!). Lines that contain only a carriage return are significant
too. How these texts are used is explained in the following list.
Lines of the file that are comments are not listed. The listing
is of the format:
default value: use of the text
- Link: is inserted before an original link.
- Ref to: is inserted before a link that is used to
structure the document and is therefore inserted by the document
transforming process.
- Titel level 1: is inserted before the corresponding
titels in the document text.
- Titel level 2: as (3)
- Titel level 3: as (3)
- Titel level 4: as (3)
- Titel level 5: as (3)
- Titel level 6: as (3)
- Titel level 1: is used as a reference to the list
of titels of level 1.
- Titel level 2: as (9) but level 2
- Titel level 3: as (9) but level 3
- Titel level 4: as (9) but level 4
- Titel level 5: as (9) but level 5
- Titel level 6: as (9) but level 6
- Titel level 1: is inserted before the corresponding
titels in the titellist.
- Titel level 2: as (15)
- Titel level 3: as (15)
- Titel level 4: as (15)
- Titel level 5: as (15)
- Titel level 6: as (15)
- Linklist: is used as a reference to the linklist.
- Links: is used as the header of the linklist.
- Back to text: is used as a reference from the titellist
to the corresponding text.
- Upper level: is used as a reference to a higher titel
level in the titellist.
- Lower level: is used as a reference to a lower titel
level in the titellist.
- Image: is used as a replacement for images.
- Radiobutton: is inserted before radiobuttons.
- Checkbox: is inserted before checkboxes.
- Editbox: is inserted before editboxes.
- Combobox: is inserted before comboboxes.
- Button: is inserted before buttons.
- End of linklist: is written at the end of the linklist.
- End of document: is written at the end of the document.
- Top of document: is used as a reference to the very
beginning of the document.
Contact:
We would like to hear you suggestions, ideas, opinions and comments on
this project. Feel free to send email.
Louis Perrochon,
Andrea Kennel
Institut für Informationsysteme
ETH Zentrum
8092 Zürich
+41 1 632 7282
perrochon@acm.org,
kennel@inf.ethz.ch
[ CS-Department
| Up
]
ETH Zürich: Department of Computer Science
Comments to
webmaster@inf.ethz.ch.
June 15, 1995
This page is
<http://www.inf.ethz.ch/department/IS/ea/blinds/install.html>.