The page is intended to assist in the process of creating web pages that follow
the format and look-and-feel of the CS Departmental web pages. This includes
the image banner across the top of the page, the navigation bar on the left,
and the page footer. Web pages are created using the
Website META Language (WML).
With WML, you simply add a couple meta-language directives to the html content
you create and WML then processes this input to auto-generate the final html file.
You will be creating a .wml file and the final .html file will be auto-generated
A step-by-step procedure is outlined below.
Creating Web Pages
If you want to create a web page that has the same look and feel as the rest of
the pages in the CS web, you should follow these steps.
If all goes well, you now have an html file that includes the CS navigation
tools and look-and-feel with your content. Whenever you edit your wml files,
you simply need to run make to update the html file.
- Decide where you want your web page or pages to reside. If you want it to
reside under the /l/www hierarchy instead of in your home diretory, send
email to the webmaster so
we can create it for you.
- Once you have a directory in which to place your page, you will need to
first create a Makefile in the directory. This Makefile
is used by the make program and it tells make how to build your web pages.
To create this file:
- Copy the sample Makefile from
/l/www/Support/samples/Makefile into your directory.
- Edit this file and set the 'HTML =' line to be a list of all the html
(or shtml) files that you want to create. For example:
HTML = file1.html file2.html file3.html
- If you have subdirectories that will contain other web pages and Makefiles,
set the 'SUBDIRS =' line to a space separated list of these directories. For
SUBDIRS = dir1 dir2 dir3
- Set the 'EXPAND =' line to the the navigation menu category you want
to be expanded on your page. For example, if your page is related to
academics, set it to:
EXPAND = ACADEMICS
If you don't want any of the categories expanded, set it to NONE.
See the sample Makefile for a complete list of the available options.
- You are now ready to create your WML file. You can
copy the sample wml file from
/l/www/Support/samples/sample.wml into your directory.
- Edit your wml file and do the following:
- Run the make command to automatically build your html file or files.
Validating Your Code
In the bottom left-hand corner of all pages is the W3C Validator logo. If you
click on this icon, it will run your code through the W3C code validator and
report any errors. You are strongly urged to correct any problems that are
reported. We have worked to eliminate any errors in the head and tail portion
of the page, so any reported errors should be in the content portion of the page.
If you find it necessary to leave non-valid code on your page, please add
the following to the #include line for the tail.wml file:
validimage="/images/not-valid-html401.png" validalt="Not Valid HTML 4.01!"
This will prevent the display of the Valid HTML image. However, the link for
the validator will still be there so you can still click the blank area
to validate. It just won't show the W3C image.
Including Content From Other Sources
It is possible to generate your html content using any number of other
mechanisms (such as an html editor) and include this content into your
wml file automatically. As an example, let's say you created a file
called content.html using the
Macromedia Dreamweaver tool. You can simply replace the 'Your Content Here'
line in the sample wml file with
the following line:
You will also have to add what is called a dependency to your
Makefile so the make program knows that your wml file depends on
your content.html file. There are notes at the bottom of the
sample Makefile that
explain how to do this.
Generating Pages Using CGI or PHP
If you are using CGI or PHP to generate web pages, you can still
get the same look-and-feel in your web pages. To assist with this,
there are special headonly.html and tailonly.html
files in the /l/www heirarchy you can use. For example, if you
are autogenerating web pages related to Research, you could do
the following in your script:
- Print out the contents of the /l/www/Research/headonly.html file.
- Generate your page content.
- Print out the contents of the /l/www/Research/tailonly.html file.
There is a sample perl cgi script that does this available
One disadvantage of this approach is that you cannot control the page title
or the information in the page footer. To get around this, you can use a
template that has been created. This template has placeholders for your
title, name, email address, and content that you can replace in your cgi script.
There is a template perl cgi script that does this available
in /l/www/Support/samples/template.cgi. To use this, you simply need to set
the $title, $name, and $email variable to the desired values and then modify
the generate_content subroutine to generate the content you want.
All of the normal unix groups defined in /etc/group as well as a number of departmental groups can be used in a
.htaccess file using the mechanism detailed in the
FAQ Entry on the subject.
In addition to the groups from /etc/groups, the following additional groups are defined:
|CS_FACULTY || Faculty
|CS_CSG || Computer Systems Group/Facilities Staff
|CS_ADMIN || Administrative Staff
|CS_RESEARCH || Research Staff
|CS_GRADS || Graduate Students (PhD and Masters)
|CS_MSGRADS || Masters Students
|CS_PHDGRADS || PhD Students
|CS_UGRADS || Undergraduate CS Majors
|CS_AIS || Associate Instructors
|CS_UIS || Undergraduate Instructors
For example, the following .htaccess files would allow secure access by
the CS faculty, phd students, and all members of the osl group:
deny from all
AuthName "UITS Network ID"
<LIMIT POST GET PUT>
require group CS_FACULTY CS_PHDGRADS osl
The following scripts have been written to help maintain the site.
They live in /l/www/Support/bin and are not intended to be run by
page maintainers. However, you may find them useful starting points
if you wish to do something similar for your web pages.
- findbrokenlinks - This scripts uses linklint to generate a report
of all the broken links in the web hiearchy.
- findoldhtml - Report old html files. These are
- html_event - Run from cron to generate the events page content based
on the on-line ical calendar.
- linkreport - Generate a report of all web pages in the system grouped
by page owner. The last modification date is listed and files older
than some threshold are flagged.
- makeabsolute - Convert all HREF tags to be absolute http:// references.
This is used in the generation of the searchhead.html and searchtail.html
since these have to work from the UITS server.
- makeaccessgroups - Generate the access_groups file based on the data in
/usr/local/lib/userlist. This is run automatically when needed by
There are several stylesheet classes defined that you can use. These define
various colors and families of fonts. For example, if you want some text to
be in crimson (like this bit of text), you
can use the crimsontext class. The HTML segment that generated the little
bit of crimson text in the previous sentence looks like this:
like this bit of text
Listed below are the various classes that are available, with each displayed
using that class:
Check out the /l/www/tools/site.css file
for the exact stylesheet definitions.
There is also a /l/www/tools/netscape4unix.css file
running under Solaris. This is done to adjust some font sizes on this platform since
the defaults tend to be too small.