Indiana University Bloomington

School of Informatics and Computing

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 for you. 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.
  1. 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.

  2. 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:

  3. 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.

  4. Edit your wml file and do the following:

  5. Run the make command to automatically build your html file or files.
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.

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:

#include 'content.html'

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:

  1. Print out the contents of the /l/www/Research/headonly.html file.
  2. Generate your page content.
  3. Print out the contents of the /l/www/Research/tailonly.html file.

There is a sample perl cgi script that does this available in /l/www/Support/samples/sample.cgi.

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.

Access Groups

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:

.htaccess_nonssl
deny from all

.htaccess
AuthType KerberosV5
AuthUserFile /dev/null
AuthGroupFile /l/www/Support/access_groups
AuthName "UITS Network ID"
KrbAuthRealm IU.EDU
<LIMIT POST GET PUT>
require group CS_FACULTY CS_PHDGRADS osl
</LIMIT>

Tools

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.

Stylesheet Classes

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:

	<SPAN CLASS="crimsontext">
	    like this bit of text
	</SPAN>

Listed below are the various classes that are available, with each displayed using that class:

crimsontext
input
standout
emailit
upperbar
copyright
offblack
mission
signature
input
bottomnav
smallredtitle
mediumredtitle
bigredtitle
menutitle
menu

Check out the /l/www/tools/site.css file for the exact stylesheet definitions. There is also a /l/www/tools/netscape4unix.css file that is optionally included via javascript when the browser is detected to be netscape running under Solaris. This is done to adjust some font sizes on this platform since the defaults tend to be too small.