This document aims to provide the basic information that people will require to start work on the SEUL website. It is an evolving document - at present it contains what I know I would have found useful. I would welcome ideas of what else should be included.
Much of the stuff that a website developer will need to know is needed by anybody working on the SEUL project. This is all contained in a seperate document, the General SEUL Developer FAQ.
I suggest that you at least skim this document to see if there's anything you're not familiar with.
At the time of writing, the cvs repository is layed out as shown in the following diagram. This is not a complete tree, but an attempt to give a rough idea. This only contains the directories that concern us, and does not follow all the branches all the way down.
In most cases, web pages to do with a group or topic are contained in a subdirectory named html/ within that group or topic's directory.
Any images used on those web pages should be put in a images/ directory under this. So images for the seul-dev-apps group's page would reside in /dev/apps/html/images/. The exception to this rule is if you anticipate an image being used in more than one place. In this case it should go at the lowest level which will allow all the referring pages to access it without having to go down another branch of the tree. For example, an image that will be used on both the seul-dev-apps and seul-dev-distrib pages would go at /dev/html/images.
In a few cases there are some directories called doc/ instead of html/ which also check out to the website. These directories are primarily (almost exclusively) to be used for individual projects, where there is actual documentation. This ensures that all our project documentation is always available on the web. But remember, doc/ is strictly for project documentation. This means that there is rarely any need for seul-pub people to deal with them.
/ | |--dev/ | | | |---admin/ } | | |---html/ } | |---apps/ } | | |----html/ } | |---distrib/ } | | |-html/ } See Note 1 | |---help/ } | | |----html/ } | |---install/ } | | |-html/ } | |---ui/ } | | |------html/ } | | | |---sysarch/ } See Note 2 | | |-html/ } | | | |---html/ } See Note 3 | |--pub/ } See Note 4 | |---html/ | |---website/ } See Note 5 | | |-html/ } | | | |---public_html } See Note 6 | |--seg/ | |---html/ | |--sys/ } See Note 7
Whenever a change is checked in (or committed - two phrases, same meaning) to the repository in one of the directories that contains website stuff, that document is parsed by sdoc and copied accross to the website. It should become availible from the website within a minute. Obviously this time depends on the load on the servers at the time, but if nothing has happened in ten minutes then one of two things has happened:
Normally a directory will appear on the website in the same location as it was in the repository, except with any proceeding /html/ missing. For example, /dev/apps/html/images/ would appear at http://www.seul.org/dev/apps/images/. There are, however, plenty of exceptions.
This can all get very confusing, but it is not so bad once you know that there is one file which governs where every directory maps to. This file is sys/web/etc/webcolist, and lines from it look like this:
dev/apps/html=/dev/apps/
If a directory is in this file, it will appear in the website at the location specified. This is recursive, so any directory underneath dev/apps/html/ will be checked out too, under /dev/apps/. It is worth having a look through this file, as it may make what you've read so far a lot clearer.
This is very much up to you. You will need to check out any section you are working on, but you may wish to get more - I have a copy of all the website directories on my hard disk.
There is a problem here: if you want to check out any more than one or two directories you have a choice between getting lots of directories individually, which is a bit laborious, or checking out a higher level directory and getting loads of stuff that is not to do with the website. The solution lies with the webcolist file. Once you have checked this one file out, it is fairly easy to write a perl script to get everything else that you want. For instance, if you wanted to get the whole website:
cvs checkout sys/web/etcThis will create the sys/web/etc/ directory below the current directory and put in it webcolist and any other files that are in that directory in the repository.
#!/usr/bin/perl open(COLIST,"sys/web/etc/webcolist") || die "Couldn't open webcolist"; $command = "cvs checkout "; while(You may have to alter the pathname to the perl interpreter on the first line to suit your computer.) { if (/(.+)=/) { print "\nAdding $1 to the checkout line: "; $command .= "$1 "; print "\n$command\n"; } } system($command);
If anyone wants to improve on this script send me a better one and I'll publish it here. Thanks go to arma for this one.
sdoc is the system used for SEUL documentation. It is a parser that processes HTML and passes it straight through, but also has a few tags of its own from which it produces HTML formatting. This allows us to seperate content from formatting, and to easily achive a uniform look across the website.
sdoc is currently under fairly major alteration. More information will be posted here when it is finalised. For the moment, look at the skeleton template for an example, most of it is fairly self-explanatory.